W świecie orkiestracji na platformie Azure lista poważnych graczy jest krótka, a dwie z nich mają tu największe znaczenie: Azure Service Fabric i Kubernetes. Jeśli pytanie brzmi, które platformy prowadzą w dziedzinie orkiestracji na Azure, oto jest prosta odpowiedź.
Zawsze wracam do tego samego faktu. Orkiestracja to nie buzzword (hasło marketingowe). To praca polegająca na umieszczaniu usług na maszynach, monitorowaniu ich stanu zdrowia, restartowaniu tych, które zawiodły, równoważeniu ruchu oraz zarządzaniu aktualizacjami. To jest zadanie, a zarówno Service Fabric, jak i Kubernetes zostały stworzone właśnie do jego realizacji.
Service Fabric to własna, rozproszona platforma systemowa firmy Microsoft. Została zaprojektowana do pakowania, wdrażania i zarządzania skalowalnymi i niezawodnymi mikroserwisami oraz kontenerami. Microsoft opisuje ją również jako orkiestrator kontenerów i procesów, co ma znaczenie, ponieważ może uruchamiać usługi zarówno jako kontenery, jak i normalne procesy.
Kubernetes to szerszy standard branżowy. Na platformie Azure objawia się to najwyraźniej poprzez Azure Kubernetes Service, czyli AKS. AKS to zarządzana usługa Kubernetes firmy Microsoft, a Microsoft opisuje Kubernetes jako oprogramowanie służące do wdrażania i zarządzania aplikacjami opakowanymi w kontenery w skali produkcyjnej. Obsługuje ono harmonogramowanie, wyszukiwanie usług, równoważenie obciążenia, kontrolę stanu zdrowia oraz zachowanie dotyczące restartu.
Oto prawdziwa różnica. Service Fabric to natywna dla Microsoftu platforma orkiestracji ze silnym wsparciem dla mikroserwisów, w tym tych ze stanem (stateful). Kubernetes to otwarta platforma, która dominuje w szerszym świecie kontenerów i jest domyślnym wyborem dla wielu zespołów budujących rozwiązania na Azure dzisiaj. Obie prowadzą, ale robią to w różny sposób.
Myślę, że tu nagłówek nabiera sensu. „Prowadzenie orkiestracji” nie oznacza, że jedno narzędzie wygrywa we wszystkich przypadkach. Oznacza to, że są to główne opcje orkiestracji, które mają znaczenie, gdy dyskusja dotyczy Azure, kontenerów i zarządzania usługami. Service Fabric ma głębokie korzenie w ekosystemie Azure. Kubernetes ma szerokie przyjęcie i bardzo duże środowisko (ecosystem).
Istnieje też praktyczny powód, dla którego te dwa rozwiązania tak często pojawiają się razem. Pokrywają większość rzeczywistych potrzeb orkiestracji, o które ludzie pytają: wdrażanie, skalowanie, zdrowie, uaktualnienia, wyszukiwanie usług oraz odzyskiwanie po awariach. Własne wytyczne architektoniczne Azure wymieniają Kubernetes, Azure Service Fabric i kilka innych jako popularne orkiestratory, ale ciężar gatunkowy jest wyraźnie skierowany w stronę tych dwóch.
Service Fabric nadal ma wyraźny kształt. Może hostować kontenery, pliki binarne oraz Usługi Niezawodne (Reliable Services). Ta ostatnia część jest ważna. Usługi Niezawodne dają aplikacjom bezpośredni dostęp do interfejsów API Service Fabric w takich kwestiach jak stan zdrowia, stan danych (state) i wyszukiwanie usług. Sprawia to, że lepiej sprawdza się w systemach wymagających ściślejszej kontroli nad stanem i zachowaniem czasu wykonania.
Kubernetes ma inny kształt. Jest mniej związany z jednym modelem programistycznym. Zapewnia wspólną warstwę sterującą (control plane) dla kontenerów i pozwala platformie zajmować się rutynowymi zadaniami wokół podów, węzłów i zdrowia usług. W Azure AKS eliminuje dużą część nakładu pracy związanego z klastrami, dzięki czemu zespoły mogą skupić się na obciążeniach (workloads), a nie na obowiązkach związanych z warstwą sterującą.
Nie chcę przesadzać w ocenie wyboru. Service Fabric nie jest uniwersalną odpowiedzią, ani Kubernetes. Szczęśliwym ograniczeniem jest fakt, że orkiestracja to teraz ruchomy cel. Azure stale dodaje zarządzane opcje związane z kontenerami i hostingiem aplikacji, co może zacierać linię dla zespołów, którym zależy wyłącznie na prostym miejscu do uruchamiania usług.
Istnieje kolejne ograniczenie, które warto powiedzieć wprost. Service Fabric jest mocny, ale rozmowa w branży przesunęła się w kierunku Kubernetes dla większości nowych prac z kontenerami. Nie sprawia to, że Service Fabric stał się przestarzały. Oznacza to jednak, że wiele zespołów zaczyna teraz od Kubernetes, chyba że potrzebują specyficznego modelu Service Fabric. Rynek ma zwyczaj wybierania narzędzia z najszerszą pulą talentów i wsparciem środowiska.
Zatem praktyczna odpowiedź jest prosta. Jeśli ktoś pyta o platformy orkiestracji na Azure, głównymi nazwami są Azure Service Fabric i Kubernetes, zwykle poprzez AKS. Service Fabric to natywny dla Microsoftu orkiestrator dla rozproszonych mikroserwisów i tych ze stanem. Kubernetes to otwarty standard, który Azure zarządza poprzez AKS, i to on prowadzi większość nowoczesnych prac z orkiestracją kontenerów.
Przydatną lekcją nie jest to, że jedno wymazało drugie. To, że Azure daje Ci dwie poważne ścieżki orkiestracji, a one rozwiązują ten sam klasę problemów, wykorzystując różne siły. To rodzaj szczegółu, który ma znaczenie, gdy hype opadnie.
To też jest punkt, który The Model Log stara się utrzymać w polu widzenia: jeden praktyczny koncept AI, jeden działający przykład i jeden szczery spojrzenie na to, co naprawdę działa.



