Volba služby kontejneru Azure

Azure nabízí celou řadu služeb hostování kontejnerů, které jsou navržené tak, aby vyhovovaly různým úlohám, architekturám a obchodním požadavkům. Tento průvodce výběrem služby kontejneru vám pomůže pochopit, která služba kontejneru Azure je pro vaše scénáře a požadavky nejvhodnější.

Poznámka:

V této příručce termín úloha odkazuje na kolekci prostředků aplikace, které podporují obchodní cíl nebo provádění obchodního procesu. Úloha používá více služeb, jako jsou rozhraní API a úložiště dat, které spolupracují na poskytování konkrétních komplexních funkcí.

Jak používat tohoto průvodce

Tato příručka obsahuje dva články: tento úvodní článek a další článek o aspektech sdílených napříč všemi typy úloh.

Poznámka:

Pokud ještě nejste potvrzeni do kontejnerizace, přečtěte si téma Volba výpočetní služby Azure, kde najdete informace o dalších možnostech výpočetních prostředků, které můžete použít k hostování úloh.

Tento úvodní článek popisuje služby kontejnerů Azure, které jsou v oboru pro tuto příručku a jak se modely služeb porovnávají z hlediska kompromisů mezi konfigurovatelností a názorným řešením, jako jsou přístupy spravované zákazníkem a spravovanými Microsoftem. Jakmile identifikujete kandidátské služby na základě předvoleb modelu služeb, dalším krokem je vyhodnotit možnosti s vašimi požadavky na úlohy tím, že si prohlédnete článek o sdílených aspektech sítí, zabezpečení, provozu a spolehlivosti.

Tato příručka bere v úvahu kompromisy, které možná budete muset provést na základě technických požadavků, velikosti a složitosti vašich úloh a odborných znalostí týmu vaší úlohy.

Služby kontejneru Azure v oboru pro tuto příručku

Tato příručka se zaměřuje na podmnožinu služeb kontejneru, které Azure aktuálně nabízí. Tato podmnožina poskytuje vyspělou sadu funkcí pro webové aplikace a rozhraní API, sítě, pozorovatelnost, vývojářské nástroje a operace. Tyto služby kontejneru se porovnávají:

Logo Container Apps

Azure Container Apps je plně spravovaná aplikační platforma založená na Kubernetes, která pomáhá nasazovat aplikace HTTP a jiné než HTTP z kódu nebo kontejnerů bez orchestrace infrastruktury. Další informace najdete v dokumentaci ke službě Azure Container Apps.

Logo AKS

Azure Kubernetes Service (AKS) je spravovaná služba Kubernetes pro spouštění kontejnerizovaných aplikací. S AKS můžete využívat spravované doplňky a rozšíření pro další možnosti a současně zachovat nejširší úroveň konfigurovatelnosti. Další informace najdete v dokumentaci k AKS.

Logo služby App Service

Web App for Containers je funkce služby Aplikace Azure Service, plně spravované služby pro hostování webových aplikací založených na PROTOKOLU HTTP s integrovanou údržbou infrastruktury, opravami zabezpečení, škálováním a diagnostickými nástroji. Další informace najdete v dokumentaci ke službě App Service.

Úplný seznam všech služeb kontejneru Azure najdete na stránce kategorie produktů kontejnerových služeb.

Důležité informace o modelu služby

Model služby poskytuje nejširší přehled o úrovni flexibility a řízení, které poskytuje jakákoli služba kontejneru Azure, a to výměnou za celkovou jednoduchost a snadné použití.

Obecný úvod do terminologie a konceptů modelů služeb, včetně infrastruktury jako služby (IaaS) a platformy jako služby (PaaS), najdete v tématu Sdílená odpovědnost v cloudu.

Porovnání modelů služeb řešení kontejnerů Azure

AKS

