Kompromisy mezi efektivitou výkonu

Úloha, která splňuje její výkonnostní cíle bez nadměrného zřizování, je efektivní. Cílem efektivity výkonu je mít pouze dostatek nabídky, aby bylo možné za všech okolností zvládnout poptávku. Mezi klíčové strategie efektivity výkonu patří správné použití optimalizace kódu, vzory návrhu, plánování kapacity a škálování. Tento pilíř jsou základem jasných výkonnostních cílů a testování.

Během vyjednávání výkonnostních cílů úlohy a návrhu úlohy s ohledem na efektivitu výkonu je důležité vědět, jak můžou zásady návrhu efektivity výkonu a doporučení v kontrolním seznamu kontroly návrhu pro efektivitu výkonu ovlivnit cíle optimalizace ostatních pilířů. Některá rozhodnutí o efektivitě výkonu mohou být přínosná pro některé pilíře, ale představují kompromisy pro jiné. Tento článek uvádí příklady kompromisů, se kterými se tým úloh může setkat při návrhu architektury a provozu úloh s ohledem na efektivitu výkonu.

Kompromisy mezi efektivitou výkonu a spolehlivostí

Kompromis: Nižší replikace a zvýšená hustota Základním kamenem spolehlivosti je zajištění odolnosti pomocí replikace a omezení poloměru výbuchu při poruchách.

  • Úloha, která dosahuje efektivity zpožděním škálování na poslední zodpovědnou chvíli, těsně splňuje poptávku, ale je zranitelná před nepředvídatelnými selháními uzlů a zpožděním škálování.

  • Konsolidace prostředků úloh může využívat nadbytečnou kapacitu a zvýšit efektivitu. Zvyšuje se však poloměr výbuchu poruchy ve společně umístěné komponentě nebo aplikační platformě.

  • Horizontální snížení kapacity za účelem minimalizace nadbytečné kapacity může způsobit, že během špičky využití bude úloha podsoucená, což vede k přerušení služeb kvůli nedostatečné nabídce.

Kompromis: Zvýšená složitost. Spolehlivost upřednostňuje jednoduchost.

  • Použití automatického škálování k vyvážení nabídky úloh a poptávky přináší proměnlivost topologie úloh a přidává komponentu, která musí správně fungovat, aby byl systém spolehlivý. Automatické škálování vede k aktivaci dalších událostí životního cyklu aplikace, jako je spouštění a zastavování.

  • Dělení dat a shardování pomáhají vyhnout se problémům s výkonem u velkých nebo často navštěvovaných datových sad. Implementace těchto vzorů ale zvyšuje složitost, protože (případnou) konzistenci je potřeba udržovat napříč dalšími prostředky.

  • Denormalizace dat pro optimalizované vzory přístupu může zlepšit výkon, ale zvyšuje složitost, protože je potřeba synchronizovat více reprezentací dat.

  • Vzory návrhu cloudu zaměřené na výkon někdy vyžadují zavedení dalších komponent. Použití těchto komponent zvyšuje plochu pracovního vytížení. Komponenty pak musí být samy o sobě spolehlivé, aby byla spolehlivá celá úloha. Příklady:

    • Sběrnice zpráv pro vyrovnávání zatížení, která zavádí kritickou stavovou komponentu.
    • Nástroj pro vyrovnávání zatížení pro repliky s automatickým škálováním, který vyžaduje spolehlivý provoz a zařazení replik.
    • Přesměrování zpracování dat do mezipaměti, což vyžaduje spolehlivé přístupy ke zneplatnění mezipaměti.

Kompromis: Testování a pozorování aktivních prostředí Vyhnutí se zbytečnému používání produkčních systémů je samoobslužným přístupem pro spolehlivost.

  • Testování výkonnosti v aktivních prostředích, jako je použití syntetických transakcí, s sebou nese riziko způsobujících selhání v důsledku testovacích akcí nebo konfigurací.

  • Úlohy by se měly instrumentovat pomocí systému pro monitorování výkonu aplikací (APM), který týmům umožňuje učit se z aktivních prostředí. Nástroje APM se instalují a konfigurují v kódu aplikace nebo v hostitelském prostředí. Nesprávné použití, překročení omezení nebo chybná konfigurace nástroje můžou ohrozit jeho funkčnost a údržbu, což může ohrozit spolehlivost.

Kompromisy v oblasti efektivity výkonu se zabezpečením

Kompromis: Snížení kontrolních mechanismů zabezpečení. Kontrolní mechanismy zabezpečení se zřídily napříč několika vrstvami, někdy redundantně, aby poskytovaly hloubku ochrany.

