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ávrhový vzor Platí pro úlohu. Platí pro cluster
Návrh pro nezávislé škálování logických komponent ✔️
Návrh pro škálování řízené událostmi ✔️
Cílem bezstavového návrhu ✔️
Povolení automatického aktualizace clusteru a uzlu ✔️
Instalace podporovaných doplňků a rozšíření ✔️ ✔️
Kontejnerizace úloh tam, kde je to možné ✔️
Použití energeticky efektivního hardwaru ✔️
Shoda s potřebami škálovatelnosti a využitím možností automatického škálování a nárazového škálování ✔️
Vypnutí úloh a fondů uzlů mimo pracovní dobu ✔️ ✔️
Odstranění nepoužívaných prostředků ✔️ ✔️
Označení prostředků ✔️ ✔️
Optimalizace využití úložiště ✔️ ✔️
Zvolte oblast, která je nejblíže uživatelům. ✔️
Omezení procházení sítě mezi uzly ✔️
Vyhodnocení pomocí sítě služeb ✔️
Optimalizace shromažďování protokolů ✔️ ✔️
Ukládání statických dat do mezipaměti ✔️ ✔️
Vyhodnocení, jestli se má použít ukončení protokolu TLS ✔️ ✔️
Použití nástrojů a ovládacích prvků zabezpečení sítě nativních pro cloud ✔️ ✔️
Kontrola ohrožení zabezpečení ✔️ ✔️

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ů.

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.

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.

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.

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.

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ů.

Ú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.

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.

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.

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.

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