Week 7 - Cloud Computing Flashcards
Many enterprises do not own the computing infrastructure that provides their staging/production environment. What do they do instead?
Rent it in “the cloud”
What 5 things does cloud architecture provide?
Broad network access
On-demand self service
Measured service
Rapid elasticity
Resource pooling
Cloud architecture provides broad network access. What does this mean?
The cloud is available over standard networks, including Virtual Private Networks (VPNs)
Cloud architecture provides on-demand self service. What does this mean?
Customers can easily acquire virtual machines, usually on a “drug-dealer” (free go) pricing model
Cloud architecture provides measured service. What does this mean?
The provider monitors and measures usage for optimisation and billing purposes
Cloud architecture provides rapid elasticity. What does this mean?
Customers can easily acquire or release virtual machines in response to changing demand
Cloud architecture provides resource pooling. What does this mean?
Providers assign virtual machines to physical ones, so achieving multitenancy
How does cloud computing offer more assurance than on-premises computing?
Staffed by top people
Built with the best kit
Hardened by continual hacking
What have been the two phases of cloud computing?
Serverful computing and serverless computing
What 3 things does serverful computing consider?
Serverful models, serverful implementation, the serverful cost model
Name 3 models of serverful computing
Infrastructure-as-a-Service (IaaS)
Platform-as-a-Service (PaaS)
Software-as-a-Service (SaaS)
Describe Infrastructure-as-a-Service (IaaS).
Cloud provider gives access to bare servers
Describe Platform-as-a-Service (PaaS).
Cloud provider gives access to servers with operating systems and tools
Describe Software-as-a-Service (SaaS).
Cloud provider gives access to applications on a subscription basis
What do implementations of serverful computing make use of?
Multi-tenancy
Multi-tenancy is implemented by virtualisation. What does this process use?
Virtual machines, containers, and orchestration and version control
How are virtual machines run?
On a physical machine by a hypervisor which maps virtual resources to physical ones, ensuring that they are shared fairly
How are containers run?
On a physical machine by the operating machine, which maps container resources to physical ones, ensuring that they are shared fairly
What is the serverful cost model?
Charging customers for resource allocation on a rental basis
Name two ways to implement serverful microservices.
Run a single microservice on a single virtual machine
Run a single microservice in a single container
What does serverless computing consider?
Serverless models, serverless implementation, the serverless cost model
Name 2 serverless computing models.
Backend-as-a-Service (BaaS)
Function-as-a-Service (FaaS)
Describe Backend-as-a-Service (BaaS).
Cloud provider gives access to services such as authentication or database storage
Describe Function-as-a-Service (FaaS).
Cloud provider runs custom code in response to requests or events
What do implementations of serverless computing typically make use of?
“Hidden” containers to run custom function code
What does serverless computing mean?
Most operational concerns are left to the cloud provider
What is the serverless cost model?
Charges customers for execution time on a pay-as-you-go basis
Give two ways to implement a serverless microservice.
Map a single microservice instance to a single function instance
Map a single microservice instance to multiple function instances
What problems might mapping a single microservice instance to multiple function instances cause, and how can these be resolved?
Maintenance problems (keeping track of instances) and performance problems (keeping “warm” instances)
Can be resolved with an API gateway acting as a proxy through which HTTP requests and responses are used to make function calls and to return function results
What does the Infrastructure-as-Code (IaC) approach do?
Configures (virtual) infrastructure using executable code, which can be stored in version control, with all the usual benefits