Doporučení k efektivitě výkonu pro udržitelné úlohy v Azure

Udržitelnost v cloudových úlohách a výkonu jsou úzce propojená, protože obě jsou zásadně řízeny stejným základním omezením: spotřebou prostředků (výpočetní prostředky, paměť, úložiště, síť a čas).

Výkon může být silným faktorem udržitelnosti. Tento článek zkoumá udržitelnost prostřednictvím pilíře Efektivita výkonu a odpovídá na tyto otázky týkající se návrhu:

  • Jak můžete zlepšit výkon na úrovni aplikace (vzory rozhraní API, vykreslování, uživatelské rozhraní a doručování obsahu) a snížit tak výpočetní výkon, síť a spotřebu energie bez snížení uživatelského prostředí?
  • Jak byste měli optimalizovat komplexní využití výpočetních prostředků, úložiště a sítě, aby se zvýšení výkonu projevilo v nižším dopadu na prostředí, a ne jen rychlejší provádění?
  • Jak můžete optimalizovat škálování, volbu úrovně služby a postupy CI/CD, abyste předešli skrytému plýtvání způsobenému nadměrným přidělením prostředků, nevyužitou kapacitou a opakovanou prací v pipeline?
  • Jak modernizujete a nepřetržitě provozujete úlohy, takže vylepšení efektivity se udržují v průběhu času a současně vyrovnávají kompromisy v nákladech, spolehlivosti a provozní složitosti?

Zlepšení efektivity aplikací

Cloudové aplikace často spoléhají na častou komunikaci mezi službami, rozhraními API a distribuovanými komponentami. Každý požadavek rozhraní API spotřebovává šířku pásma sítě, výpočetní prostředky, paměť a následně energii.

Aplikace můžou generovat nadměrné vzorce komunikace mezi službami, které zvyšují požadavky na síťový provoz a back-endové zpracování. Velké nebo neefektivní datové bloky mohou vést ke zbytečnému přenosu dat, vyšší latenci a zvýšené spotřebě energie. Bez kontroly můžou nadměrné požadavky rozhraní API vytvářet nevyužité zatížení back-endových služeb, což vede k vyššímu využití prostředků a snížení efektivity.

Některé Azure služby podporují udržitelná rozhraní API. Viz například rozhraní API pro trvalou udržitelnost životního prostředí v Azure API Management.

Nevhodná strategie vykreslování může vést k neefektivnímu použití prostředků a zbytečnému zpracování na klientovi nebo serveru. Vykreslování na serveru může snížit zatížení zpracování na zařízeních koncových uživatelů, využít centralizované ukládání do mezipaměti a využívat energeticky efektivnější infrastrukturu. Naopak vykreslování na straně klienta může snížit spotřebu prostředků serveru a využít výhod moderních funkcí zařízení a ukládání do mezipaměti prohlížeče.

Návrh uživatelského prostředí může mít významný dopad na udržitelnost aplikace. Složitá rozhraní, velké mediální prostředky, nadměrný obsah stránky a neefektivní možnosti návrhu můžou zvýšit síťový provoz, zpracování dat a spotřebu energie v prostředích klienta i serveru.

