1. Traditional Deployment
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.
2. Virtual Machine
Virtual Machine
- 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.
3. Docker Containers
Docker Containers
- 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.
Comments
Post a Comment