Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Udržitelnost lze dosáhnout tím, že zajistí požadovanou úroveň spolehlivosti s co nejmenší možnou spotřebou prostředků. V mnoha případech vytváří návrh pro spolehlivost a udržitelnost přirozenou architekturu, kde odolné systémy přímo přispívají k trvalejším úlohám.
Nízká spolehlivost často zvyšuje dopad na životní prostředí, aby se kompenzovala nestabilita. Tyto reaktivní vzory zvyšují využití výpočetních prostředků, provozní režii a dlouhodobou spotřebu prostředků v rámci životního cyklu úloh.
Tento článek zkoumá udržitelnost prostřednictvím pohledu pilíře spolehlivosti a odpovídá na tyto otázky týkající se návrhu:
- Jak se vyhnout plýtvání prostředků během selhání?
- Jak se vyhnout trvalému nadměrnému inženýrství?
- Jak udržujete efektivní využití v průběhu času?
- Jak maximalizujete hustotu úloh při minimalizaci zbytečného využití infrastruktury?
- Jak zajistíte, aby testování zlepšilo spolehlivost, aniž by se vytvářely vyhnoutelné emise?
Zabránit zesílení selhání
Selhání v distribuovaných systémech zůstávají zřídka izolovaná. Selhání jedné závislosti může spustit kaskádu opakovaných pokusů, duplicitních požadavků, hromadění ve frontě a zdlouhavých činností při obnově ve všech závislých službách. Tyto reakce zvyšují využití výpočetních prostředků, síťový provoz, operace úložiště a provozní režii při poskytování malé nebo žádné další obchodní hodnoty.
Z hlediska udržitelnosti se úlohy stanou neefektivní, když podmínky selhání generují nepotřebnou práci. Systémy, které nepřetržitě opakují neúspěšné operace nebo opakovaně zpracovávají stejné požadavky, spotřebovávají další energii a rozšiřují dobu obnovení.
Například dočasný výpadek databáze může způsobit, že instance aplikace budou opakovaně znovu odesílat neúspěšné požadavky, zatímco fronty na straně závislé komponenty budou dále narůstat. I když původní problém může být krátkodobý, pracovní zátěž může během obnovení spotřebovávat výrazně více prostředků než při běžném provozu.
| Recommendation | Výhoda udržitelnosti |
|---|---|
| Použijte vzory typu Circuit Breaker, abyste zabránili opakovaně selhávajícím operacím. | Zabraňuje zbytečné spotřebě výpočetních prostředků během selhání závislostí. |
| Implementujte omezování požadavků během podmínek přetížení. | Snižuje kaskádové navýšení provozu a zatížení backendu. |
| Pokud je to možné, používejte elegantní vzorce snížení výkonu. | Zachovává částečnou funkčnost, aniž by spouštěla nadměrné mechanismy obnovení. |
| Včasné zjišťování vzorů selhání s využitím monitorování a upozorňování | Snižuje prodlouženou neefektivní operaci a urychluje obnovení. |
| Navrhujte úlohy tak, aby izolovaly selhání závislostí. | Zabraňuje šíření lokalizovaných problémů v celém systému. |
Navrhujte odolnost záměrně
Běžným vzorem je návrh maximální odolnosti bez sladění architektury se skutečnými obchodními požadavky.
Přístupy k architektuře, jako je nadměrná redundance a nepotřebná nasazení ve více oblastech, mají kompromisy s udržitelností. I když tyto přístupy můžou zlepšit cíle odolnosti, zvyšují také nároky na infrastrukturu, vtělené emise uhlíku, provozní režii a náklady na průběžnou synchronizaci sítí.
Například nasazení aktivně-aktivní infrastruktury napříč několika regiony pro úlohu s nenáročnými požadavky na obnovení může trvale zdvojnásobit režii výpočetních prostředků a replikace, i když k přepnutí při selhání dochází jen zřídka.
| Recommendation | Výhoda udržitelnosti |
|---|---|
| Sladění architektury odolnosti s definovanými požadavky na kontinuitu podnikových procesů | Zabraňuje zbytečné nepřetržité infrastruktuře a nečinné redundanci. |
| Vyhodnoťte, jestli se skutečně vyžaduje nasazení ve více oblastech. | Snižuje provoz průběžné replikace a duplicitní infrastrukturu. |
| Pečlivě zvažte kompromisy mezi monolitickou architekturou a mikroslužbami. | Vyhněte se zbytečnému provozu mezi službami a duplikaci platformy. |
| Prostředí pro převzetí služeb při selhání dimenzujte správně, místo abyste zrcadlili špičkové produkční kapacity. | Minimalizuje pohotovostní infrastrukturu při zachování cílů obnovení. |
| Pravidelně kontrolujte strategie zálohování, replikace a uchovávání informací. | Snižuje nadměrné duplicity dat a dlouhodobý růst úložiště. |
Stabilizovat poptávku za účelem snížení plýtvání
Představte si platformu pro zpracování videa, která může během určitých hodin dne zaznamenávat výrazné špičky v počtu nahrávání. Bez řízení zátěže platforma rychle škáluje výpočetní prostředky, aby pokryla nárazové špičky, a po poklesu poptávky pak zůstává značná část infrastruktury nevyužitá.
Náhlé špičky poptávky a vzorce škálování vyvolané nárazovým zatížením mohou spustit rychlou expanzi infrastruktury, po níž následují delší období nevyužité kapacity. Tato nestálost snižuje celkovou efektivitu platformy a zvyšuje nepotřebnou spotřebu prostředků.
Snažte se o stabilní vzory návrhu využití, které zlepšují efektivitu cloudu i udržitelnost úloh. V příkladu zpracování videa může asynchronní zpracování a ukládání do vyrovnávací paměti založené na frontě zajistit rovnoměrnější zpracování nahraných souborů při zachování přijatelné doby dokončení.
| Recommendation | Výhoda udržitelnosti |
|---|---|
| Pro operace náchylné k nárazovým špičkám použijte asynchronní zpracování. | Vyhladí poptávku po úlohách a snižuje špičky v krátkodobém měřítku. |
| Implementujte správu úloh založených na vyrovnávací paměti a správu úloh založených na frontách. | Stabilizuje využití infrastruktury v průběhu času. |
| V případě potřeby dávková nenákladná operace. | Zlepšuje efektivitu výpočetních prostředků tím, že snižuje režii opakovaného zpracování. |
| Vylaďte zásady automatického škálování, abyste se vyhnuli agresivním reakcím na krátkodobé škálování. | Zabraňuje zbytečnému rozšíření infrastruktury během dočasných špiček. |
Zohledněte udržitelnost při výběru platforem.
Udržitelnost zlepšuje, když je hustota úloh maximalizována ve sdílené cloudové infrastruktuře místo údržby zbytečné vyhrazené nebo nečinné kapacity.
Možnosti platformy ovlivňují, jak efektivně úloha využívá cloudové prostředky v průběhu času. Služby, které jsou nadměrně, zřídka používané nebo obtížně spravovat, často spotřebovávají více energie, než je nutné, a zvyšují provozní režii.
Moderní spravované služby můžou zlepšit spolehlivost i udržitelnost. PaaS a bezserverové platformy využívají lépe sdílenou cloudovou infrastrukturu a snižují potřebu správy vyhrazených prostředků. Těží také z průběžných optimalizací platformy, které v průběhu času zlepšují efektivitu.
Kompromis: Rozhodnutí o platformě zahrnují kompromisy. Nižší uhlíková oblast může zvýšit latenci pro uživatele. Spotové virtuální počítače můžou snížit plýtvání infrastrukturou, ale mohou také zavést nestabilitu, pokud úloha nedokáže tolerovat přerušení. Automatické škálování může zlepšit využití, ale špatně vyladěné zásady škálování můžou způsobit zbytečnou četnost změn infrastruktury.
| Recommendation | Výhoda udržitelnosti |
|---|---|
| Vyhodnoťte spravované služby PaaS a bezserverové služby, kde je to vhodné. | Zlepšuje využití infrastruktury prostřednictvím efektivity sdílené platformy a snižuje provozní režii řízenou samoobslužnou správou. |
| Udržujte služby platformy, běhová prostředí a závislosti aktuální. | Výhody z průběžných vylepšení efektivity platformy, vylepšení spolehlivosti a lepšího využití prostředků. |
| Porovná úrovně služeb a modely škálovatelnosti se skutečnou poptávkou po úlohách. | Zabraňuje zbytečnému nadměrnému přidělování prostředků a snižuje spotřebu nevyužívané infrastruktury. |
| Pravidelně odebírejte zombie úlohy, osiřelé prostředky a neaktivní prostředí. | Eliminuje infrastrukturu, která nadále spotřebovává prostředky, aniž by poskytovala obchodní hodnotu. |
| Pokud se nepoužívá, vypněte neprodukční prostředí. | Snižuje nepotřebnou spotřebu výpočetních prostředků a nečinnou kapacitu platformy. |
| Vyhněte se přidělení vyhrazené infrastruktury, pokud je požadavky na úlohy neodůvodňují. | Maximalizuje využití sdílené hyperscale infrastruktury a snižuje trvale vyhrazenou kapacitu. |
| Vylaďte chování automatického škálování, abyste se vyhnuli agresivním krátkodobým reakcím škálování. | Stabilizuje využití infrastruktury a snižuje zbytečnou četnost změn škálování. |
| Spotové virtuální počítače používejte jenom pro úlohy odolné proti přerušení. | Zlepšuje využití infrastruktury bez zavedení nestability spolehlivosti, která se dá vyhnout. |
| Zvolte oblasti blízko uživatelům, pokud latence ovlivňuje spolehlivost úloh. | Snižuje režii při procházení sítě a zlepšuje stabilitu požadavků. |
| Při výběru oblastí nasazení vyhodnoťte kompromisy intenzity emisí uhlíku, latence a odolnosti. | Vyrovnává cíle udržitelnosti s požadavky na spolehlivost úloh a uživatelské prostředí. |
Spouštění testů, které poskytují smysluplné ověření odolnosti
Pracovní zátěže se často chovají jinak při zátěži v reálném provozu, například při špičkách provozu, výpadcích a zhoršené dostupnosti závislých služeb. Zátěžové testování, testování výkonu a chaosové inženýrství pomáhají ověřit, jak systém za těchto podmínek reaguje, a před dopadem na produkční prostředí zpřístupňuje problémy se spolehlivostí.
Tyto testovací postupy však vyžadují významné výpočetní prostředky. Klíčovým aspektem udržitelnosti je, že testování spolehlivosti by mělo být účelné a přiměřené, nikoli průběžné nebo nadměrné.
| Recommendation | Výhoda udržitelnosti |
|---|---|
| Pomocí zátěžového testování a metod chaos engineeringu můžete posoudit, jak se pracovní zátěž chová během výpadků, špiček provozu a poklesů provozu. | Zlepšuje odolnost služeb a umožňuje efektivnější zpracování chyb, což snižuje plýtvání při skutečných scénářích selhání. |
| Pomocí chaosu můžete simulovat podmínky, které zvyšují spotřebu energie a identifikují neefektivní cesty provádění. | Pomáhá odhalit energeticky neefektivní chování a podporuje optimalizaci spotřeby prostředků pod stresem. |
| Definujte očekávané chování systému za těchto podmínek, včetně toho, jak by úloha měla reagovat, když je provoz neefektivní nebo pod omezením. | Zajišťuje předvídatelné obnovení a zabraňuje dlouhotrvajícím neefektivním provozním stavům. |
| Zvažte implementaci "ekologické verze" aplikace, která snižuje funkce nebo výkon, aby se minimalizovala spotřeba energie. Použijte ho jako srovnávací test pro bodování udržitelnosti. | Poskytuje měřitelný směrný plán pro provoz s omezenou energií a umožňuje průběžnou optimalizaci udržitelnosti. |
| Vyhodnoťte dopady provádění chaos engineeringu a zátěžových testů, protože tyto aktivity samy o sobě spotřebovávají další výpočetní kapacitu a zvyšují emise. | Zabraňuje zbytečné spotřebě prostředků souvisejících s testováním při zachování ověřování spolehlivosti. |
| Plánujte a vymezujte rozsah chaos engineeringu záměrně tak, aby se vyvážilo ověřování odolnosti s dopady testování na životní prostředí. | Snižuje emise z nadměrného nebo špatně cíleného testování. |