Deployment models
We will cover the deployment models that will be used to deploy our application in the cloud environment.
Virtualization
The fundamental building block of the cloud is a virtual machine (referred to as VM from now on), which is equivalent to a physical server (or host) on which users can log in and install or maintain applications. The difference being that there can be several VMs hosted on a single host thereby increasing the resource utilization. This is achieved by using virtualization, where a hypervisor is installed on the host that can then apportion the resources available on the physical server, such as compute, memory, storage, and networking to the different VMs hosted on it. Cloud-native applications can be deployed on such VMs using the following strategies:
- Several applications per VM
- One application per VM
When running several applications per VM there is the possibility of one application hogging all the resources available on the VM and starving out the other...