Jako hybridní model IaaS a PaaS upřednostňuje AKS kontrolu nad jednoduchostí. I když AKS zjednodušuje správu základní základní infrastruktury, tato platforma založená na virtuálních počítačích je stále vystavená vašim aplikacím a vyžaduje odpovídající mantinely a procesy, jako jsou opravy, k zajištění zabezpečení a kontinuity podnikových procesů. Výpočetní infrastrukturu podporují další prostředky Azure hostované přímo ve vašem předplatném, jako jsou nástroje pro vyrovnávání zatížení Azure.

AKS také poskytuje přístup k serveru rozhraní API Kubernetes, který umožňuje přizpůsobit orchestraci kontejnerů a tak nasazovat projekty ze služby Cloud Native Computing Foundation (CNCF). V důsledku toho existuje významná křivka učení pro týmy úloh, které jsou pro Kubernetes nové. Pokud s kontejnerizovanými řešeními začínáte, může být tato křivka učení odstrašující. Následující řešení PaaS nabízejí nižší bariéru pro vstup. Přechod na Kubernetes můžete provést, když vaše požadavky na tento přesun určují.

Azure Container Apps

Container Apps, nabídka PaaS, vyrovnává kontrolu jednoduchosti. Nabízí bezserverové i vyhrazené výpočetní možnosti, které abstrahují potřebu opravovat operační systém nebo vytvářet mantinely týkající se aplikací vzhledem k operačnímu systému. Container Apps také zcela abstrahuje rozhraní API pro orchestraci kontejnerů a poskytuje podmnožinu jeho klíčových funkcí prostřednictvím rozhraní API Azure, se kterými už váš tým může být obeznámený. Kromě toho jsou všechny příchozí přenosy dat vrstvy 7, rozdělení provozu, testování A/B a správa životního cyklu aplikací plně dostupné.

Web App for Containers

Web App for Containers je také nabídka PaaS, ale poskytuje větší jednoduchost a menší kontrolu než Container Apps. Abstrahuje orchestraci kontejnerů, ale stále poskytuje vhodné škálování, správu životního cyklu aplikací, rozdělení provozu, integraci sítě a pozorovatelnost.

Aspekty modelu hostování

Prostředky Azure, jako jsou clustery AKS, můžete použít k hostování více úloh. Díky tomu můžete zjednodušit provoz a snížit celkové náklady. Pokud zvolíte tuto cestu, tady je několik důležitých aspektů:

  • AKS se běžně používá k hostování více úloh nebo různorodých komponent úloh. Tyto úlohy a komponenty můžete izolovat pomocí nativních funkcí Kubernetes, jako jsou obory názvů, řízení přístupu a síťové řízení, aby splňovaly požadavky na zabezpečení.

    AKS můžete použít také ve scénářích s jednou úlohou, pokud potřebujete další funkce, které poskytuje rozhraní Kubernetes API a váš tým úloh má dostatek zkušeností pro provoz clusteru Kubernetes. Týmy s menším využitím prostředí Kubernetes můžou i nadále úspěšně provozovat vlastní clustery tím, že využívají výhod doplňků a funkcí spravovaných v Azure, jako je automatický upgrade clusteru, aby se snížily provozní režie.

  • KontejnerOvé aplikace by se měly používat k hostování jedné úlohy se sdílenou hranicí zabezpečení. Container Apps má jednu logickou hranici nejvyšší úrovně označovanou jako prostředí Container Apps, které slouží také jako rozšířená hranice zabezpečení. Neexistují žádné mechanismy pro další podrobné řízení přístupu. Komunikace uvnitř prostředí je například neomezená a všechny aplikace sdílejí jeden pracovní prostor služby Log Analytics.

    Pokud má úloha více komponent a více hranic zabezpečení, nasaďte několik prostředí Container Apps nebo zvažte AKS.

  • Web App for Containers je funkce služby App Service. App Service seskupuje aplikace do fakturační hranice označované jako plán služby App Service. Vzhledem k tomu, že můžete nastavit obor řízení přístupu na základě role (RBAC) na úrovni aplikace, může být lákavé hostovat více úloh v jednom plánu. Doporučujeme ale hostovat jednu úlohu pro každý plán, abyste se vyhnuli problému s hlučným sousedem. Všechny aplikace v jednom plánu služby App Service sdílejí stejné přidělené výpočetní prostředky, paměť a úložiště.

    Při zvažování izolace hardwaru je potřeba mít na paměti, že plány služby App Service obecně běží na infrastruktuře, která je sdílená s ostatními zákazníky Azure. Pro vyhrazené virtuální počítače nebo izolované vrstvy pro vyhrazené virtuální počítače ve vyhrazené virtuální síti můžete zvolit vyhrazené úrovně.

