Build, Ship, and Run Any App, Anywhere
Lately Docker has been gaining crazy popularity, and most of the projects with which I have to work either already use it or are interested in its use.
The main benefit of Docker for us was the ability to optimize development processes.
Briefly, what Docker can do for developers:
- allows for the creation of an isolated environment, almost similar to a production server;
- provides the ability to run more applications on the same equipment;
- facilitates the speed of building applications;
- simplifies the management and deployment of applications;
How many projects are currently working with only one programming language? How many projects need to connect additional libraries or package dependencies? How many need to use databases?
And from project to project versions of programming languages may be different as well as their dependencies themselves and their versions.
Each new project a developer is going to work with will require the installation and configuration of the working environment. Even having a guide and starting to work, a developer used to spend a lot of time to set up the environment.
And, most sadly, it will require additional time to carry out the same setup for each next developer. And no one is assured that there will be no conflicts. And there is also the fact that developers can run on different operating systems.
What is the value of using Docker for any project from this point of view?
First of all, if a project is configured to work with a Docker container or set of containers, we are able to involve new developers on a project in a very short period of time.
We can simplify the entire process to one-off customization and run it anywhere, on any machine, with the same configuration in a few minutes or even seconds. And it’s just awesome!
Have you ever heard the phrase “it works on my machine?” Previously, I often heard and said this phrase. When I tried to run one’s code in my system or deploy my code on the server it stopped working.
Docker helps eliminate this problem and simplify the delivery of code. We have the capability to pack everything you need to run applications (libraries, settings …) in light isolated containers. And the development team can have confidence that prepared images will work in the same way in development, staging and production.
Another part of the success is the support of Docker containers by cloud providers (Amazon Web Services, Microsoft Azure, Google Cloud Platform and others). Using Docker containers, we are able when necessary to easily transfer containers from one cloud platform to another.
Have you noticed how often I use the expression “Docker gives us the opportunity,” “we have the opportunity,” and “we can”?
So Docker for us is a new possibility.
Opportunities to improve our agile processes connected with continuous integration, and the deployment of projects in both test and production environments.