Jednou ze strategií optimalizace výkonu je odebrání nebo obejití komponent nebo procesů, které přispívají ke zpoždění v toku, zejména v případě, že doba zpracování není oprávněná. Tato strategie však může ohrozit zabezpečení a měla by být doprovázena důkladnou analýzou rizik. Představte si následující příklady:

  • Odebráním šifrování během přenosu nebo neaktivních uložených dat za účelem zvýšení rychlosti přenosu se data vystavují potenciálním porušením integrity nebo důvěrnosti.

  • Odebrání nebo omezení kontroly zabezpečení nebo kontroly nástrojů za účelem zkrácení doby zpracování může ohrozit důvěrnost, integritu nebo dostupnost, které tyto nástroje chrání.

  • Snížení četnosti oprav zabezpečení za účelem omezení dopadu na výkon může ponechat úlohu zranitelnější vůči vznikajícím hrozbám.

  • Odebrání pravidel brány firewall ze síťových toků za účelem zvýšení latence sítě může umožnit nežádoucí komunikaci.

  • Minimalizace ověřování dat pro rychlejší zpracování dat může ohrozit integritu dat, zejména pokud jsou vstupy škodlivé.

  • Použití menší entropie v šifrovacích nebo hashovacích algoritmech, například u inicializačního vektoru (IV), je efektivnější, ale usnadňuje prolomení šifrování.

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

Vzory návrhu cloudu zaměřené na výkon někdy vyžadují zavedení dalších komponent. Tyto komponenty zvětšují plochu pracovního vytížení. Nové komponenty musí být zabezpečené, možná způsoby, které se v systému ještě nepoužívají, a často zvětšují rozsah dodržování předpisů. Zvažte tyto běžně přidávané komponenty:

  • Sběrnice zpráv pro vyrovnávání zatížení

  • Nástroj pro vyrovnávání zatížení pro repliky s automatickým škálováním

  • Přesměrování zpracování dat do mezipamětí, sítí pro doručování aplikací nebo sítí pro doručování obsahu

  • Přesměrování zpracování na úlohy na pozadí nebo dokonce klientské výpočetní prostředky

Kompromis: Odebírá se segmentace. Pilíř Zabezpečení upřednostňuje silnou segmentaci, aby bylo možné jemně odstupňované bezpečnostní prvky a snížit poloměr výbuchu.

Sdílení prostředků je přístup ke zlepšení efektivity. Zvyšuje hustotu za účelem optimalizace využití kapacity. Mezi příklady patří scénáře s více tenanty nebo kombinování různorodých aplikací v architektuře na společné aplikační platformě. Zvýšená hustota může vést k následujícím obavám o zabezpečení:

  • Zvýšené riziko neoprávněného laterálního přesunu z jednoho tenanta do jiného.

  • Sdílená identita úlohy, která porušuje princip nejnižších oprávnění a zakrývá jednotlivé záznamy auditu v protokolech přístupu.

  • Kontrolní mechanismy zabezpečení perimetru, například pravidla sítě, které jsou omezené tak, aby pokryly všechny společně umístěné komponenty, a poskytují tak jednotlivým komponentám větší přístup, než je nutné.

  • Ohrožení hostitele aplikační platformy nebo jednotlivé komponenty kvůli většímu poloměru výbuchu. Toto zvýšení je způsobeno snadnějším přístupem ke společně umístěným komponentám.

  • Společné umístění různorodých komponent vede k většímu počtu komponent v oboru dodržování předpisů kvůli jejich sdílenému hostiteli.

Kompromisy mezi efektivitou výkonu a optimalizací nákladů

Kompromis: Příliš mnoho nabídky pro poptávku. Optimalizace nákladů a efektivita výkonu upřednostňují právě dostatečnou nabídku, aby obsloužila poptávku.

  • Nadměrné zřizování představuje riziko, když se týmy snaží zmírnit problémy s výkonem úlohy. Mezi běžné příčiny nadměrného zřizování patří:

    • Počáteční plánování kapacity bylo chybné, protože se tým zaměřil pouze na odhady zatížení ve špičce a zanedbával strategie pro vyhlazování při návrhu úloh ve špičce.
    • Vertikální navýšení nebo snížení kapacity prostředku během kroku řešení potíží v reakci na incident.
  • Automatické škálování může být nesprávně nakonfigurované. Mezi příklady chybně nakonfigurovaného automatického škálování patří:

    • Vertikální navýšení kapacity s minimálními změnami v poptávce nebo delší období přestávky může být nákladnější, než vyžaduje poptávka.
    • Použití automatického škálování bez nastaveného horního limitu může vést k nekontrolovatelnému růstu v důsledku selhání systému nebo zneužití a překročit očekávané požadavky na úlohy.
  • Rozšíření do několika oblastí může zvýšit výkon tím, že se úlohy přiblíží uživateli a zabrání dočasným omezením kapacity prostředků. Zvyšuje to ale také složitost a duplikaci prostředků.