Obecně platí, že všechny služby kontejnerů Azure můžou hostovat více aplikací, které mají více komponent. Container Apps a Web App for Containers jsou ale vhodnější pro komponentu s jednou úlohou nebo několik vysoce souvisejících komponent úloh, které sdílejí podobný životní cyklus, kde jeden tým vlastní a spouští aplikace.

Pokud potřebujete hostovat různorodé, potenciálně nesouvisející komponenty aplikací nebo úlohy na jednom hostiteli, zvažte AKS.

Kompromis mezi kontrolou a snadným používáním

AKS poskytuje největší konfigurovatelnost, ale tato konfigurovatelnost má náklady na vyšší provozní režii ve srovnání s ostatními službami. I když container Apps i Web App for Containers jsou služby PaaS, které mají podobné úrovně funkcí spravovaných Microsoftem, služba Web App for Containers zdůrazňuje jednoduchost, aby vyhovovala cílové cílové skupině: stávající zákazníci Azure PaaS, kteří rozhraní znají.

Empirické pravidlo

Obecně platí, že služby, které nabízejí větší jednoduchost, mají tendenci vyhovovat zákazníkům, kteří se raději více zaměřují na vývoj funkcí a méně na infrastrukturu. Služby, které nabízejí větší kontrolu, mají tendenci vyhovovat zákazníkům, kteří potřebují větší konfigurovatelnost a mají dovednosti, prostředky a obchodní odůvodnění potřebné ke správě vlastní infrastruktury.

Sdílené aspekty napříč všemi úlohami

I když tým úloh může preferovat konkrétní model služby, nemusí tento model splňovat požadavky organizace jako celku. Vývojáři můžou například preferovat menší provozní režii, ale týmy zabezpečení můžou zvážit tento typ režie potřebné ke splnění požadavků na dodržování předpisů. Týmy musí spolupracovat, aby byly vhodné kompromisy.

Mějte na paměti, že sdílené aspekty jsou široké. V závislosti na typu úlohy, ale i na vaší roli v organizaci, může být pro vás relevantní jenom podmnožina.

Následující tabulka obsahuje základní přehled aspektů, včetně porovnání funkcí služeb. Projděte si důležité informace v jednotlivých kategoriích a porovnejte je s požadavky vaší úlohy.

Kategorie Přehled
Aspekty sítí Sítě v kontejnerových službách Azure se liší v závislosti na vašich preferencích pro jednoduchost a konfigurovatelnost. AKS je vysoce konfigurovatelná a poskytuje rozsáhlou kontrolu nad tokem sítě, ale vyžaduje větší provozní úsilí. Container Apps nabízí síťové funkce spravované v Azure. Jedná se o střední úroveň mezi AKS a Web App for Containers, která je přizpůsobená zákazníkům, kteří jsou obeznámeni se službou App Service.

