Conceptual Questions
1
.
Why is it difficult to efficiently allocate resource services in a cloud-native application?
2
.
Why is the microservices architecture more adaptable to a cloud architecture?
3
.
Why is it the case that cloud deployment technologies keep evolving? Provide examples to illustrate your answer.
4
.
What is the difference between BaaS and FaaS? Are FaaS and serverless equivalent in a BaaS context?
5
.
In the first sample cloud-native application we built, a Dockerfile and a Kubernetes manifest file were created for each microservice. Why do we need both files in this application? Which one is used for what purpose?
6
.
Focusing our attention on the Kubernetes manifest files, there are two for each microservice: a deployment manifest file and a service manifest file. What are the differences between these two types of manifest files? What are they used for?
7
.
In the second example, an AWS EC2 Instance VM was provisioned. Several steps were taken to install package management tools (e.g., Homebrew, build-essentials), the Docker engine, and any other dependencies needed for the application to run. Why did we need to take these steps?
8
.
In the third example, we built two FaaS functions that were deployed that make up a cloud-native application. Contrast this to the first example we built, where we built microservices that were also deployed in Azure. Although the cloud service providers provide editors in the portal to implement and deploy FaaS functions directly within the portal, in this case we used a build tool, maven, to build the code for the FaaS functions and deploy them remotely. Why is this not the same as the first example? What are the major differences between these two approaches where the first example is using the PaaS deployment option, and the third example is using the FaaS deployment option?