Konteneryzacja – to opakowanie kodu aplikacji ze wszystkimi niezbędnymi do działania bibliotekami i zależnościami w odizolowany kontener, który można uruchomić na dowolnej infrastrukturze. Proces ten można też inaczej opisać jako “wirtualizację na poziomie systemu operacyjnego”.
Najbardziej znanym narzędziem do tworzenia i uruchamiania kontenerów jest Docker. Jest to oprogramowanie typu open-source, które odpowiada za popularyzację konteneryzacji. Inne narzędzia o tej samej funkcji to m.in. Containerd i CRI-O.
Orkiestracja kontenerów #
Konteneryzacja całej aplikacji wymaga wykorzystania wielu kontenerów. Wdrażanie, skalowanie i koordynowanie setek kontenerów umożliwiają tzw. orkiestratory. Pomagają one zarządzać złożonymi operacjami podczas skalowania kontenerów w górę lub w dół, udostępniają kontenery, tworzą ich harmonogramy, usuwają je oraz monitorują ich stan.
Do najpopularniejszych orkiestratorów zaliczamy:
- Kubernetes (K8s),
- Amazon Elastic Container Service (Amazon ECS),
- Mirantis Kubernetes Engine (dawniej Docker Enterprise),
- Red Hat OpenShift,
- Azure Kubernetes Service (AKS),
- Rancher,
- VMware Tanzu.
Zastosowanie konteneryzacji #
Konteneryzacja sprawdza się szczególnie w procesie tworzenia oprogramowania, ponieważ:
- Upraszcza, automatyzuje i przyspiesza cykl tworzenia oraz ulepszania aplikacji (CI/CD – Continuous Integration and Delivery),
- Ułatwia tworzenie środowisk deweloperskich,
- Upraszcza dostarczanie gotowych aplikacji na docelowe środowiska,
- Umożliwia eksperymentowanie z różnymi wersjami oprogramowania.
Kontenery znajdują też zastosowanie w:
- Modernizacji i migracji starszych aplikacji,
- Budowie środowisk Hybrid Cloud,
- Urządzeniach IoT.