Wybieranie usługi kontenera platformy Azure
Platforma Azure oferuje szereg usług hostingu kontenerów przeznaczonych do obsługi różnych obciążeń, architektur i wymagań biznesowych. Ten przewodnik wyboru usługi kontenera może pomóc zrozumieć, która usługa kontenera platformy Azure jest najbardziej odpowiednia dla scenariuszy i wymagań dotyczących obciążeń.
Notatka
W tym przewodniku termin obciążenia odnosi się do kolekcji zasobów aplikacji, które obsługują cel biznesowy lub wykonywanie procesu biznesowego. Obciążenie korzysta z wielu usług, takich jak interfejsy API i magazyny danych, które współpracują ze sobą w celu zapewnienia konkretnej kompleksowej funkcjonalności.
Jak korzystać z tego przewodnika
Ten przewodnik zawiera dwa artykuły: ten artykuł wprowadzający i inny artykuł dotyczący zagadnień, które są dzielone w odniesieniu do wszystkich typów obciążeń.
Notatka
Jeśli nie zdecydowałeś się jeszcze na konteneryzację, zobacz Wybieranie usługi obliczeniowej Azure, aby uzyskać informacje o innych opcjach obliczeniowych, których można użyć do hostowania obciążenia roboczego.
W tym artykule wprowadzającym opisano usługi kontenerów platformy Azure, które znajdują się w zakresie tego przewodnika oraz sposób porównywania modeli usług pod względem kompromisów między konfigurowalnością i opiniami rozwiązań, takich jak podejścia zarządzane przez klienta i zarządzane przez firmę Microsoft. Po zidentyfikowaniu usług kandydatów na podstawie preferencji modelu usług następnym krokiem jest ocena opcji pod kątem wymagań dotyczących obciążenia przez przejrzenie artykułu na temat wspólnych zagadnień dotyczących sieci, zabezpieczeń, operacji i niezawodności.
Ten przewodnik uwzględnia kompromisy, które mogą być konieczne na podstawie wymagań technicznych, rozmiaru i złożoności obciążenia oraz wiedzy zespołu odpowiedzialnego za to obciążenie.
Usługi kontenerów platformy Azure w zakresie tego przewodnika
Ten przewodnik koncentruje się na podzestawie usług kontenerów, które obecnie oferuje platforma Azure. Ten podzestaw zawiera dojrzały zestaw funkcji dla aplikacji internetowych i interfejsów API, sieci, wglądu, narzędzi deweloperskich i operacji. Te usługi kontenerów są porównywane:
azure Container Apps to w pełni zarządzana platforma umożliwiająca uruchamianie konteneryzowanych aplikacji bez martwienia się o aranżację lub infrastrukturę. Aby uzyskać więcej informacji, zobacz dokumentację usługi Azure Container Apps .
Azure Kubernetes Service (AKS) to zarządzana usługa Kubernetes do uruchamiania konteneryzowanych aplikacji. Dzięki usłudze AKS można korzystać z zarządzanych dodatków i rozszerzeń w celu uzyskania dodatkowych możliwości, zachowując jednocześnie najszerszy poziom możliwości konfiguracji. Więcej informacji znajdziesz w dokumentacji usługi AKS.
Web App for Containers to funkcja usługi Azure App Service, w pełni zarządzana usługa do hostowania aplikacji internetowych opartych na protokole HTTP z wbudowaną konserwacją infrastruktury, stosowaniem poprawek zabezpieczeń, skalowaniem i narzędziami diagnostycznymi. Aby uzyskać więcej informacji, zobacz dokumentację usługi App Service .
Aby uzyskać pełną listę wszystkich usług kontenerów platformy Azure, zobacz stronę kategorii produktów usług kontenerów.
Zagadnienia dotyczące modelu usług
Model usług zapewnia najszerszy wgląd w poziom elastyczności i kontroli zapewnianej przez dowolną usługę kontenera platformy Azure w zamian za ogólną prostotę i łatwość użycia.
Ogólne wprowadzenie do terminologii i pojęć dotyczących modeli usług, w tym infrastruktury jako usługi (IaaS) i platformy jako usługi (PaaS), zobacz Wspólna odpowiedzialność w chmurze.
Porównywanie modeli usług rozwiązań kontenerów platformy Azure
AKS
Jako hybryda usług IaaS i PaaS, AKS priorytetowo traktuje kontrolę nad prostotą, wykorzystując de facto standard orkiestracji kontenerów: Kubernetes. Mimo że usługa AKS usprawnia zarządzanie podstawową infrastrukturą podstawową, ta platforma oparta na maszynach wirtualnych jest nadal widoczna dla aplikacji i wymaga odpowiednich środków zabezpieczających i procesów, takich jak stosowanie poprawek, w celu zapewnienia bezpieczeństwa i ciągłości działania. Infrastruktura obliczeniowa jest obsługiwana przez dodatkowe zasoby platformy Azure hostowane bezpośrednio w ramach subskrypcji, takie jak moduły równoważenia obciążenia platformy Azure.
Usługa AKS zapewnia również dostęp do serwera API Kubernetes, który umożliwia dostosowywanie orkiestracji kontenerów i tym samym wdrażanie projektów z Cloud Native Computing Foundation (CNCF). W związku z tym istnieje znacząca krzywa uczenia się dla zespołów zajmujących się obciążeniami, które są nowe dla Kubernetes. Jeśli dopiero zaczynasz korzystać z rozwiązań konteneryzowanych, należy wziąć pod uwagę tę krzywą szkoleniową. Następujące rozwiązania PaaS oferują niższą barierę wejścia. Możesz przejść do platformy Kubernetes, gdy wymagania dyktują ten ruch.
Automatyczne usługi AKS
AKS Automatic upraszcza wdrażanie rozwiązania Kubernetes, automatyzując złożone zadania zarządzania klastrami, co zmniejsza potrzebę posiadania szczegółowej wiedzy na temat platformy Kubernetes. Oferuje ona bardziej usprawnione środowisko typu PaaS przy zachowaniu elastyczności i rozszerzalności platformy Kubernetes. Platforma Azure obsługuje konfigurację klastra, aprowizację węzłów, skalowanie, stosowanie poprawek zabezpieczeń i stosuje domyślnie pewne konfiguracje najlepszych rozwiązań. Zmniejsza to nakład pracy operacyjnej, ale zapewnia ograniczony zestaw dostępnych opcji topologii.
Notatka
W tym przewodniku rozróżnia się usługi AKS Standard i AKS Automatic, jeśli ma to zastosowanie. W przeciwnym razie można założyć, że opisane funkcje są równe w ofertach standardowych i automatycznych.
Azure Container Apps
Usługa Azure Container Apps to warstwa abstrakcji na platformie Kubernetes, która umożliwia uruchamianie i skalowanie aplikacji bez konieczności bezpośredniego zarządzania podstawową infrastrukturą. Usługa Container Apps oferuje zarówno opcje przetwarzania bezserwerowego, jak i dedykowanego, zapewniając pełną kontrolę nad typem i ilością zasobów obliczeniowych dostępnych dla aplikacji. Abstrahując od interfejsów API orkiestracji kontenerów, usługa Container Apps nadal zapewnia dostęp do kluczowych funkcji, takich jak ruch przychodzący warstwy 7, dzielenie ruchu, testowanie A/B i zarządzanie cyklem życia aplikacji.
Aplikacja webowa dla kontenerów
Usługa Web App for Containers jest również ofertą PaaS, ale zapewnia większą prostotę i mniejszą kontrolę niż usługa Container Apps. Abstrahuje ona od orkiestracji kontenerów, ale nadal zapewnia odpowiednie skalowanie, zarządzanie cyklem życia aplikacji, dzielenie ruchu, integrację sieci i możliwość obserwowania.
Zagadnienia dotyczące modelu hostingu
Do hostowania wielu obciążeń można używać zasobów platformy Azure, takich jak klastry usługi AKS. Może to pomóc usprawnić operacje, a tym samym zmniejszyć całkowity koszt. Jeśli wybierzesz tę ścieżkę, poniżej przedstawiono kilka ważnych zagadnień:
Usługi AKS są często używane do hostowania wielu obciążeń lub różnych komponentów obciążenia. Te obciążenia i składniki można odizolować przy użyciu natywnych funkcji platformy Kubernetes, takich jak przestrzenie nazw, mechanizmy kontroli dostępu i mechanizmy kontroli sieci, aby spełnić wymagania dotyczące zabezpieczeń.
Usługę AKS można również używać w scenariuszach z pojedynczym obciążeniem, jeśli potrzebujesz dodatkowych funkcji zapewnianych przez interfejs API Platformy Kubernetes, a zespół obciążeń ma wystarczające doświadczenie w obsłudze klastra Kubernetes. Zespoły z mniejszym środowiskiem kubernetes mogą nadal pomyślnie obsługiwać własne klastry, korzystając z dodatków zarządzanych przez platformę Azure i funkcji, takich jak automatyczne uaktualnianie klastra, aby zmniejszyć nakład pracy operacyjnej.
Aplikacje kontenerowe powinny być używane do hostowania pojedynczego obciążenia przy wspólnej granicy zabezpieczeń. Usługa Container Apps ma jedną granicę logiczną najwyższego poziomu nazywaną środowiskiem Container Apps, który służy również jako granica zwiększonych zabezpieczeń. Brak mechanizmów dodatkowej szczegółowej kontroli dostępu. Na przykład komunikacja wewnątrz środowiska jest nieograniczona, a wszystkie aplikacje współużytkują jeden obszar roboczy usługi Log Analytics.
Jeśli obciążenie ma wiele składników i wiele granic zabezpieczeń, wdróż wiele środowisk usługi Container Apps lub rozważ zamiast tego usługę AKS.
Web App for Containers to funkcja usługi App Service. Usługa App Service grupuje aplikacje w obszar rozliczeniowy nazywany planem usługi App Service. Ponieważ można określić zakres kontroli dostępu opartej na rolach (RBAC) na poziomie aplikacji, może to być kuszące do hostowania wielu obciążeń w jednym planie. Zalecamy jednak hostowanie tylko jednego obciążenia na planie, aby uniknąć problemu z zakłóceniami spowodowanymi przez innych użytkowników. Wszystkie aplikacje w jednym planie usługi App Service współdzielą te same przydzielone zasoby obliczeniowe, pamięć i magazyn.
Podczas rozważania izolacji sprzętowej należy pamiętać, że plany usługi App Service są zwykle uruchamiane w infrastrukturze udostępnionej innym klientom platformy Azure. Możesz wybrać warstwy dedykowane dla dedykowanych maszyn wirtualnych lub warstw izolowanych dla dedykowanych maszyn wirtualnych w dedykowanej sieci wirtualnej.
Ogólnie rzecz biorąc, wszystkie usługi kontenerów platformy Azure mogą hostować wiele aplikacji, które mają wiele składników. Jednak usługi Container Apps i Web App for Containers lepiej nadają się do pojedynczego składnika obciążenia lub wielu składników obciążeń o wysokim stopniu powiązanych, które współużytkują podobny cykl życia, w którym jeden zespół jest właścicielem i uruchamia aplikacje.
Jeśli konieczne jest hostowanie różnych składników aplikacji lub obciążeń na jednym hoście, rozważ użycie usługi AKS.
Kompromis między kontrolą a łatwością użytkowania
Usługa AKS zapewnia największą konfigurowalność, ale ta konfiguracja wymaga większej ilości pracy operacyjnej w porównaniu z innymi usługami. Mimo że usługi Container Apps i Web App for Containers to usługi PaaS, które mają podobne poziomy funkcji zarządzanych przez firmę Microsoft, usługa Web App for Containers podkreśla prostotę zaspokajania odbiorców docelowych: istniejących klientów usługi Azure PaaS, którzy znają interfejs.
Zasada ogólna
Ogólnie rzecz biorąc, usługi, które oferują większą prostotę, mają tendencję do klientów, którzy wolą skupić się na tworzeniu funkcji, a nie zarządzaniu infrastrukturą. Usługi, które oferują większą kontrolę, zwykle odpowiadają klientom, którzy potrzebują większej możliwości konfiguracji i mają umiejętności, zasoby i uzasadnienie biznesowe niezbędne do zarządzania własną infrastrukturą.
Wspólne zagadnienia dotyczące wszystkich obciążeń
Mimo że zespół ds. obciążeń może preferować określony model usług, ten model może nie spełniać wymagań całej organizacji. Na przykład deweloperzy mogą preferować mniej wysiłku operacyjnego, ale zespoły ds. zabezpieczeń mogą rozważyć ten typ nakładu pracy niezbędnego do spełnienia wymagań dotyczących zgodności. Zespoły muszą współpracować, aby uzyskać odpowiednie kompromisy.
Należy pamiętać, że zagadnienia wspólne są szerokie. Tylko podzestaw może być odpowiedni dla Ciebie, w zależności od typu obciążenia, ale także roli w organizacji.
Poniższa tabela zawiera ogólne omówienie zagadnień, w tym porównań funkcji usługi. Zapoznaj się z zagadnieniami w każdej kategorii i porównaj je z wymaganiami obciążenia.
Kategoria | Przegląd |
---|---|
Zagadnienia dotyczące sieci | Sieć w usługach kontenerów platformy Azure różni się w zależności od preferencji dla uproszczenia i możliwości konfiguracji. Usługa AKS jest wysoce konfigurowalna, zapewniając obszerną kontrolę nad przepływem sieci, ale wymaga większego nakładu pracy operacyjnej. Usługa Container Apps oferuje funkcje sieci zarządzane przez platformę Azure. Jest to środek między usługami AKS i Web App for Containers, który jest dostosowany do klientów, którzy znają usługę App Service. Co istotne, decyzje projektowe sieci mogą mieć długoterminowe konsekwencje ze względu na wyzwania związane ze zmianą ich bez ponownego wdrażania obciążeń. Kilka czynników, takich jak planowanie adresów IP, obowiązki związane z równoważeniem obciążenia, metody odnajdywania usług i możliwości sieci prywatnej, różnią się w zależności od tych usług. Należy dokładnie sprawdzić, jak usługi spełniają określone wymagania dotyczące sieci. |
Zagadnienia dotyczące zabezpieczeń | Aplikacje Kontenerowe, AKS i Aplikacje Webowe dla Kontenerów zapewniają integrację z kluczowymi ofertami zabezpieczeń platformy Azure, takimi jak usługa Azure Key Vault i tożsamości zarządzane. Usługa AKS oferuje dodatkowe funkcje, takie jak ochrona środowiska uruchomieniowego przed zagrożeniami i zasady sieci. Chociaż może się wydawać, że usługi PaaS, takie jak Container Apps, oferują mniej funkcji zabezpieczeń, to częściowo dlatego, że więcej podstawowych składników infrastruktury jest zarządzanych przez platformę Azure i nie jest narażonych klientom, co zmniejsza ryzyko. |
zagadnienia dotyczące działania | Usługa AKS oferuje największe możliwości dostosowywania, ale wymaga większych danych wejściowych operacyjnych. Z kolei rozwiązania PaaS, takie jak Container Apps i Web App for Containers, umożliwiają platformie Azure obsługę zadań, takich jak aktualizacje systemu operacyjnego. Skalowalność i elastyczność jednostki SKU sprzętu mają kluczowe znaczenie. Usługa AKS oferuje elastyczne opcje sprzętowe, natomiast usługi Container Apps i Web App for Containers oferują mniej opcji. Skalowalność aplikacji w usłudze AKS jest obowiązkiem klienta, co oznacza, że można zastosować dowolne rozwiązanie zgodne z platformą Kubernetes. Usługa AKS Automatic, Container Apps i Web App for Containers koncentrują się na prostszych podejściach. |
zagadnienia dotyczące niezawodności | Konfiguracje sond kondycji usługi Web App for Containers i Container Apps są ograniczone w porównaniu z usługą AKS, ale prostsze do skonfigurowania, biorąc pod uwagę, że korzystają ze znanego interfejsu API usługi Azure Resource Manager. Usługa AKS wymaga użycia interfejsu API platformy Kubernetes. Wymaga to również podjęcia dodatkowej odpowiedzialności za zarządzanie skalowalnością i dostępnością puli węzłów Kubernetes w celu prawidłowego planowania wystąpień aplikacji. Te wymagania powodują dodatkowy nakład pracy operacyjnej dla usługi AKS. Ponadto SLA dla usługi Container Apps i Web App for Containers są prostsze do obliczenia niż te dla AKS, w których płaszczyzna sterowania i pule węzłów mają swoje własne SLA i muszą być odpowiednio zestawione. Wszystkie usługi oferują redundancję stref w centrach danych, które ją zapewniają. |
Po zapoznaniu się z powyższymi zagadnieniami nadal być może nie znaleziono idealnego dopasowania. To jest całkowicie normalne.
Ocenianie kompromisów
Wybór usługi w chmurze nie jest prostym ćwiczeniem. Biorąc pod uwagę złożoność przetwarzania w chmurze, współpraca między wieloma zespołami i ograniczeniami zasobów obejmującymi ludzi, budżety i czas, każde rozwiązanie ma kompromisy.
Należy pamiętać, że w przypadku danego obciążenia niektóre wymagania mogą być bardziej krytyczne niż inne. Na przykład zespół aplikacji może preferować rozwiązanie PaaS, takie jak Container Apps, ale wybiera usługę AKS, ponieważ ich zespół ds. zabezpieczeń wymaga mechanizmów kontroli sieci stosujących zasadę domyślnego odrzucenia między współlokowanymi komponentami obciążenia. Jest to funkcja dostępna wyłącznie w AKS, która używa zasad sieci Kubernetes.
Na koniec należy pamiętać, że powyższe wspólne zagadnienia obejmują najbardziej typowe wymagania, ale nie są kompleksowe. Zespół ds. obciążeń jest odpowiedzialny za zbadanie każdego wymagania względem zestawu funkcji preferowanej usługi przed potwierdzeniem decyzji.
Konkluzja
W tym przewodniku opisano najczęstsze zagadnienia, które należy wziąć pod uwagę podczas wybierania usługi kontenera platformy Azure. Jest ona przeznaczona do kierowania zespołami roboczymi w podejmowaniu świadomych decyzji. Proces rozpoczyna się od wybrania modelu usługi w chmurze, który obejmuje określenie żądanego poziomu kontroli. Kontrola jest kosztem prostoty. Innymi słowy, jest to proces znajdowania właściwej równowagi między infrastrukturą zarządzaną samodzielnie a infrastrukturą zarządzaną przez firmę Microsoft.
Wiele zespołów obciążeń może wybrać usługę kontenera platformy Azure wyłącznie na podstawie preferowanego modelu usług: PaaS i IaaS. Inne zespoły muszą dokładniej zbadać, w jaki sposób funkcje specyficzne dla usługi spełniają wymagania dotyczące obciążenia lub organizacji.
Wszystkie zespoły ds. obciążeń powinny korzystać z tego przewodnika oprócz włączenia należytej staranności, aby uniknąć trudnych do odwrócenia decyzji. Należy jednak pamiętać, że decyzja nie zostanie potwierdzona, dopóki deweloperzy nie spróbują usługi i zdecydują się na podstawie doświadczenia, a nie teorii.
Współpracownicy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główni autorzy
- Andre Dewes | Starszy inżynier klienta
- Marcos Martinez | Starszy inżynier ds. usług
- Julie Ng | Starszy inżynier
Inni współautorzy:
- Mick Alberts | Autor techniczny
- Martin Gjoszewski | Starszy inżynier klienta
- Don High | Główny inżynier klienta
- Nelly Kiboi | Inżynier usługi
- Xuhong Liu | Starszy inżynier ds. usług
- Faisal Mustafa | Starszy inżynier klienta
- Walter Myers | Główny menedżer inżynierów klienta
- Sonalika Roy | Starszy inżynier klienta
- Paolo Salvatori | Główny inżynier klienta
- Victor Santana | Główny inżynier klienta
Następny krok
Dowiedz się więcej o wspólnych zagadnieniach architektonicznych dla usług wymienionych w tym artykule.