Zásadní je, že rozhodnutí o návrhu sítě můžou mít dlouhodobé důsledky z důvodu výzev, které je mění, aniž by se znovu nasazovaly úlohy. Mezi těmito službami se liší několik faktorů, jako je plánování IP adres, vyrovnávání zatížení, metody zjišťování služeb a možnosti privátní sítě. Měli byste pečlivě zkontrolovat, jak služby splňují konkrétní požadavky na síť.
Aspekty zabezpečení Kontejner Apps, AKS a Web App for Containers poskytují integraci s klíčovými nabídkami zabezpečení Azure, jako je Azure Key Vault a spravované identity. AKS nabízí další funkce, jako je ochrana před internetovými útoky za běhu a zásady sítě. I když se může zdát, že služby PaaS, jako je Container Apps, nabízejí méně funkcí zabezpečení, je to částečně kvůli tomu, že azure spravuje více základních komponent infrastruktury, a ne vystavené zákazníkům, což snižuje riziko.
Důležité informace o provozu I když AKS nabízí nejvíce přizpůsobení, vyžaduje větší provozní vstup. Naproti tomu řešení PaaS, jako jsou Container Apps a Web App for Containers, umožňují Azure zpracovávat úlohy, jako jsou aktualizace operačního systému. Flexibilita škálovatelnosti a hardwarové skladové položky jsou zásadní. AKS poskytuje flexibilní možnosti hardwaru, zatímco Container Apps a Web App for Containers poskytují nastavené konfigurace. Škálovatelnost aplikací v AKS je výhradní odpovědností zákazníka. Container Apps a Web App for Containers nabízejí efektivnější přístupy.
Důležité informace o spolehlivosti Konfigurace sond stavu služby Web App for Containers a Container Apps jsou efektivnější než konfigurace služby AKS, protože používají známé rozhraní API Azure Resource Manageru. AKS vyžaduje použití rozhraní Kubernetes API. Vyžaduje také, abyste se postarali o další zodpovědnost za správu škálovatelnosti a dostupnosti fondu uzlů Kubernetes, abyste mohli správně naplánovat instance aplikací. Tyto požadavky mají za následek další režii pro AKS.

Kromě toho jsou smlouvy SLA pro Container Apps a Web App for Containers jednodušší než smlouvy AKS, pro které řídicí rovina a fondy uzlů mají vlastní smlouvy SLA a musí být odpovídajícím způsobem složené. Všechny služby nabízejí zónovou redundanci v datacentrech, která ji nabízejí.

Po prostudování předchozích aspektů jste stále nenašli perfektní fit. To je naprosto normální.

Vyhodnocení kompromisů

Volba cloudové služby není jednoduché cvičení. Vzhledem ke složitosti cloud computingu má každé řešení kompromisy mezi mnoha týmy a omezeními prostředků zahrnujícími lidi, rozpočty a čas.

Mějte na paměti, že u každé úlohy můžou být některé požadavky důležitější než jiné. Například aplikační tým může preferovat řešení PaaS, jako je Container Apps, ale zvolit AKS, protože jejich bezpečnostní tým vyžaduje ve výchozím nastavení řízení sítě mezi komponentami společně přidělených úloh, což je funkce jen AKS, která používá síťové zásady Kubernetes.

Nakonec mějte na paměti, že předchozí sdílené aspekty zahrnují nejběžnější požadavky, ale nejsou vyčerpávající. Je zodpovědností týmu úloh, aby před potvrzením rozhodnutí prošetřil všechny požadavky na sadu funkcí preferované služby.

Závěr

Tato příručka popisuje nejčastější aspekty, kterým čelíte při výběru služby kontejneru Azure. Je navržený tak, aby vedl týmy úloh při rozhodování o informovaných rozhodnutích. Proces začíná výběrem modelu cloudové služby, který zahrnuje určení požadované úrovně řízení. Kontrola přichází na úkor jednoduchosti. Jinými slovy, jedná se o proces nalezení správné rovnováhy mezi infrastrukturou spravovanou samospravou a infrastrukturou spravovanou Microsoftem.

Mnoho týmů úloh si může vybrat službu kontejneru Azure výhradně na základě preferovaného modelu služby: PaaS a IaaS. Ostatní týmy musí dále prozkoumat, jak funkce specifické pro služby řeší požadavky na úlohy nebo organizace.

Všechny týmy úloh by měly tuto příručku používat spolu s začleněním důkladné péče, aby se zabránilo obtížnému obrácenému rozhodování. Mějte však na paměti, že rozhodnutí není potvrzeno, dokud vývojáři nepokusí službu a rozhodnou se na základě zkušeností, nikoli teorie.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Další přispěvatelé:

Další krok

Přečtěte si další informace o aspektech sdílené architektury pro služby uvedené v tomto článku.