EN

Docker Docker Docker — So, what are the benefits?

-

Getup

It's amazing how fast Docker managed to become so popular. A subject of interest in the most diverse environments, events, reports, forecasts and even being adopted by giants, visionary giants and others not so much. It is the container revolution, some say.

But where exactly does this revolution happen and where are the benefits? Well, that depends on the scenario, it varies a lot on how you intend to use it or what the goals are, whether in development or in production, whether alone or for team use.

Docker in local development and application testing

If you are working alone on an application and testing on your local machine, your challenge is to remain productive, not wasting time with configurations or worse, the headaches of the famous "yesterday it was running on my machine, today it isn't", wasting precious hours debugging to find out what happened.

For the individual developer, it is the guarantee that "if it ran on my machine today, it will run on my machine tomorrow, as well as at testing time", translating into more productivity and quality in deliveries.

Docker in team development

Working in a team, the challenge gets a little bigger, more people working together and running tests means you need to run in more than one environment.

The most common problems involve version conflicts, differences in installed libraries, and configurations. Here, the productivity loss has a greater impact because it now involves the time of a team, larger projects, deadlines, clients, and directly impacts costs.

The advantage of using Docker lies in the consistency offered in containerizing applications, libraries, and configurations, increasing productivity in development by removing hours and hours lost solving differences between environments from the daily routine.

Docker for CI/CD

For CI/CD you need to implement and tie together a set of configurations and tools to handle different build rules, tests, the need to create a clean/new environment for each build, avoiding possible contamination from previous configurations, and finally making the delivery, adding the need for a method to promote images along the pipeline dev > qa > production.

Well, no developer has free time to configure and maintain Ansible/Chef/Puppet, server setups, and other components. Using Docker along with a PaaS solution makes it easy not only to create pipelines but also to manage who has permission to publish or promote images between stages.

Docker for publishing applications in production

Publishing a containerized application in production could be summarized as follows:

Works on my machine > works in QA > works in production

Running in production is different from testing and development; now you will have to deal with availability, performance, and security. It is also recommended to have a rollback strategy if you are doing numerous daily builds and deployments.

If the volume of access is large or has seasonal peaks, you need to ensure you can scale the environment. An auto-scaling strategy and independent components are necessary.

Dockerizing applications will bring you closer to achieving the features described above, but it won't be enough and the implementation complexity might be greater than the return. My tip in these cases is to look for a PaaS or IaaS solution that offers the necessary tools and methods without the complexity of implementing it yourself.

Docker running on a platform (PaaS)

It is common to have some confusion in this area, some understand Docker as a platform, but a platform is not built with a single component.

PaaS is much more than simply deploying a containerized application, PaaS is a service.
It offers scalability, build automation, rollback, application health checks, metrics, user/permission/team collaboration management, service management, external routes, private image repository — approved and kept updated with security patches.

You can build your PaaS solution using Kubernetes + Docker or Docker Swarm + Docker and a few more pieces in this Lego block, but should you?

For most, consuming the service is faster and more cost-effective than building one.

[embed]https://upscri.be/375ca4/[/embed]

Newsletter Getup.

Atualizações sobre Kubernetes e Software Supply Chain Security todos os meses.

Operating Kubernetes in production for more than 13 years. With Quor, this experience extends to software supply chain security as well.