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ń.
Uwaga
W tym przewodniku termin obciążenie 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ą współużytkowane we wszystkich typach obciążeń.
Uwaga
Jeśli nie masz jeszcze zatwierdzenia do konteneryzacji, zobacz Wybieranie usługi obliczeniowej platformy Azure, aby uzyskać informacje o innych opcjach obliczeniowych, których można użyć do hostowania obciążenia.
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ążeń 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, w oparciu o wymagania techniczne, rozmiar i złożoność obciążenia oraz wiedzę zespołu obciążenia.
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 aplikacji oparta na platformie Kubernetes, która ułatwia wdrażanie aplikacji HTTP i innych niż HTTP z kodu lub kontenerów bez organizowania infrastruktury. Aby uzyskać więcej informacji, zobacz dokumentację usługi Azure Container Apps.
Usługa Azure Kubernetes Service (AKS) to zarządzana usługa Kubernetes służąca 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 przy zachowaniu najszerszego poziomu możliwości konfiguracji. Aby uzyskać więcej informacji, zobacz dokumentację usługi AKS.
Web App for Containers to funkcja usługi aplikacja systemu Azure 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 usługa AKS priorytetowo kontroluje prostotę. 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 interfejsu API Kubernetes, który umożliwia dostosowywanie aranżacji kontenerów, a tym samym wdrażanie projektów z poziomu natywnej struktury przetwarzania w chmurze (CNCF). W związku z tym istnieje znacząca krzywa szkoleniowa dla zespołów obciążeń, które są nowe dla platformy Kubernetes. Jeśli dopiero zaczynasz korzystać z rozwiązań konteneryzowanych, ta krzywa uczenia może być odstraszająca. Następujące rozwiązania PaaS oferują niższą barierę wejścia. Możesz przejść do platformy Kubernetes, gdy wymagania dyktują ten ruch.
Azure Container Apps
Container Apps, oferta PaaS, równoważy kontrolę z prostotą. Oferuje zarówno opcje obliczeniowe bezserwerowe, jak i dedykowane, które oddzielają konieczność stosowania poprawek systemu operacyjnego lub tworzenia barier zabezpieczających wokół aplikacji w stosunku do systemu operacyjnego. Usługa Container Apps całkowicie abstrahuje również od interfejsu API orkiestracji kontenerów i udostępnia podzbiór jego kluczowych funkcji za pośrednictwem interfejsów API platformy Azure, które twój zespół może już zaznajomić. Ponadto ruch przychodzący warstwy 7, podział ruchu, testowanie A/B i zarządzanie cyklem życia aplikacji są w pełni dostępne.
Web App for Containers
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ługa AKS jest często używana do hostowania wielu obciążeń lub różnych składnikó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 i funkcji zarządzanych przez platformę Azure, takich jak automatyczne uaktualnianie klastra, aby zmniejszyć nakład pracy operacyjnej.
Usługa Container Apps powinna służyć do hostowania pojedynczego obciążenia z udostępnioną granicą zabezpieczeń. Usługa Container Apps ma jedną granicę logiczną najwyższego poziomu o nazwie środowisko usługi Container Apps, które 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 do granicy rozliczeń nazywanej 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 pojedynczego obciążenia na plan, aby uniknąć problemu z hałaśliwym sąsiadem. 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 wiąże się z kosztem zwiększonego nakładu 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.
Reguła kciuka
Ogólnie rzecz biorąc, usługi, które oferują większą prostotę, mają tendencję do klientów, którzy wolą skupić się bardziej na tworzeniu funkcji i mniej na infrastrukturze. 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ć mniejsze nakłady pracy operacyjnej, ale zespoły ds. zabezpieczeń mogą rozważyć ten typ obciążenia 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 | Omówienie |
---|---|
Zagadnienia dotyczące pracy w 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 związane z zabezpieczeniami | Kontenery Apps, AKS i Web App for Containers 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 operacyjne | Mimo że usługa AKS oferuje największe możliwości dostosowywania, 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ługa Container Apps i Web App for Containers zapewniają konfiguracje zestawów. Skalowalność aplikacji w usłudze AKS jest wyłączną odpowiedzialnością klienta. Usługi Container Apps i Web App for Containers oferują bardziej usprawnione podejścia. |
Zagadnienia dotyczące niezawodności | Konfiguracje sond kondycji usługi Web App for Containers i Container Apps są bardziej usprawnione niż te z usługi AKS, biorąc pod uwagę, że używają 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ą dodatkowe koszty związane z usługą AKS. Ponadto umowy SLA dla usługi Container Apps i Web App for Containers są prostsze niż umowy AKS, dla których każda płaszczyzna sterowania i pule węzłów mają własne umowy SLA i muszą być odpowiednio złożone. Wszystkie usługi oferują nadmiarowość stref w centrach danych, które go oferują. |
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 wybierz usługę AKS, ponieważ ich zespół ds. zabezpieczeń wymaga domyślnych mechanizmów kontroli sieci między współlokowanym składnikiem obciążenia, który jest funkcją tylko usługi AKS, która korzysta z zasad sieci platformy 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.
Podsumowanie
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 obciążeń 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ółautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Autorzy zabezpieczeń:
- Andre Dewes | Starszy inżynier klienta
- Marcos Martinez | Starszy inżynier ds. usług
- Julie Ng | Starszy inżynier
Inni współautorzy:
- Mick Alberts | Składnik zapisywania technicznego
- 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 udostępnionych zagadnieniach dotyczących architektury dla usług wymienionych w tym artykule.