Virtual Machines (VMs) vs Containers: What's The Difference?
Introduction
In continuation of articles related to Cloud containerization, we started with Microservice with its requirements and benefits.
then Kubernetes, How it was evolved and how it is working with benefits.
Now I would like to share a comparison between Virtual Machines and Containers, How they are different, and what are the characteristics of both.

Containers
Stock Image Source: pat-whelen-NxM3zUWHFoI-unsplash
Brief history
In the early 1970s, Virtualization changed networked computing, that's shift had a major impact on the computing revolution.
Then the container revolution began with improved performance in data center technologies and application development led to cloud computing.

VM vs Containerized deployment
Image Source: Kubernetes Website
Containers
A container is an isolated, lightweight silo for running an application on the host operating system, each container has its own library & applications.
It is easy to deploy, fast boot time & dynamic resource allocation.
Simply we can say its OS (Operating System) virtualization with a layer of container run-time (software container management)
Containers can run:
On top bare metal servers
On top hypervisors
In cloud infrastructure

Containerization
Image Source: Kubernetes Website
Benefits of containers
Containers are very useful in developing, deploying, and testing modern distributed apps and microservices that can operate in isolated execution environments on the same host machines.
Virtual Machines
VM is an emulation of a computer system, it makes many separate computers on hardware that is actually one computer.
OS & their applications share hardware resources.
In simple words, Virtually dividing one server/cluster into multiple servers working individually, all are being controlled by HyperVisor.

Image Source: VM
The virtual machine contains all necessary elements to run the apps, including:
Computing
Storage
Memory
Networking
Hardware functionality available as a virtualized system
End Remarks
With the use of containers, developers are not writing application code into different VMs operating different app components to retrieve compute, storage, and networking resources.
A complete application component is executed in its entirety within its isolated environment without affecting other app components or software.

Cloud Devlopers
Stock Image Source:photo-1454165804606-c3d57bc86b40-unsplash
It is not the end but it is a beginning. Sharing more about Kubernetes in the next article.




