Print

deep space computing AG is able to "dockerize" any existing application and to port it running into a Kubernetes cluster.

A docker was a labourer who moved commercial goods into and out of ships when they docked at ports. There were boxes and items of different sizes and shapes, and experienced dockers were prized for their ability to fit goods into ships by hand in cost-effective ways. Hiring people to move stuff around was not cheap, but there was no alternative. If a ship broke, every single item had to be unloaded and reloaded by hand.

Modern ships are now designed to carry, load and unload predictably shaped items more efficiently. The shaped items are nothing else than the containers we know. Only one docker is needed to operate machines designed to move containers. The single container has different items in it. The container is loaded only once in an effective matter, when it starts its journey. It doesn't matter to the carrier ship what is inside it. The container can be easily loaded elsewhere, even on trucks and trains.

In similar way it is now possible to deploy software on Linux and Windows computers as containers with all their libraries and requirements packaged in one container to several computers (ships in the analogon), no matter what their operating system is and which libraries it has installed.

Docker is a lightweight virtualization technology where only filesystem and network are virtualized, but not the operating system kernel. Typically a host computer powerful enough to run 20 traditional virtual machines can run up to 400 Docker containers.

Kubernetes is the technology that builds up on Docker ideas: it allows to specify a cluster as it would be an XML file (a YAML file to be precise, Yet Another Markup Language...). If one host goes down due to malfunction, Kubernetes is able to restart the containers which failed on another working host computer.

Additionally, Kubernetes and Docker require existing monolithic applications to be rewritten as Microservices, a set of software development rules that rearrange an application as loosely coupled services.