17-12-2020

Docker: makes packaging an application easier

A while ago, our developer Fabian introduced "Docker" to Zooma. We recently ran our first project using this open-source project. Fabian gave an online Zooma Labs on Docker last week and in this blog he tells you all about what Docker is and what its advantages and disadvantages are.

Docker2.png

docker.png

Docker: makes application packaging and shipping easier

Docker is an open-source project that aims to speed up and make easier the packaging and shipping of an application. It is a technique that uses another technique: virtualization. At its core, Docker works with containers. In Docker, applications are placed in isolation from each other in containers. A container is a small operating system in a box: it contains its own application, tools, configuration files and libraries.

Advantages and disadvantages of Docker

Using Docker brings many advantages, but the biggest advantage is that Docker eliminates the need for a developer to worry about whether everything is properly configured and whether the latest versions are running. This is because Docker creates a small virtual server in which all the building blocks and components reside. We can configure those building blocks and components so that they have exactly the same versions as those on the final production server. This way, you ensure that each developer is working with the same tools, versions and operating systems as the rest of the team. As a result, if a developer wants to start working on an already existing project, that developer only needs to type 1 line in the command line and everything works immediately (Famous last words ;)).

It's fast! If you have read this far you will now think of virtual machines, and yes that is what it looks like, but a container is definitely different. A virtual machine runs the entire operating system and creates virtual hardware to communicate with. A container talks directly to a host operating system and thus shares the real hardware making it lightning fast. Docker also has a drawback: it's another tool you have to learn. Even though it often prevents many headaches, it can actually sometimes cause headaches when you are just starting out.

Docker and Blink

The project we used Docker for was Blink Mortgages. A Docker compose was chosen for Blink. This is a way for multiple containers, in this case the containers of the database, Apache and PHP, to work together at the same time. At Blink, however, we used not only Docker, but also "Kubernetes" on an Azure acceptance server. Kubernetes is an organizer. It tells which parts to work when. It is an open-source system that directs which programs should work with which programs within a project. We chose this because Kubernetes can get the next version ready in one click, without you as a developer having to look at it. The link between Docker and Kubernetes is that they both use the same containers. You can enable them for any project. Super convenient!

Docker works very nicely for me. It saves me a lot of time as a developer and I can dive into an already existing project without too much effort. It speeds up and simplifies the development process. I recommend everyone to give Docker a chance. You won't regret it!

Placeholder-1.png

Written by

Fabian

Next

Building facial recognition into existing banking app