Historia orkiestracji kontenerów: od skryptów wdrożeniowych do Kubernetesa
Źródło: dotCloud, Inc., Apache License 2.0, Wikimedia Commons
Spis treści
Rozwój narzędzi do orkiestracji kontenerów przebiegał etapami odpowiadającymi na kolejne ograniczenia wcześniejszych rozwiązań wdrożeniowych. Poniższa oś czasu porządkuje najważniejsze etapy tego rozwoju w ujęciu koncepcyjnym.
Ręczne skrypty wdrożeniowe
Najwcześniejsze podejścia do wdrażania aplikacji opierały się na ręcznie pisanych skryptach, które kopiowały pliki aplikacji na serwer, konfigurowały zależności i restartowały usługi. Podejście to wymagało dużego nakładu pracy manualnej i było podatne na rozbieżności między środowiskami — problem znany jako „u mnie działa”.
Wczesne platformy PaaS
Kolejnym etapem było pojawienie się platform typu Platform as a Service, które automatyzowały część procesu wdrożeniowego, ukrywając przed zespołem deweloperskim szczegóły konfiguracji infrastruktury. Platformy te ograniczały jednak elastyczność w zakresie konfiguracji niestandardowych środowisk uruchomieniowych.
Konteneryzacja i Docker
Upowszechnienie konteneryzacji, w szczególności narzędzia Docker, umożliwiło pakowanie aplikacji wraz z jej zależnościami w przenośną jednostkę uruchomieniową, działającą identycznie niezależnie od środowiska hosta. Rozwiązało to problem rozbieżności środowisk, jednak zarządzanie dużą liczbą kontenerów na wielu maszynach pozostawało wyzwaniem operacyjnym.
Powstanie Kubernetesa
Odpowiedzią na problem zarządzania dużą liczbą kontenerów stały się platformy orkiestracji, wśród których Kubernetes stał się najszerzej przyjętym standardem. Podstawowe pojęcia związane z tą platformą opisano w artykule Czym jest Kubernetes. Platforma ta zautomatyzowała planowanie rozmieszczenia kontenerów, ich skalowanie oraz odzyskiwanie sprawności po awarii.
Rozbudowa ekosystemu
Wokół Kubernetesa rozwinął się szeroki ekosystem narzędzi uzupełniających, w tym rozwiązania service mesh odpowiedzialne za zarządzanie ruchem sieciowym między usługami — zagadnienie to opisano w artykule Service mesh a tradycyjne trasowanie ruchu. Ekosystem ten obejmuje również narzędzia do monitorowania, zarządzania konfiguracją oraz automatyzacji procesów wdrożeniowych.
Znaczenie kontekstu historycznego
Zrozumienie kolejnych etapów rozwoju narzędzi orkiestracji pomaga w ocenie, dlaczego współczesne platformy przyjmują określoną strukturę architektoniczną. Wiele decyzji projektowych w Kubernetesie wynika bezpośrednio z ograniczeń napotkanych na wcześniejszych etapach rozwoju tej dziedziny.