Comparison of Traditional infrastructure vs virtualization vs Docker containers

Traditional | Virtualization | Containers |
Traditionally, apps were deployed and operated on physical servers by organizations. This approach while simple had many limitations. 1.Time Consuming 2.Scaling problems 3.Compatibility and Dependency issues 4.Inconsistency across different environments. 5.Overutilization by one app could crash the entire system 6.Expensive to maintain physical servers | Virtual Machine provides an abstraction of the physical hardware. A Hypervisor allows multiple Virtual Machines (VM) to run on a single server. Each VM has a full copy of OS, app binaries, and libraries. Pros: 1.Better utilization of resources than traditional methods 2.Applications are isolated Cons: 1.OS images are heavy (GB) and have a slow bootup process 2.Applications are not portable 3.Not Scalable 4.Can get expensive | Then came the container deployment. Here we have the basic resources like Hardware and Operating system and then instead of having a whole virtual system in place, we will have a platform we call it container engine (docker) on which applications and all the libraries and dependencies are packaged together in a containers. Containers are nothing but a package contain all the files required for an application so that an application can run across platforms such as local desktop, data center, and cloud. Each container runs as an isolated process while sharing the same OS kernel. Pros 1.Flexible 2.Lightweight and quick bootup 3.Containers are highly portable 4.Isolation 5.Inexpensive 6.Highly scalable |