Traditional Deployment VS Virtualization VS Container

History of running a software Traditional Deployment

  • Early on, organizations ran applications on physical servers.
  • Install or use an existing operating system.
  • Install the tools & dependencies needed by your software.
  • Run your application on it.

Problem with Traditional Deployment

  • Resource Isolation issue, there is no way to define resource boundaries for applications in a physical server.
  • Scaling issues for specific applications and long downtime.
  • Overutilization of resources for a specific app can crash the entire physical server.
  • It was expensive for organizations to maintain many physical servers.

Now to Overcome this problem, a virtual machine was introduced.

  • Virtualization allows you to run multiple VMs on a single physical server.
  • Each VM includes a full copy of an operating system, the application, necessary binaries, and libraries.
  • Virtualization allows more effortless adding and updating of applications that solve the scalability issue.
  • Virtualization allows better utilization of resources.
  • Virtualization isolates applications between VMs.

Virtual Machine is great but there are a few problems.

  • Operating system images are heavyweight, image size in GB.
  • Contain guest OS for each virtual machine.
  • It is a slow-to-boot-up process.
  • Application is not portable
  • Not scalable according to the requirement.
  • Spin up a virtual machine may take 1–2 minutes.

Docker container was introduced in 2013 to solve this problem.

  • The process of virtualizing the operating system produces containers.
  • A container is an abstraction at the OS layer that packages code and dependencies together.
  • Containers take up less space than VMs, boots quickly.
  • Containers use underlying hardware so no wastage of resources.
  • Containers are very lightweight and very fast and can spin up a few seconds or milliseconds.
  • Docker containers are process-isolated and don’t require a hardware hypervisor.
  • Containers are highly portable.
  • Containers are highly scalable with the help of orchestration platforms such as Kubernetes or Docker Swarm which helps to create and manage docker containers.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store