Recommendation Benefit udržitelnosti
Optimalizujte vzory komunikace rozhraní API snížením interakcí chatování, minimalizací velikostí datových částí a efektivními technikami kódování zpráv. Snižuje síťový provoz, objemy přenosu dat, zpracování back-endu a celkovou spotřebu energie.
Implementujte omezování požadavků a ukládání odpovědí do mezipaměti pomocí služeb, jako jsou Azure API Management. Zabraňuje zbytečné spotřebě prostředků, snižuje opakované zpracování a zlepšuje efektivitu back-endových služeb.
Monitorujte vzorce využívání rozhraní API a průběžně optimalizujte endpointy s vysokým provozem nebo nízkou efektivitou. Identifikuje příležitosti ke zlepšení efektivity výkonu, snížení využití prostředků a snížení uhlíkové stopy úloh.
Vyhodnoťte strategie vykreslování a vyberte vykreslování na straně serveru nebo na straně klienta na základě možností uživatelského zařízení, podmínek sítě a požadavků na úlohy. Optimalizuje využití výpočetních prostředků napříč klientskými a serverovými prostředími, snižuje nepotřebnou spotřebu energie a zlepšuje celkovou efektivitu úloh.
Využijte mechanismy ukládání do mezipaměti, ať už centralizované na serveru nebo v prohlížeči, abyste minimalizovali opakované operace vykreslování a zpracování dat. Snižuje výpočetní prostředky, síťový provoz a spotřebu prostředků a snižuje dopad na prostředí při doručování obsahu aplikace.
Navrhování jednoduchých a efektivních uživatelských rozhraní minimalizací nepotřebných součástí, stránek a mediálních prostředků Snižuje síťový provoz, zpracování dat a spotřebu výpočetních prostředků a zlepšuje celkovou energetickou efektivitu.
Optimalizujte načítání obsahu používáním obrázků a videí s vhodnou velikostí, vyhýbejte se stahování zbytečných zdrojů a tam, kde je to vhodné, využívejte systémová písma. Snižuje využití šířky pásma, požadavky na zpracování na straně klienta a související emise uhlíku.
Zlepšete navigaci uživatelů a snadnost nalezení obsahu a zvažte nabídku prostředí nenáročného na zdroje, například zjednodušených rozhraní nebo tmavého režimu. Snižuje zbytečné načítání dat a spotřebu energie a pomáhá uživatelům pracovat efektivněji s aplikací.

Optimalizace výpočetních prostředků

Pokud neměříte, jak aplikace spotřebovávají procesor, paměť a kapacitu zpracování, můžete neúmyslně nasadit neefektivní kód nebo nedostatečně využitou dostupnou infrastrukturu.

Recommendation Benefit udržitelnosti
Profilování úloh pro pochopení vzorů souběžnosti, využití prostředků a příležitostí pro optimalizaci výkonu nebo paralelizaci Zlepšuje efektivitu výpočetních prostředků a zajišťuje efektivní využití prostředků, což snižuje zbytečnou spotřebu energie.
Vyhodnoťte specializované výpočetní možnosti, jako jsou prostředky založené na GPU, kde poskytují zvýšení efektivity. Může zlepšit efektivitu zpracování a snížit celkové výpočetní prostředky potřebné k dokončení úloh.
Stanovte výchozí hodnoty pro CPU a paměť a začleňte do kanálů nasazení testování, monitorování, upozornění a brány kvality se zaměřením na udržitelnost. Pomáhá včas identifikovat neefektivní kód a spotřebu prostředků, brání neudržitelným úlohám dostat se do produkce a podporuje průběžné zlepšování efektivity úloh.

Kompromis: Prostředky založené na GPU mohou výrazně zvýšit efektivitu výkonu a zpracování pro strojové učení a vysoce paralelní úlohy, snížit dobu provádění a potenciálně zlepšit energetickou efektivitu. Tyto prostředky ale obvykle účtují vyšší provozní náklady než alternativy založené na procesoru. Vyhodnoťte tyto možnosti, abyste zajistili, že výhody výkonu ospravedlní další výdaje.

Zkontrolujte a upravte směrné plány a prahové hodnoty využití prostředků v průběhu času, protože se vyvíjí funkce aplikace, aby se zabránilo generování falešně pozitivních nebo zbytečně blokujících nasazení.

Omezení procházení sítě

Síťový provoz přímo přispívá ke spotřebě energie a uhlíkové stopě cloudových úloh. Nadměrné přenosy dat, dlouhé síťové cesty a neefektivní vzorce doručování obsahu můžou zvýšit využití šířky pásma, požadavky na zpracování a latenci. Optimalizací způsobu, jakým se data doručují, ukládají do mezipaměti, komprimují a směrují, můžete snížit nepotřebnou síťovou aktivitu, zlepšit výkon aplikací a snížit dopad na prostředí související s přesouváním dat napříč distribuovanými systémy.

Recommendation Benefit udržitelnosti
Používejte sítě pro doručování obsahu (CDN), strategie ukládání do mezipaměti, včetně ukládání do mezipaměti v paměti, kde je to vhodné, a techniky komprese dat ke snížení síťového provozu a optimalizaci doručování obsahu. Snižuje spotřebu šířky pásma, zatížení serveru, opakované zpracování a energii potřebnou k doručování obsahu aplikace.
Nasaďte úlohy a obsah blíže uživatelům a udržujte závislé prostředky ve stejném cloudu a oblasti, kde je to praktické. Minimalizuje procházení sítě, snižuje závislost na veřejném internetovém směrování, zlepšuje výkon a snižuje dopad přesunu dat na životní prostředí.
Pravidelně kontrolujte a vylaďte konfigurace ukládání do mezipaměti, jako je uchovávání mezipaměti a nastavení vypršení platnosti, abyste maximalizovali efektivitu a využití prostředků. Zlepšuje efektivitu mezipaměti, snižuje nepotřebné přenosy dat a podporuje průběžné snížení spotřeby energie.

Kompromis: Techniky optimalizace sítě, jako je ukládání do mezipaměti a komprese, můžou snížit požadavky na šířku pásma a zlepšit výsledky udržitelnosti, ale můžou vyžadovat další výpočetní prostředky, paměť nebo prostředky úložiště. Vylaďte nastavení uchovávání mezipaměti a strategie komprese, abyste vyrovnaly výkon, využití prostředků a celkové výhody udržitelnosti.

Snížení nároků na úložiště

Efektivní návrh úložiště hraje klíčovou roli při snižování dopadu cloudových úloh na životní prostředí tím, že minimalizuje zbytečné uchovávání, přenos a zpracování dat. Neefektivní postupy ukládání, jako jsou nekomprimovaná data, špatně optimalizované dotazy, nadměrné zálohování a nadměrné protokolování, můžou snížit energetickou efektivitu.

Nespravované body obnovení zálohování a nadměrné uchovávání protokolů se v průběhu času můžou bezobslužně hromadit, což zvyšuje nároky na úložiště a dopad na životní prostředí, aniž by bylo možné poskytovat proporcionální hodnotu.

Recommendation Benefit udržitelnosti
Použijte kompresi úložiště, optimalizujte databázové dotazy (např. pro Azure SQL Database) a snižte zbytečné přenosy dat, aby se zlepšila efektivita a výkon úložiště. Snižuje požadavky na kapacitu úložiště, snižuje spotřebu šířky pásma a snižuje režijní náklady na výpočetní prostředky spojené se zpracováním a načítáním dat.
Zarovnejte data s odpovídajícími úrovněmi přístupu k úložišti a zásadami životního cyklu, abyste zajistili, že se často přístupná data uchovávají v horkém úložišti, zatímco zřídka daná data se přesunou do studeného nebo archivovaného úložiště. Minimalizuje spotřebu energie snížením zbytečného přístupu k datům a optimalizací využití prostředků úložiště.
Implementujte a pravidelně kontrolujte zásady zálohování, bodu obnovení a uchovávání protokolů pomocí služeb, jako jsou Azure Backup a Azure Monitor, abyste zabránili zbytečné akumulace dat. Snižuje dlouhodobý růst úložiště, minimalizuje nečinné uchovávání dat a snižuje dopad na životní prostředí ukládání a zpracování nepoužívaných dat.

Vyvážení s potřebami škálovatelnosti

Úlohy, které spoléhají na pevnou nebo nadměrnou kapacitu, můžou spotřebovávat více výpočetních prostředků, než je nutné, což vede k nedostatečnému využití a neefektivnímu využití energie. Výběr vyšších úrovní služby pro funkce, které nejsou plně využité, může vést k nečinné kapacitě, která stále způsobuje environmentální a provozní náklady. Bez pravidelné kontroly požadavků na škálovatelnost můžou organizace hromadit infrastrukturu, která překračuje skutečnou poptávku, což snižuje celkovou efektivitu a výkon udržitelnosti.

