V tomto článku se dozvíte, jak konceptualizovat, navrhovat, sestavovat a nasazovat aplikaci, která po nasazení služby Azure Kubernetes Service (AKS) používá projekty ze služby CLOUD Native Computing Foundation (CNCF). Architektura popisuje aplikaci PROJEKTŮ CNCF na GitHubu. Pokyny k nastavení v úložišti obsahují kroky pro nasazení architektury.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Úloha je jednoduchá webová aplikace, kterou zaměstnanci můžou použít k odesílání a zobrazování sestav výdajů. Když zaměstnanec odešle vyúčtování výdajů, manažer zaměstnance obdrží e-mail.
Workflow
Tok aplikace
1. Zaměstnanec přistupuje k webové aplikaci prostřednictvím příchozího přenosu dat NGINX za účelem odeslání výdajů.
2. Webová aplikace volá aplikaci API, která načte manažera zaměstnance.
3. Webová aplikace odešle zprávu vygenerovanou pro vytvoření sestavy výdajů do zprostředkovatele Knative.
4. Vyúčtování výdajů je uloženo v MySQL.
5. Knative aktivuje funkci Dispečer e-mailu se zprávou výdajů jako datovou částí.
6. E-mailový dispečer vytvoří zprávu SendGrid.
7. SendGrid odešle e-mail načteného manažera ke kontrole.
Tok DevOps
a. Vývojáři píší nebo aktualizují kód v editoru Visual Studio Code.
b. Vývojáři nasdílí kód do GitHubu ze svého místního pracovního prostoru v editoru Visual Studio Code.
c. Webhook GitHubu aktivuje kanály Tekton, které klonuje kód GitHubu.
d. Kanály se sestavují a odsílají a odsílají image kontejnerů do registru Harbor.
e. Tekton nasadí webovou aplikaci, aplikaci API a e-mailové aplikace Dispatcher.
f. Prometheus zaznamenává metriky aplikací.
g. Technici monitorují metriky na řídicím panelu Grafana.
h. Technici DevOps monitorují řídicí panel Grafana.
Infrastruktura
i. Cluster AKS založený na infrastruktuře prezentované ve směrném plánu AKS.
ii. Rook Ceph se používá pro úložiště clusteru.
iii. Síť linkerdových služeb.
iv. Jaeger pro celkové trasování aplikací v clusteru Kubernetes.
Operace clusteru
Možná je užitečné spravovat clustery a spouštění clusterů pomocí správy GitOps. Flux je oblíbený operátor GitOps. Často se spáruje s GitHub Actions a umožňuje ověřování v aktualizovaných manifestech a grafech Helm.
Komponenty
Azure
- Azure Kubernetes Service (AKS) Poskytuje infrastrukturu spravovaného clusteru.
Opensourcový software
- Kubernetes. CNCF. Automatizuje nasazení, škálování a správu kontejnerizovaných aplikací.
- Flux. CNCF. Poskytovatel GitOps pro doručování infrastruktury
- Rook. CNCF. Poskytuje správu úložiště pro clustery.
- Přístav. CNCF. Container Registry pro image.
- Linkerd. CNCF. Síť služeb, která se integruje s OpenFaaS, NGINX, Prometheus a Jaegerem.
- Prometheus. CNCF. Zaznamenává metriky aplikací.
- Jaeger. CNCF. Poskytuje celkové sledování aplikací v clusteru Kubernetes.
- Knative. CNCF. Používá se k vytváření bezserverové aplikace a aplikace řízené událostmi. Nasadí funkci Dispečer e-mailu.
- MySQL. Databáze, která ukládá sestavy výdajů.
- NGINX. Kontroler příchozího přenosu dat Kubernetes, který zaměstnanci používají pro přístup k webové aplikaci, aby mohli odesílat vyúčtování výdajů.
- Tekton. Projekt Continuous Delivery Foundation, který se používá pro kontinuální integraci / průběžné nasazování (CI/CD). Nasadí webovou aplikaci, aplikaci API a e-mailové aplikace Dispatcher.
- Grafana. Řídicí panel pro metriky aplikací
- SendGrid. Externí e-mailová služba, která odesílá e-mail manažeru pro kontrolu vyúčtování výdajů.
- GitHub. Úložiště kódu. Kanály Tekton používají kód GitHubu.
- .NET Core. Používá se pro front-end webu a webové rozhraní API.
- Flux. Poskytuje správu GitOps.
Alternativy
Tento projekt používá CNCF odstupňované a inkubované projekty. Pro použité služby může existovat několik alternativ. Alternativy najdete na webu CNCF . Tady jsou některé zdroje informací, které popisují některé z nich:
- Porovnání možností sítě služeb
- Alternativy funkcí jako služby (bez serveru)
- Virtuální počítače: horizontálně dělené MySQL v Kubernetes
- Monitorování mikroslužeb pomocí Zipkinu a OpenTracingu
- GitOps s prostředím orientovaným na vývojáře
Různé služby Azure můžete považovat za alternativy. Například směrování webových aplikací, Azure Container Registry, Azure Container Storage, Azure Monitor, spravovaná služba Azure Monitor pro Prometheus, Azure Managed Grafana.
Microsoft také podporuje opensourcové softwarové projekty jako spravované doplňky nebo odvozené projekty v AKS, včetně NGINX, Istio, Prometheus, Grafana a OpenEBS.
Podrobnosti scénáře
Tuto architekturu můžete nasadit v jakémkoli clusteru Kubernetes, nejen v AKS. Poskytuje jeden příklad flexibility platformy AKS. AKS usnadňuje nasazení spravovaného clusteru Kubernetes v Azure.
Jakmile si projdete tento článek, budete mít dobrý přehled o tom, jak nasadit typickou aplikaci, která se skládá převážně z projektů CNCF.
Potenciální případy použití
Podobné vzory návrhu mají tyto další případy použití:
- Vytvoření kanálu CI/CD pro úlohy založené na kontejnerech
- Použití GitOps pro AKS
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.
- Pro cluster Kubernetes potřebujete alespoň fond 3 uzlů uživatelského uzlu s skladovou položku virtuálního počítače DS2_v2 nebo větší.
- Svazky, které používají spravované disky Azure, se nedají připojit napříč zónami. Musí být umístěny ve stejné zóně.
- Instalace rooku může trvat 20 až 25 minut. Než přejdete k dalšímu kroku, ujistěte se, že je cluster Ceph zcela zřízený.
- Nastavení Jaegeru trvá asi 5 minut.
- Zobrazení linkerdu na řídicím panelu trvá přibližně 12 minut.
Optimalizace nákladů
Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.
K odhadu nákladů můžete použít cenovou kalkulačku Azure. Následuje několik důležitých informací o cenách pro spuštění tohoto projektu v Azure. Platí zanedbatelné náklady na šířku pásma.
Virtual Machine Scale Sets
Za virtuální počítače, které se používají ve službě Azure Virtual Machine Scale Sets pro cluster AKS, se účtují poplatky. Další informace najdete v tématu Ceny služby Virtual Machine Scale Sets.
Úložiště
Náklady na úložiště se vztahují na každý datový disk, který vyžaduje instalace Rook. Pro tento cluster AKS se 3 uzly používá konfigurace Rook na jeden uzel dva datové disky: 1 GB disku a 200 GB disku. Další informace najdete v tématu Ceny za úložiště.
Load Balancer
Nástroj pro vyrovnávání zatížení, který je přidružený k tomuto clusteru AKS, se účtuje poplatek. Další informace najdete v tématu o cenách Load Balanceru.
Virtuální síť
Za virtuální síť, kterou cluster AKS používá, se účtuje poplatek. Další informace najdete v tématu Ceny služby Virtual Network.
Nasazení tohoto scénáře
Nasaďte tento scénář z úložiště GitHubu azure /nativní pro cloudovou aplikaci . Postupujte podle pokynů k nastavení v zadané sekvenci a nasaďte aplikaci CNCF Projects App ve vašem prostředí.
Toto úložiště je komunitní projekt. Přijímá a schvaluje žádosti o přijetí změn pro vylepšení a úpravy od komunity.