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.
How we solved this?
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.
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
How to overcome this?
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.
Finally Let check about Containers
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 .
Suitable Linux distributions for Containers
Here I will share few Linux distributions which is commonly used
- CoreOS — one of the first lightweight container operating systems built for containers
- Rancher OS— it is a simplified Linux distribution built from containers, specifically for running containers.
- Photon OS— it is a minimal Linux container host, optimized to run on VMware platforms.
- Project Atomic Host— Red Hat’s lightweight container OS has versions that are based on CentOS and Fedora, and a downstream enterprise version in Red Hat Enterprise Linux.
- Ubuntu Core—Smallest Ubuntu version used as host operating system for IoT devices and large-scale cloud container deployments
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
- Customers who has existing VMware infrastructure they can run containers on its Photon OS container Linux
- vSphere Integrated Containers (VIC) which can be deployed directly to a standalone ESXi host or deployed to vCenter Server as if they were virtual machines.
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
Thank you for reading this post , Share the knowledge if you feel worth sharing it.