Historia orkiestracji kontenerów: od skryptów wdrożeniowych do Kubernetesa

Historia orkiestracji kontenerów: od skryptów wdrożeniowych do Kubernetesa

Źródło: dotCloud, Inc., Apache License 2.0, Wikimedia Commons

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.

Etap 1

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”.

Etap 2

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.

Etap 3

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.

Etap 4

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.

Etap 5

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.