is containerization the future of PaaS offering in microsoft azure Edit
This article is an old article which I had published in my old blog. I had written this article at a time when Microsoft got into a partnership with docker. Please read the article below as copied without modification from my old blog.
Recently I heard about Microsoft entering into a strategic partnership with Docker, What caught my attention was Microsoft would provide docker with support for new container technologies that would be delivered in the future releases of Windows Server. In this article, we will discuss Virtual Machine's current technology used in Microsoft Azure cloud computing & look at what is containerization. Is Containerization going to replace Virtual Machines ?. Is Containerization the future of Platform as a Service in Microsoft Azure.
First What Is Platform Virtualization ?
Virtualization is a huge topic, lets look at a small subset platform virtualization to get an idea. Hardware virtualization or platform virtualization refers to the creation of virtual machines that act like a real computer with an operating system. Software that executes on the VM's is separated from the underlying hardware resources. The host machine (software that runs on the physical machine) is the actual machine on which the virtualization take place, Software that creates virtual machine on the hardware is called hypervisor (Virtual Machine Manager). guest machine (software that runs on the virtual machine) is the virtual machine.
Currently, all the cloud providers Amazon, Microsoft Azure, and other use Virtualization which distributes compute on VM's. VM is not tied to a particular physical server. Containerization is another approach to virtualization the main difference from Virtualization is that it manages to get rid of the virtual machine layer.
The disadvantage of VM is that each VM needs to have its own copy of the operating system plus all the related software which are required to run the application which makes it resource intensive.
Let me start with the figure below which shows Virtualization and Contrainerization side by side clearly showing the difference.
Containerization provides an additional level of automation and abstraction to applications by deploying applications inside a software container. Containerization uses resource isolation features to allow independent containers to run within a single instance avoiding the overhead of starting a virtual machine.
The advantage of containerization is that it gets rid of the VM, Application is deployed in a container which run's on a shared instance of the operating system. Containerization works by deploying from predefined images which contain only the resources which are needed to run the application it's hosting which increases the efficiency.
Contanarization provides huge resource saving and higher application density per physical server.
Advantages Of Contanarization
- Containers boots faster, containers take seconds, and sometimes even less than a second, virtual machine can take several minutes whereas the container is near-instantaneous task is simply dropping a prepackaged container onto a server
- Containers have less overhead
- Containers bring native performance
- Contanaiers and cloud & VM Comptaible
- Lightweight and require fewer resources
- From the above figure Contanerization is useful only when all Host Operating System's are the same
- VM offers more security than Containers
- Less isolation, If you want full isolation with guaranteed resources, a full VM is the way to go
Is Containerization Going To Replace Virtual Machines?
Containers now can be used as an alternative to Operating System-level virtualization to run multiple isolated applications on a single host. It's not going to be a replacement for virtualization but it's going to be one of the key players in PaaS offering on cloud Computing.
Is Containerization The Future Of Platform As A Service In Microsoft Azure ?.
Microsoft's server and cloud platform customers can benefit from the best work of the Docker open source community. Microsoft has entered into a partnership with Docker. In the future versions of Windows, Server users would be able to create container applications with the help of the docker ecosystem.
Docker will be integrated into Microsoft Azure and will be available using the Management portal and azure gallery.
The power of Azure and Windows Server leveraging the Docker platform redefines what enterprises should expect and demand from their cloud, said Ben Golub, CEO of Docker.