Kompromisy ve spolehlivosti

Spolehlivé úlohy konzistentně splňují definované cíle spolehlivosti. Měl by dosahovat stanovených cílů odolnosti, ideálně obcházením událostí, které mají vliv na spolehlivost. V reálném případě ale úloha musí tolerovat a řídit dopad takových událostí a udržovat operace na předem určené úrovni během aktivní poruchy. I během havárie se musí spolehlivá úloha v daném časovém období obnovit do určitého stavu, na obou případech se zúčastněné strany dohodly. Zásadní je plán reakce na incidenty, který vám umožní dosáhnout rychlé detekce a obnovení.

Během fáze návrhu úlohy musíte zvážit, jak můžou rozhodnutí na základě principů návrhu spolehlivosti a doporučení v kontrolním seznamu kontroly návrhu pro spolehlivost ovlivnit cíle a optimalizace ostatních pilířů. Některá rozhodnutí mohou být přínosná pro některé pilíře, ale představují kompromis pro jiné. Tento článek popisuje příklady kompromisů, se kterými se tým úloh může setkat při návrhu architektury úloh a provozu pro spolehlivost.

Kompromisy spolehlivosti se zabezpečením

Kompromis: Zvýšená plocha pracovního vytížení Pilíř Zabezpečení upřednostňuje zmenšenou a omezenou plochu, aby se minimalizovaly vektory útoku a snížila správa bezpečnostních prvků.

  • Spolehlivost se často získává replikací. Replikace může probíhat na úrovni komponent, na úrovni dat nebo dokonce na geografické úrovni. Repliky záměrně zvětšují plochu úlohy. Z hlediska zabezpečení se dává přednost omezené a omezené ploše, aby se minimalizovaly potenciální vektory útoku a zjednodušila se správa bezpečnostních prvků.

  • Podobně řešení zotavení po havárii, jako jsou zálohy, zvětšují plochu úlohy. Často jsou ale izolované od modulu runtime úlohy. To vyžaduje implementaci dalších kontrolních mechanismů zabezpečení, které můžou být specifické pro řešení zotavení po havárii.

  • V zájmu dosažení cílů spolehlivosti můžou být pro architekturu potřeba další komponenty, které zvětšují povrch. Může se například přidat sběrnice zpráv, aby byly požadavky odolné. Tato zvýšená složitost zvyšuje plochu úlohy přidáním nových komponent, které je potřeba zabezpečit, případně způsoby, které se v systému ještě nepoužívají. Tyto komponenty jsou obvykle doprovázeny dalším kódem a knihovnami, které podporují jejich použití nebo obecné vzorce spolehlivosti, což také zvyšuje plochu aplikace.

Kompromis: Obejití bezpečnostních kontrol. Pilíř Zabezpečení doporučuje, aby všechny kontroly zůstaly aktivní v normálních i stresovaných systémech.

  • Pokud u úlohy dochází k události spolehlivosti, kterou řeší aktivní reakce na incidenty, může naléhavost vytvořit tlak na týmy úloh, aby obešly kontrolní mechanismy zabezpečení, které jsou optimalizované pro rutinní přístup.

  • Aktivity řešení potíží můžou způsobit, že tým dočasně zakáže protokoly zabezpečení, takže už tak namáhaný systém může být vystavený dalším bezpečnostním rizikům. Existuje také riziko, že protokoly zabezpečení nebudou znovu naváděné.

  • Podrobné implementace kontrolních mechanismů zabezpečení, jako jsou přiřazení řízení přístupu na základě role nebo pravidla brány firewall, přinášejí složitost a citlivost konfigurace, což zvyšuje riziko chybné konfigurace. Zmírnění tohoto potenciálního dopadu na spolehlivost použitím rozsáhlých pravidel všechny tři nulová důvěra (Zero Trust) principy architektury.

Kompromis: Staré verze softwaru. Pilíř Zabezpečení podporuje přístup k opravám zabezpečení od dodavatelů k získání aktuálního stavu.

  • Použití oprav zabezpečení nebo aktualizací softwaru může potenciálně narušit cílovou komponentu a způsobit nedostupnost během změny softwaru. Zpoždění oprav nebo jejich vyloučení může zabránit potenciálním rizikům spolehlivosti, ale systém zůstane nechráněný před vyvíjejícími se hrozbami.

  • Výše uvedené aspekty platí také pro kód úlohy. Platí například pro kód aplikace, který používá staré knihovny a kontejnery, které používají staré základní image. Pokud se aktualizace a nasazení kódu aplikace považuje za neomíjené riziko spolehlivosti, je aplikace v průběhu času vystavena dalším bezpečnostním rizikům.

Kompromisy spolehlivosti s optimalizací nákladů

Kompromis: Větší redundance provádění nebo plýtvání. Nákladově optimalizovaná úloha minimalizuje nevyužité prostředky a zabraňuje nadměrnému zřizování prostředků.

  • Replikace je klíčovou strategií pro spolehlivost. Konkrétně je strategií mít dostatečnou replikaci pro zpracování daného počtu souběžných selhání uzlů. Tolerance více souběžných selhání uzlů vyžaduje vyšší počet replik, což vede ke zvýšení nákladů.

  • Nadměrné zřizování je další technika, jak absorbovat neočekávané zatížení systému, které by jinak mohlo vést k problému se spolehlivostí. Jakákoli nadbytečná kapacita, která se nevyužívá, se považuje za plýtvání.

  • Pokud úloha používá řešení zotavení po havárii, které nadměrně splňuje cíle bodu obnovení a času úlohy, vede tento nadbytek k vyšším nákladům z důvodu plýtvání.

  • Samotná nasazení úloh jsou potenciálním zdrojem dopadu na spolehlivost a tento dopad je často zmírněný redundancí v době nasazení prostřednictvím strategie nasazení, jako je modrá/zelená. Tato přechodná duplikace prostředků během bezpečného nasazení obvykle zvyšuje celkové náklady na úlohy během těchto období. Náklady se zvyšují s četností nasazení.

