Today, there is a buzz all around about Docker and containerisation in general. What exactly is Docker and how is it related to containerisation? What are the top benefits of using docker? Why did it became so popular? In this article I will answer all these questions as well as give you a few statistics and some successful case studies related to Docker that are nice to know about.
What is docker & how is it related to containerization
Running applications in containers instead of virtual machines is gaining momentum in the IT world. The technology is considered to be one of the fastest growing in recent the history of the software industry. At its heart lies Docker, a platform that allows users to easily pack, distribute and manage applications within containers. In other words, It is an open-source project that automates the deployment of applications inside software containers.
Docker really makes it easier to create, deploy, and run applications by using containers. And containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, the developer can be assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
Docker; statistics & facts
- 2/3 of Companies that try using docker, adopt it. Most companies who will adopt have already done so within 30 days of initial production usage, and almost all the remaining adopters convert within 60 days.
- Real docker adoption is up 30% in one year
- Adopters 5x their container. Docker Vs Kubernetes Docker adopters approximately quintuple the average number of running containers they have in production between their first and tenth month of usage.
- PHP, Ruby, Java and Node are the main programming frameworks used in containers1
- Top technologies running on docker
Popularity & benefits of using docker
Why do large companies like ING, PayPal, ADP and Spotify keep using Docker? Why is the adoption of docker growing so fast? Let’s go over the top advantages of docker to better understand it.
1. Return on investment & cost savings
The first advantage of using docker is the ROI. The biggest driver of most management decisions when selecting a new product is the return on investment. The more a solution can drive down costs while raising profits, the better the solution is, especially for large, established companies, that need to generate steady revenue on the long term.
In this sense, Docker can help facilitate this type of savings by dramatically reducing infrastructure resources. The nature of Docker is that fewer resources are necessary to run the same application. Because of the reduced infrastructure requirements that Docker has, organizations are able to save on everything from server costs to the employees needed to maintain them. Docker allows engineering teams to be smaller and more effective.
2. Standardization & productivity
Docker containers ensure consistency across multiple development, release cycles and standardising your environment. One of the biggest advantages to a Docker-based architecture is actually standardization. Docker provides repeatable development, build, test, and production environments. Standardizing service infrastructure across the entire pipeline allows every team member to work on a production parity environment. By doing this, engineers are more equipped to efficiently analyze and fix bugs within the application. This reduces the amount of time wasted on defects and increases the amount of time available for feature development.
As we mentioned, Docker containers allow you to commit changes to your Docker images and version control them. For example if you perform a component upgrade that breaks your whole environment, it is very easy to rollback to a previous version of your Docker image. This whole process can be tested in a few minutes. Docker is fast, allowing you to quickly make replications and achieve redundancy. Also, launching Docker images is as fast as running a machine process.
3. CI efficiency
Docker enables you to build a container image and use that same image across every step of the deployment process. A huge benefit of this is the ability to separate non-dependent steps and run them in parallel. The length of time it takes from build to production can be sped up notably.
4. Compatibility & maintainability
Eliminate the “it works on my machine” problem once and for all. One of the benefits that the entire team will appreciate is parity. Parity, in terms of Docker, means that your images run the same no matter which server or whose laptop they are running on. For your developers, this means less time spent setting up environments, debugging environment-specific issues, and a more portable and easy-to-set-up codebase. Parity also means your production infrastructure will be more reliable and easier to maintain.
5. Simplicity & faster configurations
One of the key benefits of Docker is the way it simplifies matters. Users can take their own configuration, put it into code and deploy it without any problems. As Docker can be used in a wide variety of environments, the requirements of the infrastructure are no longer linked with the environment of the application.