Operational models: Virtualisation, Containerisation, Hosted services and serverless/event driven operation Flashcards
What are the three main development models for cloud computing?
Private, public and hybrid
Who owns a public cloud?
A public cloud is owned by a cloud provider but is made available to the public
The cloud provider hosts the cloud infrastructure and the end user can access it remotely without the need to buy or set up a working environment.
The resources are shared among different end users.
Users are typically charged for the durations for which these services are used. However, public cloud charge models vary across providers.
No capital expenditure to scale up
Applications can be quickly provisioned and deprovisioned
Organisations pay only for what they use
Who owns a private cloud?
It’s typically owned by an organisation who also controls the access to that specific cloud, usually via the organisation’s intranet.
The cloud environment needs to be procured, set up, operated and maintained by the organisation. The private cloud resources are typically shared among an organisation’s end users
Unlike the public cloud, security and terms of use for a private cloud are defined by the organisation.
Hardware must be purchased for start-up and maintenance
Organisations have complete security over resources and security
Organisations are responsible for hardware maintenance and upgrades
What is a hybrid cloud?
It is a combination of public and private clouds.
This enables the idea of ‘cloud bursting’ - this is where an organisation uses its private cloud for most of its needs and dynamically provisions resources in the public cloud when utilisation exceeds the capacity of it’s private cloud.
Provides the most flexibility
Organisations determine where to run their applications
Organisations control security, compliance or legal requirements
How is cloud and the way applications are being designed changing?
Instead of monoliths, applications are decomposed into smaller, decentralised services.
These services communicate through APIs or by using asynchronous messaging or eventing.
Applications scale horizontally adding new instances as required.
What new challenges do these trends bring?
Application state is distributed
Operations are done in parallel and asynchronously
The system as a whole must be resilient when failures occur
Deployments must be automated and predictable
Monitoring and telemetry are critical for gaining insight into the system
What are the key elements of management and orchestration?
Provisioning of bare server hardware and enrolling into the management system
Profiling and enumerating the capabilities of the bare hardware within a management framework
Providing mechanisms to divide, deploy, leverage and securely manage the capabilities (compute, storage, ram, GPU, ASIC) of the base hardware
Providing an abstraction which can leverage the underlying capability of a cluster
In a cloud context, what are the main approaches to subdividing, abstracting and managing these underlying resources?
Virtual machines - Iaas
Containers - IaaS
Distributed App Services - PaaS
Functions - PaaS
What are virtual machines?
Virtual machines are software emulations of physical computers. They have virtual processors, memory, storage and networking resources. VMs host an OS and you can install and run programs just like on a physical computer.
What can you do with Azure VMs?
You can create and use VMs in the cloud. Virtual Machines provides infrastructure as a service (IaaS) and can be used in different ways. When you need total control over an operating system and environment, VMs are an ideal choice.
When should you use VMs?
During testing and development
When running applications in the cloud
When extending your data centre into the cloud
During disaster recovery
What are containers?
Lightweight, virtualised application environments.
While virtual machines are an excellent way to reduce costs versus the investment costs that are necessary for virtual hardware, they are still limited to one OS per virtual machine.
If you want to run multiple instances of an application in a single host machine, while maintaining strong segregation, containers are the way to go.
How are containers managed?
They are managed through a management layer, which can start, stop and scale out application instances as needed
Standalone Container Instances - Container Instances offers the fastest and simplest way to run a container in the cloud without having to manage any virtual machines or adopt any additional services. It’s a platform as a service (PaaS) offering that allows you to upload your containers, which it runs for you.
Kubernetes - The task of automating, managing, and interacting with a large number of containers is known as orchestration. Kubernetes is a complete orchestration service for containers with distributed architectures and large volumes of containers.
How are containers often used?
They are used to create solutions using a microservice architecture. This allows you to break solutions into smaller independent pieces
What are Distributed App Services?
App Services enable you to build and host webapps, background jobs, mobile back-ends and RESTful APIs in the programming language of your choice without managing infrastructure. It offers automatic scaling and high availability.
It is a PaaS environment allows you to focus on the website and API logic while Azure handles the infrastructure to run and scale your web applications.