Have you ever heard of Docker? Dockers play with containers, but in the IT world, they run them.
Today, the applications technology stack is very complex, with multiple programming languages and frameworks, not to mention that application development already became much more than just coding. Now, the circle between coding and go-to production has very different phases (build, test, etc.), with various tools. Handling such a complex ecosystem is very hard and painful; maybe that pain is the reason why we have Docker. It tries to reduce our pain in the process of delivering a modern application, while reducing needed time and money to go live.
What Is Docker? Here’s a Simple Definition:
Docker is an open-source platform for building, shipping, deploying, and running applications by using containers. Yes, I mentioned containers. If you have dockers and shipping, you’ll probably have containers, as well. A container is a standardized, runnable instance that combines application code with all dependencies required to run the code in any environment. In this case, the “any environment”, kills developers' excuse "But, that works on my machine...".
What Are Docker’s Benefits?
Docker is a very popular technology. Its popularity comes from many useful benefits brought to the user, with only few of them listed in this article.
Portability is one of the biggest Docker benefits. As I've already said, "It works on my machine", is history with Docker portability. You can deploy your Docker container with an app on any environment, and your app will behave the same way. It’s not important whether it runs on your developer computer, some company server, or the cloud environment. This also means there’s no surprise at the production, since you’ll have the same behavior on the test environment.
Docker gives isolation to the application and its resources. This means that one Docker container is isolated from the other Docker containers. If you have two Docker containers apps that require the same software, but a different version of it, this wouldn't be a problem anymore, because resources are isolated with Docker. Both apps, with that particle software version, will work in their containers.
If you need a new instance(s) of your app, with Docker you can easily create a new container. Though, please, be aware if you’re running multiple containers on different machines. Increasing more containers of your system doesn't scale linearly: Docker will "lose the power" here, and it would need some help. It can be some Docker orchestration tool that may help you here to power it back. The most popular Docker orchestration tool is Kubernetes.
Saved resources and time
Docker requires fewer resources to run the same application. Containerized application, if required, may easily be scaled. If your environment is somewhere on the cloud, you may adjust your billing plan accordingly, and pay only for used resources. When using Docker, you may create a consistent environment, which results in technical efficiency, but also in the cost-effectiveness, since fewer technical challenges require less investment (time and money) to correct them.
TO BE CONTINUED
Interested in hearing more about this topic? In the upcoming blog post, you'll see me play with Docker.
Leave your comment below or subscribe here, if you’re interested in the next series on how to use Docker.