Technologie konteneryzacji pozwalają na separację procesów – każdy proces (aplikacja) zamykana jest w dedykowany dla siebie środowisku systemu operacyjnego, a to daje wiele zalet:
- przenośność – aplikacja posiada własne dedykowane środowisko systemu operacyjnego, które pozwala na szybkie przenoszenie aplikacji pomiędzy hostami. Przenosząc aplikację, przenosimy cały kontener, unikając konieczności konfigurowania nowego środowiska.
- skalowalność – możemy dodawać nowe instancje naszej aplikacji, kopiując kontener a następnie rozmieszczać je na różnych hostach, zwiększając w ten sposób pojemność systemu. Proces skalowania można zautomatyzować dzięki narzędziom orkiestracji dedykowanym do zarządzania kontenerami.
- ciągłość działania – zaletą skalowalności jest możliwość rozproszenia kontenerów na różnych hostach. Dzięki temu w razie awarii kontenera lub hosta, ciągle mamy dostępne inne instancje aplikacji, które mogą obsługiwać ruch.
- szybki deployment – kontenery pozwalają na szybkie wdrażanie nowych wersji aplikacji. Wdrożenie nowej wersji ogranicza się do uruchomienia nowego obrazu kontenera.
- bezpieczeństwo – każda aplikacja uruchamiana jest w oddzielnym kontenerze z dedykowanymi dla niej zabezpieczeniami.
- łatwość zarządzania – kontenery zarządzanie są z poziomu narzędzi do orkiestracji. Wiele procesów jest zautomatyzowanych, m.in. zarządzanie kontenerami, skalowanie itd.
Wdrażamy, utrzymujemy i rozwijamy infrastrukturę oraz procesy CI/CD bazujące na kontenerach. Na co dzień pracujemy przede wszystkim z Docker’ami oraz kontenerami LXC. Do zarządzania kontenerami używamy Kubernetes’a z Helm’em (managerem paczek) i Docker Swarm.