Kompromis: Více komponent. Jednou z technik optimalizace nákladů je konsolidace s menším počtem prostředků zvýšením hustoty, odstraněním duplicit a umístěním funkcí.

  • Vzory návrhu cloudu zaměřené na výkon někdy vyžadují zavedení dalších komponent. Tyto dodatečné komponenty obvykle vedou ke zvýšení celkových nákladů na úlohu. Můžete například zahrnout sběrnici zpráv pro vyrovnávání zatížení nebo přesměrování úkolů do aplikace nebo do sítě pro doručování obsahu, aby se zkrátily doby odezvy.

  • Segmentace prostředků umožňuje, aby různé části úlohy měly odlišné charakteristiky výkonu, což umožňuje nezávislé ladění pro každý segment. Může ale zvýšit celkové náklady na vlastnictví, protože vyžaduje více optimalizovaných segmentů, a ne jednu generalizovanou komponentu.

Kompromis: Vyšší investice do položek, které nejsou v souladu s funkčními požadavky. Jedním z přístupů k optimalizaci nákladů je vyhodnocení hodnoty poskytované jakýmkoli nasazeným řešením.

  • Služby a skladové položky Premium můžou úlohám pomoct splnit výkonnostní cíle. Tyto služby obvykle stojí více a můžou poskytovat další funkce. Pokud se řada prémiových funkcí nepoužívá speciálně ke splnění výkonnostních cílů, můžou být nevyužité.

  • Výkonná úloha vyžaduje telemetrická data pro pozorovatelnost, která se musí přenášet a ukládat. Zvýšení shromažďované telemetrie výkonu může zvýšit náklady na přenos a ukládání telemetrických dat.

  • Aktivity testování výkonnosti přidávají náklady, které nejsou přidružené k hodnotě produkčního systému. Příklady nákladů na testování výkonnosti:

    • Vytváření instancí prostředí, která jsou vyhrazená pro testy zaměřené na výkon.
    • Použití specializovaných nástrojů pro výkon.
    • Trávit čas spouštěním testů.
  • Školení členů týmu pro specializované úlohy optimalizace výkonu nebo platby za služby ladění výkonu zvyšuje náklady na úlohu.

Kompromisy mezi efektivitou výkonu a efektivitou provozu

Kompromis: Omezená pozorovatelnost. Pozorovatelnost je nezbytná k zajištění smysluplného upozorňování úloh a zajištění úspěšné reakce na incidenty.

  • Snížení objemu protokolů a metrik za účelem zkrácení doby zpracování shromažďování telemetrie místo jiných úloh snižuje celkovou pozorovatelnost systému. Mezi příklady výsledné snížené pozorovatelnosti patří:

    • Omezuje datové body, které se používají k vytváření smysluplných výstrah.
    • To vede k mezerám v pokrytí aktivit reakce na incidenty.
    • Omezuje pozorovatelnost v interakcích a hranicích citlivých na zabezpečení nebo dodržování předpisů.
  • Při implementaci vzorů návrhu výkonu se složitost úloh často zvyšuje. Komponenty se přidávají do kritických toků. Strategie monitorování úloh a monitorování výkonu musí tyto komponenty zahrnovat. Když tok přesahuje více komponent nebo hranic aplikace, zvyšuje se složitost monitorování výkonu tohoto toku. Výkon toku musí být korelovaný napříč všemi propojenými komponentami.

Kompromis: Zvýšená složitost provozu. Složité prostředí má složitější interakce a vyšší pravděpodobnost negativního dopadu z rutinních, ad hoc a nouzových operací.

  • Zvýšení efektivity výkonu zvýšením hustoty zvyšuje riziko v provozních úlohách. Chyba v jednom procesu může mít velký poloměr výbuchu.

  • Při implementaci vzorů návrhu výkonu ovlivňují provozní postupy, jako jsou zálohování, obměně klíčů a strategie obnovení. Například dělení dat a shardování může komplikovat rutinní úlohy, když se týmy snaží zajistit, aby tyto úlohy neovlivnily konzistenci dat.

Kompromis: Kulturní stres. Efektivita provozu má kořeny v kultuře bez obviňování, respektu a neustálého zlepšování.

  • Provádění analýzy původní příčiny problémů s výkonem identifikuje nedostatky v procesech nebo implementacích, které vyžadují opravu. Tým by měl cvičení považovat za příležitost k učení. Pokud jsou členové týmu obviňováni z problémů, může to mít vliv na morálku.

  • Rutinní a ad hoc procesy můžou mít vliv na výkon úloh. Tyto aktivity se často považují za vhodnější provádět mimo špičku. Pro členy týmu, kteří jsou za tyto úkoly zodpovědní nebo mají zkušenosti, však může být mimo špičku nepohodlné nebo mimo běžnou pracovní dobu.

Prozkoumejte kompromisy pro ostatní pilíře: