Kompromisy mezi efektivitou výkonu

Úloha, která splňuje své výkonnostní cíle bez nadměrného zřízení, je efektivní. Cílem efektivity výkonu je mít jen dostatek nabídky pro zvládnutí poptávky za všech okolností. Mezi klíčové strategie efektivity výkonu patří správné použití optimalizací kódu, vzorů návrhu, plánování kapacity a škálování. Tento pilíř tvoří jasný cíl výkonnosti a testování.

Během procesu vyjednávání výkonnostních cílů úlohy a návrhu úlohy pro efektivitu výkonu je důležité si uvědomit, jak zásady návrhu efektivity výkonu a doporučení v kontrolním seznamu pro kontrolu návrhu pro efektivitu výkonu můžou ovlivnit cíle optimalizace jiných pilířů. Určitá rozhodnutí o efektivitě výkonu mohou těžit z některých pilířů, 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 úloh a operací s ohledem na efektivitu výkonu.

Kompromisy mezi efektivitou výkonu se spolehlivostí

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

  • Úloha, která dosahuje efektivity zpožděním škálování až do posledního zodpovědného okamžiku, úzce splňuje poptávku, ale je zranitelná vůči nepředvídatelným selháním 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 však poloměr výbuchu poruchy ve společně umístěné komponentě nebo aplikační platformě.

  • Škálováním nebo vertikálním snížením kapacity můžete minimalizovat nadbytečnou kapacitu a během špičky využití tak může dojít k výpadkům služeb, což vede k výpadkům služeb kvůli nedostatečnému zásobování.

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

  • Použití automatického škálování k vyvážení nabídky úloh proti poptávce zavádí proměnlivost topologie úlohy a přidává komponentu, která musí správně fungovat, aby systém byl 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 horizontální dělení pomáhají vyhnout se problémům s výkonem ve velkých nebo často přístupných datových sadách. Implementace těchto vzorů ale zvyšuje složitost, protože je potřeba udržovat konzistenci (konečná) napříč dalšími prostředky.

  • Denormalizace dat pro optimalizované vzory přístupu může zlepšit výkon, ale představuje složitost, protože je potřeba udržovat synchronizovaná 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 úlohy. Komponenty pak musí být spolehlivé, aby byly všechny úlohy spolehlivé. Příkladem může být:

    • 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 spolehlivou operaci a zařazení replik.
    • Přesměrování načítání dat do mezipaměti, což vyžaduje spolehlivé přístupy k zneplatnění mezipaměti.

Kompromis: Testování a pozorování aktivních prostředí Zabránění zbytečnému používání produkčních systémů je samoobslužný přístup a předcházení rizikům pro spolehlivost.

  • Testování výkonu v aktivních prostředích, jako je použití syntetických transakcí, nese riziko způsobující poruchy kvůli testovacím akcím nebo konfiguracím.

  • Úlohy by měly být instrumentovány pomocí systému APM (Application Performance Monitoring), 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ůže ohrozit jeho funkčnost a údržbu, což může ohrozit spolehlivost.

Kompromisy mezi efektivitou výkonu se zabezpečením

Kompromis: Snížení bezpečnostních kontrol. Kontrolní mechanismy zabezpečení se navazují napříč několika vrstvami, někdy redundantně, aby poskytovaly hloubku ochrany.

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

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

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

  • Snížení četnosti oprav zabezpečení, které omezí dopad na výkon, může úlohu zranitelnější vůči vznikajícím hrozbám.

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

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

  • Použití méně 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 omezenou a obsaženou plochu, aby se minimalizovaly vektory útoku a snížila správa kontrolních mechanismů zabezpečení.

Vzory návrhu cloudu zaměřené na výkon někdy vyžadují zavedení dalších komponent. Tyto komponenty zvyšují plochu úlohy. Nové komponenty musí být zabezpečené, pravděpodobně způsoby, které se ještě v systému nepoužívají, a často zvyšují rozsah dodržování předpisů. Zvažte tyto běžně přidané 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í načítání dat do mezipaměti, 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 výpočetní výkon klienta

Kompromis: Odebrání segmentace. Pilíř zabezpečení upřednostňuje silnou segmentaci, aby bylo možné jemně odstupňované kontrolní mechanismy zabezpečení a snížit poloměr výbuchu.

