Postupy vytváření softwaru pro trvalou udržitelnost ve službě Azure Kubernetes Service (AKS)
Principy vytváření softwaru pro trvalou udržitelnost jsou sadou kompetencí, které vám pomůžou definovat, sestavovat a spouštět udržitelné aplikace. Celkovým cílem je snížit uhlíkovou stopu v každém aspektu vaší aplikace. Pokyny k architektuře Azure pro udržitelnost odpovídají zásadám udržitelného softwarového inženýrství ze zeleného softwarového základu a poskytují přehled principů udržitelného softwarového inženýrství.
Vytváření softwaru pro trvalou udržitelnost je posun v prioritách a zaměření. V mnoha případech je způsob, jakým je většina softwaru navržena a spuštěna, zvýrazňuje rychlý výkon a nízkou latenci. Vytváření softwaru pro trvalou udržitelnost se zaměřuje na co největší snížení emisí uhlíku.
- Použití principů vytváření softwaru pro trvalou udržitelnost vám může poskytnout rychlejší výkon nebo nižší latenci, například snížení celkového počtu síťových procházení.
- Snížení emisí uhlíku může způsobit pomalejší výkon nebo vyšší latenci, například zpoždění úloh s nízkou prioritou.
Následující doprovodné materiály se zaměřují na služby, které vytváříte nebo provozujete v Azure se službou Azure Kubernetes Service (AKS). Tento článek obsahuje kontrolní seznamy pro návrh a konfiguraci, doporučené postupy návrhu a možnosti konfigurace. Před použitím principů vytváření softwaru pro trvalou udržitelnost pro vaši aplikaci zkontrolujte priority, potřeby a kompromisy vaší aplikace.
Požadavky
- Porozumění pokynům pro udržitelnost dobře architektuře architektury vám pomůže vytvořit vysoce kvalitní, stabilní a efektivní cloudovou architekturu. Doporučujeme začít tím, že si přečtete další informace o udržitelných úlohách a zkontrolujete své úlohy pomocí posouzení dobře navržená architektura Microsoft Azure.
- Při vytváření aplikací je velmi důležité jasně definovat obchodní požadavky, protože mohou mít přímý dopad na architektury a konfigurace clusteru i úloh. Při sestavování nebo aktualizaci stávajících aplikací si projděte oblasti návrhu udržitelnosti dobře navržená architektem a uceleným životním cyklem vaší aplikace.
Principy modelu sdílené odpovědnosti
Udržitelnost je sdílená odpovědnost mezi poskytovatelem cloudu a zákazníkem nebo partnerem, který navrhuje a nasazuje clustery AKS na platformě. Nasazení AKS automaticky nezpůsobí trvalou udržitelnost, i když jsou datová centra optimalizovaná pro udržitelnost. Aplikace, které nejsou správně optimalizované, můžou stále generovat více uhlíku, než je nutné.
Přečtěte si další informace o modelu sdílené odpovědnosti pro udržitelnost.
Zásady návrhu
Uhlíková účinnost: Vygenerujte co nejmenší množství uhlíku.
Uhlíkově efektivní cloudová aplikace je aplikace, která je optimalizovaná, a výchozím bodem je optimalizace nákladů.
Energetická účinnost: Používejte co nejmenší množství energie.
Jedním ze způsobů, jak zvýšit energetickou účinnost, je spustit aplikaci na co nejvíce serverech se servery, které běží s nejvyšší mírou využití, a také zvýšit efektivitu hardwaru.
Efektivita hardwaru: Používejte co nejmenší množství vtěleného uhlíku.
Existují dva hlavní přístupy k efektivitě hardwaru:
- U zařízení koncových uživatelů se prodlužuje životnost hardwaru.
- U cloud computingu se zvyšuje využití prostředků.
Povědomí o emisích uhlíku: Více, když je elektřina čistější a méně, když je elektřina špinavější.
Povědomí o emisích uhlíku znamená reakce na posuny intenzity emisí uhlíku zvýšením nebo snížením poptávky.
Vzory a postupy návrhu
Před kontrolou podrobných doporučení v jednotlivých oblastech návrhu doporučujeme pečlivě zvážit následující vzory návrhu pro vytváření udržitelných úloh v AKS:
Návrh aplikací
V této části se dozvíte více o tom, jak optimalizovat aplikace pro trvalejší návrh aplikací.
Návrh pro nezávislé škálování logických komponent
Architektura mikroslužeb může snížit požadované výpočetní prostředky, protože umožňuje nezávislé škálování logických komponent a zajišťuje jejich škálování podle poptávky.
- Zvažte použití architektury Dapr nebo jiných projektů CNCF, které vám pomůžou oddělit funkce aplikace do různých mikroslužeb a umožnit nezávislé škálování jejích logických komponent.
Návrh pro škálování řízené událostmi
Když škálujete úlohu na základě relevantních obchodních metrik, jako jsou požadavky HTTP, délka fronty a cloudové události, můžete snížit využití prostředků a emise uhlíku.
- Keda můžete použít při vytváření aplikací řízených událostmi, aby bylo možné vertikálně snížit kapacitu na nulu, když není poptávka.
Cílem bezstavového návrhu
Odebrání stavu z návrhu snižuje velikost dat v paměti nebo na disku vyžadovaných úlohou, aby fungovala.
- Zvažte bezstavový návrh , abyste snížili nepotřebné zatížení sítě, zpracování dat a výpočetní prostředky.
Aplikační platforma
V této části se dozvíte, jak lépe informovat rozhodnutí týkající se udržitelnosti související s platformou.
Povolení automatického aktualizace clusteru a uzlu
Aktuální cluster se vyhne zbytečným problémům s výkonem a zajistí, že získáte nejnovější vylepšení výkonu a optimalizaci výpočetních prostředků.
- Povolte automatickéupgrade clusteru a použijte aktualizace zabezpečení na uzly automaticky pomocí GitHub Actions , abyste měli jistotu, že cluster má nejnovější vylepšení.
Instalace podporovaných doplňků a rozšíření
Doplňky a rozšíření, na které se vztahují zásady podpory AKS, poskytují vašemu clusteru další podporované funkce a zároveň umožňují využívat nejnovější vylepšení výkonu a optimalizace energie v průběhu životního cyklu clusteru.
- Nainstalujte KEDA jako doplněk.
- Nainstalujte GitOps a Dapr jako rozšíření.
Kontejnerizace úloh tam, kde je to možné
Kontejnery umožňují snížit nepotřebné přidělení prostředků a lépe využívat prostředky nasazené, protože umožňují balení přihrádek a vyžadují méně výpočetních prostředků než virtuální počítače.
- Pomocí konceptu můžete zjednodušit kontejnerizaci aplikací generováním manifestů Dockerfile a Kubernetes.
Použití energeticky efektivního hardwaru
Procesory nativní pro cloud ampere jsou jedinečně navržené tak, aby splňovaly požadavky na vysoký výkon i efektivitu výkonu cloudu.
- Vyhodnoťte, jestli jsou uzly s procesory založenými na Arm Ampere Altra dobrou volbou pro vaše úlohy.
Shoda s potřebami škálovatelnosti a využitím možností automatického škálování a nárazového škálování
Přetěžovaný cluster nevyužívá výpočetní prostředky a může vést k plýtvání energií. Rozdělte aplikace do různých fondů uzlů, abyste umožnili správné nastavení velikosti clusteru a nezávislé škálování podle požadavků aplikace. Jakmile v clusteru AKS narazíte na kapacitu, z AKS na ACI navýšíte kapacitu dalších podů na bezserverové uzly a zajistěte, aby vaše úloha efektivně používala všechny přidělené prostředky.
- Nastavte velikost clusteru tak, aby odpovídal potřebám vaší aplikace. Pomocí automatického škálování clusteru s virtuálními uzly můžete rychle škálovat a maximalizovat využití výpočetních prostředků.
- Kvóty prostředků můžete také vynutit na úrovni oboru názvů a škálovat fondy uzlů uživatelů na nulu, pokud není poptávka.
Vypnutí úloh a fondů uzlů mimo pracovní dobu
Úlohy nemusí běžet nepřetržitě a můžou být vypnuté, aby se snížily energetické odpady a emise uhlíku. Fondy uzlů v clusteru AKS můžete úplně vypnout (zastavit), abyste také ušetřili náklady na výpočetní prostředky.
- Pomocí zastavení/spuštění fondu uzlů vypněte fondy uzlů mimo pracovní dobu.
- Škálovací nástroj KEDA CRON můžete použít k horizontálnímu snížení kapacity úloh (podů) na základě času.
Provozní postupy
Prozkoumejte tuto část a nastavte si prostředí pro měření a průběžné vylepšování nákladů na úlohy a uhlíkovou efektivitu.
Odstranění nepoužitých prostředků
Měli byste identifikovat a odstranit všechny nepoužívané prostředky, jako jsou neodkazované image a prostředky úložiště, protože mají přímý dopad na hardware a energetickou efektivitu. Pokud chcete zajistit průběžnou optimalizaci energie, musíte zacházet s identifikací a odstraňováním nepoužívaných prostředků jako s procesem, nikoli s aktivitou k určitému bodu v čase.
- K identifikaci nepoužívaných prostředků použijte Azure Advisor .
- Pomocí Nástroje ImageCleaner vyčistíte zastaralé image a odeberete oblast rizika v clusteru.
Označení prostředků
Získání správných informací a přehledů ve správný čas je důležité pro vytváření sestav o výkonu a využití prostředků.
- Nastavte ve svém clusteru značky Azure, abyste umožnili monitorování úloh.
Úložiště
V této části se dozvíte, jak navrhnout trvalejší architekturu úložiště dat a optimalizovat stávající nasazení.
Optimalizace využití úložiště
Operace načítání dat a úložiště dat můžou mít významný dopad na energetickou i hardwarovou efektivitu. Navrhování řešení se správným vzorem přístupu k datům může snížit spotřebu energie a vtělené emise uhlíku.
- Seznamte se s potřebami vaší aplikace, abyste zvolili vhodné úložiště , a definujte ho pomocí tříd úložiště, abyste se vyhnuli nedostatečnému využití úložiště.
- Zvažte dynamické zřizování svazků , abyste mohli automaticky škálovat počet prostředků úložiště.
Síť a možnosti připojení
V této části se dozvíte, jak zvýšit a optimalizovat efektivitu sítě, aby se snížily nepotřebné emise uhlíku.
Zvolte oblast, která je nejblíže uživatelům.
Vzdálenost od datového centra k uživatelům má významný dopad na spotřebu energie a emise uhlíku. Zkrácení vzdálenosti, po které síťový paket cestuje, zlepšuje energetickou i uhlíkovou efektivitu.
- Zkontrolujte požadavky vaší aplikace a zeměpisné oblasti Azure a zvolte oblast, která je nejblíže k umístění většiny síťových paketů.
Omezení procházení sítě mezi uzly
Umístění uzlů do jedné oblasti nebo jedné zóny dostupnosti snižuje fyzickou vzdálenost mezi instancemi. U důležitých obchodních úloh ale musíte zajistit, aby byl cluster rozložený do několika zón dostupnosti, což může vést k většímu procházení sítě a zvýšení uhlíkové stopy.
- Zvažte nasazení uzlů ve skupině umístění bezkontaktní komunikace, abyste omezili procházení sítě tím, že zajistíte, že se výpočetní prostředky fyzicky nacházejí blízko sebe.
- Pro důležité úlohy nakonfigurujte skupiny umístění bezkontaktní komunikace se zónami dostupnosti.
Vyhodnocení pomocí sítě služeb
Síť služeb nasazuje další kontejnery pro komunikaci, obvykle ve vzoru sajdkáře, aby poskytovala více provozních možností, což vede ke zvýšení využití procesoru a síťového provozu. Umožňuje však oddělit aplikaci od těchto funkcí, protože je přesouvá od aplikační vrstvy a dolů do vrstvy infrastruktury.
- Pečlivě zvažte zvýšení využití procesoru a síťového provozu generovaného komunikačními komponentami sítě služeb, než se rozhodnete použít.
Optimalizace shromažďování protokolů
Odesílání a ukládání všech protokolů ze všech možných zdrojů (úloh, služeb, diagnostiky a aktivit platformy) může zvýšit úložiště a síťový provoz, což má vliv na náklady a emise uhlíku.
- Ujistěte se, že shromažďujete a uchováváte pouze potřebná data protokolu pro podporu vašich požadavků. Nakonfigurujte pravidla shromažďování dat pro úlohy AKS a implementujte aspekty návrhu pro optimalizaci nákladů na Log Analytics.
Ukládání statických dat do mezipaměti
Použití služby Content Delivery Network (CDN) je udržitelný přístup k optimalizaci síťového provozu, protože snižuje přesun dat v síti. Minimalizuje latenci ukládáním často čtených statických dat blíže uživatelům a pomáhá snižovat zatížení sítě a zatížení serveru.
- Ujistěte se, že dodržujete osvědčené postupy pro CDN.
- Zvažte použití Azure CDN pro snížení využité šířky pásma a snížení nákladů.
Zabezpečení
V této části se dozvíte více o doporučeních, která vedou k udržitelnému a správnému stavu zabezpečení.
Vyhodnocení, jestli se má použít ukončení protokolu TLS
Protokol TLS (Transport Layer Security) zajišťuje, aby všechna data předávaná mezi webovým serverem a webovými prohlížeči zůstala soukromá a šifrovaná. Ukončení a opětovné navazování protokolu TLS ale zvyšuje využití procesoru a může být v určitých architekturách zbytečné. Vyvážená úroveň zabezpečení může nabídnout trvalejší a energeticky efektivnější úlohu, zatímco vyšší úroveň zabezpečení může zvýšit požadavky na výpočetní prostředky.
- Projděte si informace o ukončení protokolu TLS při používání služby Application Gateway nebo služby Azure Front Door. Určete, jestli můžete ukončit protokol TLS na hraniční bráně a pokračovat s jiným protokolem než TLS, a to s nástrojem pro vyrovnávání zatížení úloh a úlohou.
Použití nástrojů a ovládacích prvků zabezpečení sítě nativních pro cloud
Azure Front Door a Application Gateway pomáhají spravovat provoz z webových aplikací, zatímco Azure Web Application Firewall poskytuje ochranu před útoky OWASP top 10 a načítáním chybných robotů na hraničních zařízeních sítě. Tyto funkce pomáhají odstranit nepotřebné přenosy dat a snížit zatížení cloudové infrastruktury s nižší šířkou pásma a menším počtem požadavků na infrastrukturu.
- Pomocí kontroleru příchozího přenosu dat služby Application Gateway (AGIC) v AKS můžete filtrovat a snižovat zatížení provozu na hraniční síti od dosažení vašeho původu, aby se snížila spotřeba energie a emise uhlíku.
Kontrola ohrožení zabezpečení
Mnoho útoků na cloudovou infrastrukturu se snaží zneužít nasazené prostředky pro přímý zisk útočníka, což vede k zbytečnému nárůstu využití a nákladů. Nástroje pro kontrolu ohrožení zabezpečení pomáhají minimalizovat okno příležitosti pro útočníky a zmírnit případné škodlivé využití prostředků.
- Postupujte podle doporučení z Microsoft Defenderu pro cloud.
- Spusťte automatizované nástroje pro kontrolu ohrožení zabezpečení, jako je Defender for Containers, abyste se vyhnuli zbytečnému využití prostředků. Tyto nástroje pomáhají identifikovat ohrožení zabezpečení na obrázcích a minimalizovat okno příležitosti pro útočníky.
Další kroky
Azure Kubernetes Service