Volba výpočetní možnosti Azure pro mikroslužby
Pojem výpočetní prostředí odkazuje na model hostingu pro výpočetní prostředky, na kterých se bude vaše aplikace spouštět. Tento článek obsahuje preskriptivní pokyny, které vám pomůžou zvolit výpočetní platformu pro mikroslužby. Výběr výpočetní platformy mikroslužeb může záviset na podrobnějších požadavcích.
Pro architekturu mikroslužeb jsou oblíbené následující přístupy:
- Nasaďte mikroslužby na vyhrazené výpočetní platformy, obvykle pomocí orchestrátoru mikroslužeb.
- Nasaďte mikroslužby na bezserverovou platformu.
I když tyto možnosti nejsou jediné, jsou to oba osvědčené přístupy k vytváření mikroslužeb. Aplikace může zahrnovat oba přístupy.
Stáhněte si soubor aplikace Visio s touto architekturou.
Použití bezserverové platformy
K nasazení mikroslužeb v Azure Container Apps nebo Azure Functions můžete použít bezserverové platformy. Kontejnerové aplikace i funkce poskytují bezserverové výpočetní možnosti, které se účtují na základě objemu požadavků, a nikoli na spotřebě výpočetních prostředků. Obě platformy také poskytují možnost hostovat úlohy ve vyhrazené kapacitě.
Nasazení mikroslužeb založených na kódu
Pokud chcete mikroslužby nasadit jako kód místo jejich kontejnerizace, můžete použít Azure Functions. Další informace najdete v seznamu programovacích a skriptovacích jazyků podporovaných funkcí. U mikroslužeb, které vyvíjíte v jiných jazycích, můžete chtít implementovat vlastní obslužnou rutinu ve službě Functions nebo zvážit kontejnerizaci aplikace.
Použití modelu GPU
Pokud vaše mikroslužba vyžaduje kapacitu GPU, například ke spouštění úloh strojového učení, zvažte volbu služby Container Apps nebo Azure Kubernetes Service (AKS) pro vaši platformu. AKS může používat libovolné modely GPU v Azure a Container Apps nabízí podmnožinu modelů GPU, ze které si můžete vybrat.
Použití orchestrátorů služeb
Orchestrátor zpracovává úlohy související s nasazením a správou sady služeb. Mezi tyto úlohy patří umístění služeb na uzly, monitorování stavu služeb, restartování služeb, vyrovnávání zatížení síťového provozu mezi instancemi služby, zjišťování služeb, škálování počtu instancí služby a použití aktualizací konfigurace. Mezi oblíbené orchestrátory patří Kubernetes, Azure Service Fabric, DC/OS a Docker Swarm.
Na platformě Azure zvažte následující možnosti:
Azure Kubernetes Service (AKS) je spravovaná služba prostředí Kubernetes. AKS zřizuje Kubernetes a zveřejňuje koncové body rozhraní Kubernetes API, hostitele a spravuje řídicí rovinu Kubernetes a provádí automatizované upgrady, automatizované opravy, automatické škálování a další úlohy správy. AKS poskytuje přímý přístup k rozhraním API Kubernetes.
Container Apps je spravovaná služba založená na Kubernetes, která abstrahuje složitost orchestrace kontejnerů a dalších úloh správy. Container Apps zjednodušuje nasazení a správu kontejnerizovaných aplikací a mikroslužeb v bezserverovém prostředí a současně poskytuje funkce Kubernetes. Container Apps je ideální pro scénáře, kdy se nevyžaduje přímý přístup k rozhraním API Kubernetes.
Service Fabric je platforma distribuovaných systémů pro balení, nasazování a správu mikroslužeb. Mikroslužby můžete nasadit do Service Fabric jako kontejnery, jako binární spustitelné soubory nebo jako Reliable Services. Pomocí programovacího modelu Reliable Services můžou služby přímo používat programovací rozhraní API Service Fabric k dotazování systému, hlášení stavu, přijímání oznámení o změnách konfigurace a kódu a zjišťování dalších služeb.
Pomocí Azure Red Hat OpenShiftu nasaďte plně spravované clustery OpenShift. Azure Red Hat OpenShift rozšiřuje Kubernetes. Azure Red Hat OpenShift je společně navržený, provozovaný a podporovaný společností Red Hat a Microsoftem.
Další možnosti, jako je docker edice Enterprise, se můžou spouštět v prostředí cloud computingu v Azure. Šablony nasazení najdete na Azure Marketplace.
Použití rozhraní API Kubernetes
Přístup k rozhraním API Kubernetes je často rozhodujícím faktorem při výběru výpočetní možnosti. AKS poskytuje přímý přístup k rozhraním API Kubernetes, ale container Apps ne. Container Apps skryje složitost Kubernetes a zjednodušuje prostředí nasazení kontejnerů. Pokud navrhujete nasazení mikroslužeb tak, aby přímo pracovalo s rozhraními API Kubernetes, může být AKS správnou volbou.
Další rozhodovací faktory
Výběr výpočetní platformy mikroslužeb může mít vliv na další faktory. Mezi tyto faktory patří možnosti sítě služeb, škálovatelnost platformy a sady dovedností, které můžete použít v rámci organizace.
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro spolehlivost.
Jedním z klíčových pilířů spolehlivosti je odolnost. Cílem odolnosti je vrátit úlohu do plně funkčního stavu po selhání.
Pokud jako výpočetní platformu mikroslužeb zvolíte Azure Functions, zvažte nasazení plánu Functions Premium nebo plánu služby Aplikace Azure v zónově redundantní konfiguraci. Další informace naleznete v tématu Spolehlivost ve službě Functions.
Pokud jako výpočetní platformu mikroslužeb zvolíte AKS, můžete zvýšit spolehlivost mikroslužeb nasazením clusteru AKS, který používá zóny dostupnosti, pomocí úrovně Standard nebo Premium pro clustery Azure Kubernetes a zvýšením minimálního počtu podů a uzlů. Další informace najdete v tématu Osvědčené postupy pro nasazení a spolehlivost clusteru pro AKS.
Pokud jako výpočetní platformu mikroslužeb zvolíte Container Apps, můžete zvýšit spolehlivost pomocí zón dostupnosti. Další informace najdete v tématu Spolehlivost v kontejnerových aplikacích.
Zabezpečení
Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v kontrolním seznamu pro kontrolu návrhu zabezpečení.
Pokud jako výpočetní platformu pro nasazení mikroslužeb zvolíte Azure Functions, použijí se také principy zabezpečení azure Functions na mikroslužby.
Pokud jako výpočetní platformu zvolíte AKS pro nasazení mikroslužeb, architektura standardních hodnot zabezpečení AKS poskytuje pokyny pro zabezpečení výpočetní platformy. Osvědčené postupy zabezpečení mikroslužeb v AKS najdete v tématu Architektura mikroslužeb Advanced AKS.
Pokud jako výpočetní platformu pro nasazení mikroslužeb zvolíte Container Apps, prohlédněte si standardní hodnoty zabezpečení pro Container Apps a osvědčené postupy zabezpečení.
Optimalizace nákladů
Optimalizacenákladůch Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro optimalizaci nákladů.
Při použití orchestrátoru platíte za virtuální počítače, které běží v clusteru. Když používáte bezserverovou aplikaci, platíte jenom za skutečné výpočetní prostředky, které využíváte. V obou případech potřebujete zohlátit náklady na všechny další služby, jako jsou úložiště, databáze a služby zasílání zpráv.
Azure Functions, Container Apps a AKS poskytují možnosti automatického škálování. Container Apps a Functions poskytují bezserverové platformy, kde jsou náklady založené na spotřebě a můžou být nulové. AKS poskytuje pouze vyhrazené výpočetní možnosti.
Pokud jako výpočetní platformu zvolíte AKS pro nasazení mikroslužeb, musíte porozumět osvědčeným postupům optimalizace nákladů. Další informace najdete v tématu Optimalizace nákladů ve službě Azure Kubernetes Service.
Pokud jako výpočetní platformu mikroslužeb zvolíte Container Apps, musíte porozumět různým fakturačním modelům a rozhodnout se o modelu nasazení pro mikroslužby na základě vašich požadavků na úlohy. Další informace najdete v tématu Fakturace v kontejnerových aplikacích.
Pokud jako výpočetní platformu mikroslužeb zvolíte Azure Functions, musíte porozumět různým fakturačním modelům a rozhodnout se o plánu Functions na základě vašich požadavků na úlohy. Další informace najdete v tématu Odhad nákladů na základě spotřeby a podrobností plánu Azure Functions.
Efektivita provozu
Efektivita provozu se zabývá provozními procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro efektivitu provozu.
Všechny výpočetní možnosti mikroslužeb, které tento článek popisuje automatizovaným způsobem, můžete nasadit pomocí Terraformu, Bicep a dalších skriptovacího jazyka. K monitorování těchto výpočetních platforem a mikroslužeb můžete použít Application Insights, Azure Monitor a další řešení monitorování.
Při výběru mezi přístupem orchestrátoru a bezserverovým přístupem zvažte následující faktory:
Flexibilita a řízení: Orchestrátor vám dává kontrolu nad konfigurací a správou služeb a clusteru. Kompromis je složitější. Díky bezserverové architektuře se vzdáte určitého stupně kontroly, protože tyto podrobnosti jsou abstrahovány.
Přenositelnost: Všechny orchestrátory uvedené v tomto článku, včetně Kubernetes, DC/OS, Docker Swarm a Service Fabric, můžou spouštět místně nebo v několika veřejných cloudech.
Integrace aplikací: Sestavení složité aplikace využívající bezserverovou architekturu může být náročné, protože potřebujete koordinovat, nasazovat a spravovat mnoho malých nezávislých funkcí. Jednou z možností v Azure je použití Azure Logic Apps ke koordinaci sady funkcí Azure. Příklad tohoto přístupu najdete v tématu Vytvoření funkce, která se integruje s Logic Apps.