Recommendation Benefit udržitelnosti
Zkontrolujte rozhodnutí o úrovni platformy a služeb a ujistěte se, že jsou v souladu se skutečnými požadavky na zatížení a vzory využití prostředků. Snižuje nevyužitou výpočetní kapacitu a zlepšuje celkovou efektivitu hardwaru.
Preferují služby a architektury, které podporují dynamické škálování na základě poptávky, a ne pevnou zřízenou kapacitu. Zajišťuje přidělení prostředků pouze v případě potřeby, minimalizace nečinných výpočetních prostředků a snížení spotřeby energie.
Vyhodnoťte, jestli jsou pro požadované funkce nezbytné služby vyšší vrstvy, a pokud je to možné, vyhněte se nadměrnému zřízení. Zabraňuje zbytečnému přidělování prostředků a snižuje dopad nevyužité nebo nečinné infrastruktury na životní prostředí.

Kompromis: Služby vyšší úrovně můžou být potřeba pro přístup ke konkrétním funkcím nebo možnostem bez ohledu na skutečné využití. V takových případech musí organizace vyvažovat funkční požadavky s potenciální neefektivností plynoucí z alokované, ale nedostatečně využívané kapacity.

Zvýšení efektivity v nasazeních

Kanály CI/CD se můžou stát skrytým zdrojem zbytečné spotřeby prostředků. Opakující se procesy sestavení mohou vést ke zbytečným cyklům CPU, delší době běhu pipeline a vyššímu síťovému provozu při načítání závislostí a přenosu artefaktů.

Recommendation Benefit udržitelnosti
Implementujte ukládání do mezipaměti v kanálech CI/CD pro ukládání a opakované použití výstupů sestavení a artefaktů mezi spuštěními, když se vstupy nemění. Omezuje opakované výpočty, zkracuje dobu běhu pipeline a snižuje celkovou spotřebu energie.
Místní ukládání do mezipaměti použijte u místních agentů CI/CD, pokud je to možné, abyste minimalizovali přenosy sítě a přesun externích dat. Snižuje síťový provoz a související spotřebu energie a současně zlepšuje efektivitu a výkon sestavení.

Kompromis: Ukládání do mezipaměti zavádí další požadavky na úložiště a může vyžadovat strategie zneplatnění mezipaměti, aby se zajistila správnost. Špatně spravované mezipaměti můžou vést k zastaralým výstupům, takže strategie ukládání do mezipaměti musí být pečlivě navrženy tak, aby vyvažovaly zvýšení efektivity díky spolehlivosti sestavení.

Použití moderních technologií

Starší verze aplikací, které neaktualizujete nebo modernizujete, můžou v aktuální cloudové infrastruktuře běžet neefektivním způsobem, protože spotřebovávají více výpočetních prostředků, než je potřeba. Starší architektury nemusí využívat moderní škálovatelnost, automatizaci ani energeticky efektivní funkce platformy. Modernizace však může vyžadovat značné technické úsilí a může představovat riziko nebo složitost, zejména při práci s zastaralými systémy nebo úzce propojenými závislostmi. Kromě toho musí časté upgrady zvážit kompatibilitu a provozní stabilitu, aby nedošlo k přerušení.

Recommendation Benefit udržitelnosti
Identifikujte a modernizujete starší aplikace migrací na moderní architektury nativní pro cloud, jako jsou bezserverové nebo optimalizované služby PaaS. Zlepšuje efektivitu výpočetních prostředků, snižuje režii infrastruktury a využívá energeticky efektivnější funkce platformy.
Udržujte platformy, služby a operační systémy aktuální pomocí automatizovaných aktualizačních mechanismů, jako je Azure Automation Update Management. Zajišťuje, aby úlohy využívaly nejnovější vylepšení výkonu a energetické účinnosti v moderních softwarových verzích.