Kompromis: Zvýšené investice do provozu, který není v souladu s funkčními požadavky. Jedním z přístupů k optimalizaci nákladů je vyhodnocení hodnoty, kterou poskytuje jakékoli nasazené řešení.

  • K dosažení spolehlivosti systém vyžaduje pozorovatelnost. Systémy monitorování vyžadují přenos a shromažďování dat pozorovatelnosti. S rostoucími možnostmi monitorování se zvyšuje frekvence a objem dat, což vede k dalším nákladům.

  • Dostupnost spolehlivosti v úlohách vyžaduje testování a postupy. Navrhování a spouštění testů trvá určitou dobu a potenciálně specializované nástroje, za což se účtují náklady.

  • Úlohy s vysoce spolehlivými cíli mají často rychlý proces reakce, který vyžaduje, aby členové technického týmu patřili k formální obměně na volání. Tento proces způsobuje dodatečné náklady na personál a ztrátu příležitostí kvůli pozornosti, kterou by bylo možné směrovat jinam. S tím také vznikají potenciální náklady na nástroje pro správu procesu.

  • Smlouvy o podpoře s poskytovateli technologií jsou klíčovou součástí spolehlivé úlohy. Smlouvy o podpoře, které se nevyužívají, protože úroveň podpory je nadměrně zajištěná, způsobuje plýtvání.

Kompromisy mezi spolehlivostí a efektivitou provozu

Kompromis: Zvýšená složitost provozu. Efektivita provozu, stejně jako spolehlivost sama, upřednostňuje jednoduchost.

  • Spolehlivost obvykle zvyšuje složitost úlohy. S rostoucí složitostí úlohy se také můžou zvyšovat provozní prvky úlohy, aby podporovaly přidané komponenty a procesy z hlediska koordinace nasazení a oblasti konfigurace.

  • Komplexní strategie monitorování úlohy je klíčovou součástí efektivity provozu. Zavedení dalších komponent do architektury pro implementaci vzorů návrhu spolehlivosti vede ke správě více zdrojů dat, což zvyšuje složitost implementace distribuovaného trasování a pozorovatelnosti.

  • Použití více oblastí k překonání omezení kapacity prostředků v jedné oblasti nebo implementaci aktivní/aktivní architektury zvyšuje složitost provozní správy úloh. Tato složitost je způsobená nutností spravovat více oblastí a spravovat replikaci dat mezi nimi.

Kompromis: Zvýšené úsilí o generování týmových znalostí a povědomí. Pilíř Efektivita provozu doporučuje uchovávat a udržovat úložiště dokumentace pro postupy a topologie.

  • S tím, jak se úloha stává robustnější díky přidání součástí a vzorců spolehlivosti, trvá údržba provozních postupů a dokumentace k artefaktům více času.

  • Trénování se stává složitějším s tím, jak se zvyšuje počet komponent v úloze. Tato složitost ovlivňuje čas potřebný k onboardingu a zvyšuje znalosti potřebné ke sledování plánů produktů a pokynů na úrovni služeb.

Kompromisy spolehlivosti s efektivitou výkonu

Kompromis: Zvýšená latence. Efektivita výkonu vyžaduje systém k dosažení výkonnostních cílů pro toky dat a uživatele.

  • Vzorce spolehlivosti často zahrnují replikaci dat, aby přežila selhání repliky. Replikace přináší další latenci pro spolehlivé operace zápisu dat, které spotřebovávají část rozpočtu na výkon pro konkrétního uživatele nebo tok dat.

  • Spolehlivost někdy využívá různé formy vyrovnávání prostředků k distribuci nebo redistribuci zatížení do replik, které jsou v pořádku. Vyhrazená komponenta, která se používá k vyrovnávání, obvykle ovlivňuje výkon požadavku nebo procesu, který se vyrovnává.

  • Distribuce komponent napříč geografickými hranicemi nebo zónami dostupnosti, aby přežily omezený dopad, přináší latenci sítě při komunikaci mezi komponentami, které přesahují tyto hranice dostupnosti.

  • Rozsáhlé procesy se používají ke sledování stavu úlohy. I když je monitorování klíčové pro spolehlivost, instrumentace může ovlivnit výkon systému. S rostoucí pozorovatelností se může snížit výkon.

Kompromis: Zvýšené nadlimitované zřizování Pilíř Efektivita výkonu nedoporučuje nadměrné zřizování, místo toho doporučuje použití dostatečného množství prostředků k uspokojení poptávky.

  • Operace automatického škálování nejsou okamžité, a proto nedokážou spolehlivě zvládnout náhlý a dramatický nárůst poptávky, který se nedá tvarovat ani vyhladí. Proto je nadměrné zřizování prostřednictvím větších nebo více instancí kritickou taktikou spolehlivosti, která zohledňuje prodlevu mezi signálem poptávky a vytvořením nabídky. Nevyužitá kapacita je v rozporu s cíli efektivity výkonu.

  • Někdy není možné škálovat komponentu v reakci na poptávku a tato poptávka není zcela předvídatelná. Použití velkých instancí k pokrytí nejhoršího případu vede k nadměrnému plýtvání zřizováním v situacích, které jsou mimo daný případ použití.

Prozkoumejte kompromisy pro ostatní pilíře: