Containerization technologies allow to separate processes – each process (application) is closed in a dedicated operating system environment, which gives many advantages:
- portability – the application has its own dedicated operating system environment, which allows quick transfer of applications between hosts. When moving the application, we move the entire container, avoiding the need to configure a new environment.
- scalability – we can add new instances of our application by copying the container and distributing them to different hosts, increasing the system capacity. The scaling process can be automated with orchestration tools dedicated to container management.
- business continuity – the advantage of scalability is the ability to disperse containers among different hosts. This way, in the event of a container or host failure, we still have other application instances available to handle the traffic.
- quick deployment – containers allow quick implementation of new versions of the application. The implementation of the new version is limited to launching a new container image.
- security – each application is run in a separate container with dedicated security measures.
- easy management – the containers are managed from the level of the orchestration tools. Many processes are automated, incl. container management, scaling, etc.
We implement, maintain and develop container-based infrastructure and CI/CD processes. We work mainly with Docker and LXC containers. We use Kubernetes (k8s) with Helm (package manager) and Docker Swarm.