We all hear lot thing about containers, do you know what is a container how it different from physical and virtual world . In this post I will shared information about how containers differ from physical and virtual world and container platforms.
In the beginning, we had physical machines and install Operating System on that then deploy application top of that. To deploy an application on this world we had lot of challenges and time consuming . Because every time to deploy a new application we have to buy a new physical server, to buy a server we have go through many process like find suitable hardware co-ordinate with vendor, finance team , delivery , installation and again Operating system installation License ,Storage , Application etc.
Moreover, if you need more applications would require more machines that are physical, its own Operating System installed and the application, License and cost for this is very high.
And we were not able to utilize the complete resource of those physical machines ,waste of power, cooling, raw materials, data centre floor space etc.
VMware came in world with their innovative idea Virtual Machine and this was great opportunity to start moving physical world to virtualization . That was a beginning and VMware released their Hypervisor, which will install on the physical machine. The hypervisor will own the computing resources and it create multiple Virtual Machines.
Virtualization
Virtual Machines has their own virtual hardware where we install desired operating System then install an application on top of the OS. By moving to virtualization, we were able to utilize the maximum resource with less power, cooling, space etc. Now we have many hypervisor’s in market ESXi, Hyper-V, KVM etc.
Still we have challenges like hypervisor cost , support , virtual machine guest operating system , license etc
Virtualization was booming technology from many years and still in many regions .When we really looking in to the actual needs still we have challenges and to overcome this Container came.
There is common thing in all three models Computing Resources, Operating System, OS patching, anti-virus etc.
Basic architecture of containers is shown in the below image , there we have physical machine with an Operating System running on the bare-metal then on top of the Operating System *containers* and within each container run an application. Here the Operating System owns and manages the physical machines computing resources
What is a Container?
A container consists of an entire run time environment: an application, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. Containers allows you to deploy quickly, reliably, and consistently regardless of deployment environment.
Containers are lightweight it uses less computing , Containers virtualize CPU, memory, storage, and network resources at the OS-level, providing developers with a sandboxed view of the OS logically isolated from other applications.
There are many container formats available. Docker is a popular, open-source container format that is supported on Google Cloud Platform and by Google Kubernetes Engine .
Here I will share few Linux distributions which is commonly used
Only Linux re suitable for Containers?
The answer is No, because with Windows Server 2016 and Windows 10 has the ability to run containers. These are Docker containers and it can managed from any Docker client or from Microsoft’s PowerShell. Microsoft Hyper-V also support containers, which are Windows containers running in a Hyper-V virtual machine for added isolation.
Windows containers can deployed on a Windows Server 2016, the streamlined Server Core install or Nano Server install option that is specifically designed for running applications inside containers or virtual machines.
More about Docker on Windows
Now you may think about VMware, yes of course VMware also has their own container platforms
In addition to Linux, Windows, and VMware Docker also runs on popular cloud platforms including Amazon EC2, Google Compute Engine, Microsoft Azure and Rackspace.
Don’t get confused with Docker word we will explaining on this upcoming blogs posts
What you think about virtualization and containers together?
This is another better option because containers can run top of virtual machines to increase isolation and security. Another important thing by using hardware virtualization you can manage required infrastructure to run containers from a single pane with many advanced hypervisor features .
End of the day it is all about your requirement both method has their benefits. Moreover, I Prefer rather than replacing virtual machines with containers use containers within a virtual infrastructure to achieve availability, backup, easy management etc.
I will be sharing more posts on how to start using the containers , Stay Tuned
Suggested Posts
Docker Architecture and Components
Thank you for reading this post , Share the knowledge if you feel worth sharing it.