Virtualization in the cloud
IT infrastructure would not be flexible if it were not for virtualization. Cloud services build on the expectation of flexibility, only paying for what is needed and easily adding or removing as changes occur. Virtualization of IT resources makes cloud computing, as we know it, possible; it includes server virtualization, storage virtualization, and network virtualization.
Servers must be persistent and offer high availability to be of any use in a data center with cloud services. It can be achieved by virtualization technologies and its benefits like clustering, fault tolerance, and live migration to avoid downtime in case of failure, resource contention, or the need to add physical hardware to a device.
Cloud providers use virtualization technology in their data centers. Virtualized servers are quick and easy to add, remove or copy, as their physical form is a set of files managed by the hypervisor software. If an application experiences an increase in users, it is fast and easy to add more copies to keep the performance at the expected level.
Network virtualization is used by cloud vendors, like virtual network switches, configured similarly to other switches in the data center and connected to the data center network to allow virtual machines to communicate. Rules should be set to deny virtual machines with different owners to communicate while allowing those with the same owner.
With virtualization comes flexibility and availability; it is possible to keep applications running during both planned and unplanned downtime. With live migration, there is no downtime. It can be done across to, or from, public and private clouds, making backup in the cloud a possibility.
Containers offer flexibility and techniques to quickly and easily get an application up and running in an isolated environment, which is useful for cloud systems. A container is not the same as a virtual machine as it does not run its own complete operating system. Containers are abstracted at the operating system level and have everything needed for an application, like configuration files, binaries, libraries, and dependencies. This way, containers can run on different infrastructures, like inside a virtual machine, in the cloud, or on bare-metal.
Containers are easily portable and compared to virtual machines, they are quicker to download and faster to start up, as they do not have full operating systems, which makes them smaller in size. Virtual machines use more resources than containers, as each guest operating system runs background processes and schedule time for applications. While containers share the operating system installed on the host. The architectural differences between containers and virtual machines can be seen in figure 1 below.
Amazon Web Services (AWS), Microsoft Azure Cloud, and Google Cloud Platform (GCP) are well-known cloud providers. They all offer several services, including the three core services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).
Infrastructure as a Service is when the vendors offer physical resources found in a data center, like power, cooling, hardware, and network, as well as backup, security, load balancers, physical and virtualized servers. The provider manages the cloud infrastructure while customers choose operating systems, applications, and network access.
With Platform as a Service, the vendors offer a platform where customers can build and deploy applications without having to configure and manage the underlying infrastructure and software.
While with Software as a Service, vendors offer access to applications through subscriptions, usually with a monthly payment from customers. Some commonly used SaaS services are Microsoft Office 365 and Adobe Creative Cloud.
Cloud Deployment Models
In the cloud, there are different cloud deployment models. Public clouds are a service a cloud vendor offers to multiple customers. A private cloud is internal and can only be accessed by one company. In comparison, a hybrid cloud environment consists of both public and private clouds, with multi-cloud being a mix of different cloud deployment models combined with differing services from several cloud vendors.
Citrix: What is containerization
Comer, D. 2021. The Cloud Computing Book
Iqbal, M., Smadi, M., Molloy, C. & Rymarczyk, J. 2010. IT Virtualization Best Practices
Singh, H. 2019. Next-Gen Virtualization for dummies. VMware Special Edition