Sdílení prostředků prostřednictvím zvýšené hustoty je přístup ke zlepšení efektivity. Mezi příklady patří scénáře s více tenanty nebo kombinování různorodých aplikací v architektuře na běžné aplikační platformě. Zvýšená hustota může vést k následujícím obavám zabezpečení:

  • Zvýšené riziko neoprávněného laterálního pohybu z jednoho tenanta do druhého.

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

  • Kontrolní mechanismy zabezpečení hraniční sítě, například pravidla sítě, která jsou omezena tak, aby pokrývala všechny společně umístěné komponenty a poskytovala jednotlivým komponentám více přístupu, než je potřeba.

  • Ohrožení hostitele aplikační platformy nebo jednotlivé komponenty kvůli většímu poloměru výbuchu. Toto zvýšení je způsobeno jednodušším přístupem ke spolu 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 s optimalizací nákladů

Kompromis: Příliš mnoho nabídky na poptávku. Optimalizace nákladů i efektivita výkonu upřednostňují pouze dostatečnou nabídku, která bude obsluhovat poptávku.

  • Nadměrné zřízení je riziko, když se týmy pokusí zmírnit problémy s výkonem v úloze. Mezi běžné příčiny nadměrného zřízení patří:

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

    • Vertikální navýšení kapacity s minimálními změnami v poptávce nebo období rozšířeného snížení kapacity může vyžadovat vyšší náklady, než vyžaduje poptávka.
    • Použití automatického škálování bez nastaveného horního limitu může vést k nečekanému růstu kvůli selhání systému nebo zneužití a překročení očekávaných požadavků na úlohy.
  • Rozšíření do několika oblastí může zvýšit výkon tím, že uživatelům přiblíží úlohy a zabrání dočasným omezením kapacity prostředků. Tato topologie ale také zvyšuje 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, odebráním duplicit a spolulokací 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 úlohy snižování zátěže do aplikace nebo sítě pro doručování obsahu, aby se zlepšila doba odezvy.

  • Segmentace prostředků umožňuje různým částem úlohy mít odlišné charakteristiky výkonu, což umožňuje nezávislé ladění jednotlivých segmentů. Může ale zvýšit celkové náklady na vlastnictví, protože vyžaduje více optimalizovaných segmentů místo jedné generalizované komponenty.

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é všemi nasazenými řešeními.

  • Služby a skladové položky úrovně Premium můžou pomoci úlohám splňovat výkonnostní cíle. Tyto služby obvykle stojí více a můžou poskytovat další funkce. Můžou být nevyužité, pokud se řada prémiových funkcí nepoužívá speciálně pro plnění výkonnostních cílů.

  • 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 úložiště 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. Mezi příklady nákladů na testování výkonu patří:

    • Vytváření instancí prostředí vyhrazených pro testy zaměřené na výkon
    • Použití specializovaných nástrojů pro měření výkonu
    • Strávíte čas spuštěním testů.
  • Členové školicího týmu pro specializované úlohy optimalizace výkonu nebo platí za služby optimalizace výkonu, které se přidávají k nákladům na úlohu.

Kompromisy mezi efektivitou výkonu díky efektivitě provozu

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

  • Snížení objemu protokolů a metrik, aby se zkrátila doba zpracování strávená shromažďováním 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.
    • 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í zahrnovat tyto komponenty. Když tok pokrývá více komponent nebo hranic aplikací, zvyšuje se složitost monitorování výkonu tohoto toku. Výkon toku musí být korelován napříč všemi propojenými komponentami.

Kompromis: Větší složitost provozu. Komplexní prostředí má složitější interakce a větší pravděpodobnost negativního dopadu na rutinní, ad hoc a nouzový provoz.

  • 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álohy, obměny klíčů a strategie obnovení. Například dělení dat a shardování může komplikovat rutinní úkoly, když se týmy pokusí zajistit, aby tyto úkoly neovlivňují konzistenci dat.

Kompromis: Kultura stres. Efektivita provozu je kořenem kultury bez viny, respektu a průběžného zlepšování.

  • Analýza 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 zvážit cvičení jako příležitost k učení. Pokud jsou členové týmu obviňováni za problémy, může to mít vliv na morální prostředí.

  • Rutinní a ad hoc procesy můžou ovlivnit výkon úloh. Tyto aktivity se často považují za vhodnější provádět mimo špičku. Mimo špičku ale může být pro členy týmu, kteří jsou zodpovědní za tyto úkoly, nebo mimo jejich běžné hodiny, mimo špičku.

Prozkoumejte kompromisy pro ostatní pilíře: