In this article, we will try to understand the need of containerization in simple terms. Unlike the traditional method of provisioning and managing the resources, the technology advancement has brought as a situation where companies are moving towards or already managing their infrastructure in different places. Be it on premise or with different cloud service providers like AWS, Azure, and Google Cloud and so on. Multi-infrastructure management comes along with some major challenges like migration from one place to another. We know the pain of migrating all our workloads from one infrastructure to the other. Hence, the use of containers makes it easy to build, ship and run anywhere saving lot of time and effort.
Nowadays most of the companies are into transforming their applications from monolithic architecture to microservices architecture. Just think off the cost involved in provisioning the hardware/servers for each services in microservices. The containers can eliminate this challenge as well by running on a single server that too by isolating from each other.
One another major advantage of using containers are in using along with CI/CD pipelines. Using containerization in the CI/CD pipelines saves us a lot of time and deliver high performance. Containers are lightweight and isolated and are easy scalable and provides seamless elasticity. One such popular Containerization tools in the market for a long time is Docker.
Why Docker became so popular?
Docker has attained popularity due to its simple interactive CLI. It has its own DSL (Domain Specific Language) and mainly it is similar to Linux. However, it is not only easy to learn for Linux users but also provides simplicity for the other new users as well. Docker is limited to run only through the command line although it is itself a VM or a Windows machine. Docker needs only the docker engine to be available and works in a similar way across all the operating systems (with the same CLI) that makes it platform independent.
Containers are everywhere. Most of the services in Microsoft Azure are nowadays running on the Containers. Nonetheless, it eliminates many challenges of VMs, in some cases VMs are still standing out. Hence, it is a better approach to use both of them effectively considering the use case and requirements of your projects or infrastructure and in optimally deploying and managing your applications.