Orkiestracja kontenerów dla mikrousług
Architektury mikrousług zwykle pakuj i wdrażają każde wystąpienie mikrousługi w jednym kontenerze. Wiele wystąpień mikrousług może być uruchomionych, z których każdy należy do oddzielnego kontenera. Kontenery są lekkie i krótkotrwałe, co ułatwia tworzenie i niszczenie kontenerów, ale trudno je koordynować i komunikować się między nimi.
W tym artykule omówiono wyzwania związane z uruchamianiem konteneryzowanej architektury mikrousług w skali produkcyjnej oraz sposobem, w jaki orkiestracja kontenerów może pomóc. W tym artykule przedstawiono kilka opcji aranżacji kontenerów platformy Azure.
Architektura konteneryzowanych mikrousług
W tym prostym konteneryzowanym klastrze usługi Azure Kubernetes Service (AKS):
- Jedno wystąpienie mikrousługi A działa w węźle 1, innym wystąpieniu w węźle 2 i trzecim wystąpieniu w środowisku Node 3.
- Jedno wystąpienie mikrousługi B jest uruchomione w węźle 1, a drugie wystąpienie w węźle 3.
- Konteneryzowane zwrotnych serwerów proxy działają w węzłach 1 i 2 w celu dystrybucji ruchu.
Aby zarządzać klastrem, zespół DevOps musi:
- Uruchamianie wielu wystąpień kontenera w każdym węźle.
- Równoważenie obciążenia ruchu między wystąpieniami.
- Zarządzanie komunikacją między wystąpieniami zależnymi w oddzielnych węzłach.
- Zachowaj żądany stan klastra usługi AKS.
Dzięki orkiestracji kontenerów zespół DevOps może reprezentować żądany stan klastra jako konfigurację. Aparat aranżacji kontenerów wymusza żądaną konfigurację i automatyzuje wszystkie zadania zarządzania.
Rozważ konteneryzowanie prostej trójwarstwowej aplikacji internetowej:
- Kontener hostuje składnik frontonu.
- Inny kontener hostuje warstwę środkową lub warstwę interfejsu API REST.
- Warstwa środkowa komunikuje się z globalnie rozproszoną bazą danych.
Uruchamianie tych kontenerów na jednej maszynie deweloperów może nie być zbyt trudne. Jednak uruchomienie aplikacji w trybie wysokiej dostępności na dużą skalę w klastrze produkcyjnym szybko staje się trudne. Orkiestracja kontenerów ma kluczowe znaczenie dla dużych i dynamicznych środowisk produkcyjnych.
Zalety orkiestracji kontenerów
W poniższym przykładzie pokazano, jak orkiestracja kontenerów może pomóc w zarządzaniu wdrażaniem klastra, siecią i skalowaniem.
Orkiestrator kontenerów:
Automatycznie skaluje liczbę wystąpień mikrousług na podstawie ruchu lub wykorzystania zasobów. W tym przykładzie orkiestrator automatycznie dodaje kolejne wystąpienie mikrousługi A w odpowiedzi na zwiększony ruch.
Zarządza kontenerami w celu odzwierciedlenia skonfigurowanego żądanego stanu. W tym przykładzie mikrousługa B jest skonfigurowana tak, aby miały dwa wystąpienia. Jedno wystąpienie stało się w złej kondycji, więc orkiestrator utrzymuje żądany stan przez utworzenie innego wystąpienia.
Opakowuje kontenery dla każdej mikrousługi w prostej warstwie usługi. Warstwa usługi:
- Wyodrębnia złożone elementy, takie jak adres IP, port i liczba wystąpień.
- Obciążenie równoważy ruch między wystąpieniami mikrousług.
- Obsługuje łatwą komunikację między wystąpieniami zależnych mikrousług.
Orkiestratory kontenerów zapewniają również elastyczność i kontrolę ruchu w celu:
- Zwolnij nowe wersje lub wycofaj stare wersje mikrousług lub zestawów mikrousług bez przestojów.
- Włącz testowanie równoległe różnych wersji mikrousług.
Wybieranie orkiestratora kontenerów platformy Azure
Poniżej przedstawiono kilka opcji implementowania orkiestracji kontenerów mikrousług na platformie Azure:
usługi Azure Kubernetes Service (AKS) to w pełni zarządzana usługa Kubernetes orkiestracji kontenerów na platformie Azure, która upraszcza wdrażanie konteneryzowanych aplikacji i zarządzanie nimi. Usługa AKS zapewnia elastyczną aprowizację, szybkie kompleksowe wdrażanie oraz zaawansowane zarządzanie tożsamościami i dostępem.
usługa Azure Service Fabric to orkiestrator kontenerów służący do wdrażania mikrousług i zarządzania nimi w klastrze maszyn. Uproszczone środowisko uruchomieniowe usługi Service Fabric obsługuje tworzenie mikrousług bezstanowych i stanowych.
Kluczowym inicjatorem usługi Service Fabric jest niezawodna obsługa tworzenia usług stanowych. Możesz użyć wbudowanego modelu programowania usług stanowych lub uruchamiać konteneryzowane usługi stanowe napisane w dowolnym języku lub kodzie.
usługi Azure Container Instances (ACI) to najszybszy i najprostszy sposób uruchamiania kontenera na platformie Azure. Dzięki usłudze ACI nie trzeba zarządzać maszynami wirtualnymi ani dostosowywać usług wyższego poziomu.
W przypadku prostych scenariuszy orkiestracji można użyć Docker Compose do definiowania i uruchamiania aplikacji z wieloma kontenerami lokalnie. Następnie wdróż kontenery platformy Docker jako grupę kontenerów ACI w zarządzanym, bezserwerowym środowisku platformy Azure. W przypadku scenariuszy pełnej aranżacji kontenerów usługa ACI może integrować się z usługą AKS w celu utworzenia węzłów wirtualnych na potrzeby orkiestracji usługi AKS.
azure Spring Apps to gotowa do użycia w pełni zarządzana usługa dla aplikacji Spring Boot. Usługa Spring Apps umożliwia skoncentrowanie się na tworzeniu i uruchamianiu aplikacji bez konieczności zarządzania infrastrukturą. Usługa Spring Apps oferuje wbudowane zarządzanie cyklem życia i aranżacją, łatwość monitorowania i pełną integrację z platformą Azure.
usługi Azure Red Hat OpenShift (ARO) obsługuje wdrażanie w pełni zarządzanych klastrów OpenShift na platformie Azure. Uruchamianie kontenerów produkcyjnych platformy Kubernetes wymaga integracji z platformami i narzędziami, takimi jak rejestry obrazów, zarządzanie magazynem, monitorowanie i metodyka DevOps. Usługa ARO rozszerza platformę Kubernetes, łącząc te składniki w jedną platformę kontenera jako usługę (PaaS).
Współpracowników
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Veerash Ayagari | Główny inżynier oprogramowania
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- architektura mikrousług w usłudze Azure Kubernetes Service (AKS)
- architektura mikrousług usługi Advanced Azure Kubernetes Service (AKS)
- ciągłej integracji/ciągłego wdrażania dla aplikacji usługi AKS za pomocą usługi Azure Pipelines
- używanie bram interfejsu API w mikrousługach
- architektura referencyjna usługi Azure Spring Apps