Doporučení pro stanovení priorit výkonu kritických toků
Platí pro toto doporučení kontrolního seznamu efektivity výkonu rozhraní Azure Well-Architected Framework:
PE:09 | Určete prioritu výkonu kritických toků. Přidělování prostředků úloh a úsilí o optimalizaci výkonu by mělo upřednostnit toky, které podporují nejdůležitější obchodní procesy, uživatele a operace. |
---|
Tato příručka popisuje doporučení pro stanovení priorit výkonu kritických toků v úloze. Kritické toky představují klíčové obchodní procesy, které generují výnosy nebo řídí operace s vysokou prioritou. Když upřednostníte výkon kritických toků, zajistíte, aby toky s největším dopadem získaly prostředky, které potřebují, před toky s nižší prioritou. Selhání tohoto stanovení priority může mít nepřiměřený negativní dopad na priority úloh a uživatelské prostředí.
Definice
Období | Definice |
---|---|
Tok | V úloze posloupnost akcí, které provádějí konkrétní funkci. Tok zahrnuje přesun dat a spouštění procesů mezi komponentami úlohy. |
Prioritní zpracování fronty | Zpracování úloh s vysokou prioritou před úkoly s nízkou prioritou. |
Omezování rychlosti | Akt omezení počtu žádostí, které mají přístup k prostředku. |
Tok systému | Tok informací a procesů v rámci systému. Systém podle tohoto toku automaticky povolí toky uživatelů nebo funkce úloh. |
Tok uživatele | Posloupnost, kterou uživatel používá k provedení úlohy. |
Klíčové strategie návrhu
Kritické toky označují klíčové toky uživatelů pro zákazníky nebo systémové toky a toky dat pro operace, které jsou zásadní pro funkčnost úloh. Tyto toky můžou zahrnovat akce, jako jsou registrace uživatelů, přihlášení, nákupy produktů, přístup k stránkám za paywallem nebo jakékoli jiné klíčové cesty nebo procesu v rámci vaší úlohy.
Kritické toky výrazně ovlivňují uživatelské prostředí nebo obchodní operace. Kritické toky mají vyšší výkonnostní cíle a smlouvy o úrovni služeb než nekritické toky. Pokud jsou prostředky omezené, měly by nekritické toky přinést využití prostředků kritickým tokům. Před izolováním a optimalizací kritických toků je potřeba identifikovat, monitorovat a určit jejich prioritu.
Identifikace všech toků
Prvním krokem při určování priority výkonu kritických toků je identifikace všech toků v rámci vaší úlohy. Identifikace toků zahrnuje systematické mapování a pochopení všech cest uživatelů a komunikace komponent. Zaměřuje se na pochopení metrik výkonu a potenciálního dopadu toků na výkon úloh.
Rozdělením úlohy do samostatných toků můžete najít kritické body výkonu, neefektivní využití prostředků a příležitosti pro optimalizaci výkonu. Tyto znalosti zpřístupňují oblasti potřebného vylepšení a jsou prvním krokem k identifikaci kritických toků. Další informace najdete v tématu Identifikace a hodnocení toků uživatelů a systémových toků.
Monitorování metrik výkonu toku
Po identifikaci všech toků v rámci úlohy je potřeba shromáždit metriky výkonu pro každý tok a tyto metriky monitorovat. Metriky toku poskytují přehled o době odezvy, chybovosti a propustnosti. Cílem je konzistentně sledovat a zaznamenávat metriky související s výkonem, abyste lépe porozuměli dopadu jednotlivých toků na výkon úloh. Pokud chcete monitorovat metriky toku, můžete ke shromažďování dat použít následující nástroje:
Analytické a sledovací nástroje: Tyto nástroje poskytují přehled o chování a interakcích uživatelů v rámci vaší aplikace. Analýzou uživatelských dat můžete identifikovat nejběžnější toky, kritické body nebo potenciální problémy.
Nástroje pro monitorování výkonu aplikací (APM): Nástroje APM slouží k monitorování výkonu aplikace a ke sledování spouštění toků. Tyto nástroje poskytují přehled o době odezvy, chybách a dalších metrikách výkonu, což vám umožní identifikovat kritické toky a optimalizovat jejich výkon.
Nástroje pro protokolování a ladění: Pomocí těchto nástrojů můžete zachytávat a analyzovat protokoly a ladit informace během běhu aplikace. Zkontrolujte protokoly a informace o ladění, abyste mohli sledovat, jak toky běží, a identifikovat problémy nebo chyby.
Identifikace kritických toků
Když máte k dispozici data o výkonu, můžete začít se všemi toky ohodnotit a identifikovat důležité toky. Identifikace kritických toků zahrnuje vyhodnocení dopadu a závažnosti každého toku na výkon. Efektivní stanovení priorit toků zajišťuje, že nejdůležitější toky obdrží prostředky potřebné před méně důležitými toky. Pokud chcete určit prioritu toků v aplikaci, zvažte tyto kroky:
Identifikace obchodního dopadu: Začněte posouzením důležitosti jednotlivých toků v rámci provozu. Zaměřte se na to, jak jednotlivé toky odpovídají vašim obchodním cílům, jejich dopad na uživatele a potenciální negativní účinky nízkého výkonu. Bezplatná úroveň služby může například přilákat více uživatelů, ale placená úroveň může být pro vaše obchodní cíle důležitější.
Kromě toho zvažte dopad toku na výkon v jednom nebo několika obchodních procesech. Více toků může podporovat jeden obchodní proces, ale často má jeden tok významný vliv na výkon tohoto procesu. Chcete identifikovat toky, které mají největší dopad na výkon. Naopak jeden tok může být základem několika procesů. V takových případech výkon tohoto toku přímo ovlivňuje účinnost všech souvisejících procesů a je to pravděpodobně kritický tok.
Analýza dat o výkonu: Analyzujte metriky výkonu přidružené k jednotlivým tokům. Hledejte vzory, anomálie nebo zajímavé metriky, které vám můžou poskytnout přehled o efektivitě a důležitosti toku. Například systémové toky s významným využitím jsou pravděpodobně důležité toky.
Přiřadit hodnocení důležitosti: Na základě obchodního dopadu a ukazatelů výkonu byste měli určit prioritu toků. Použijte hodnocení závažnosti Pro vysoké, Střední a Nízké. Toky s významným obchodním dopadem nebo požadavky na vysoký výkon by měly mít hodnocení závažnosti "Vysoká". Tyto toky jsou vaše kritické toky. Zaměřte se na toky s vysokým uživatelským provozem nebo mají přímý vliv na generování výnosů. Následující tabulka obsahuje charakteristiky kritických (vysoká) a nekritických toků (střední až nízká).
Kritické toky | Nekritické toky |
---|---|
Vysoké využití | Nízké využití |
Pro důležité obchodní informace | Není pro důležité obchodní informace |
Nákladné operace | Malé operace |
Časové intervaly | Není časově citlivé |
Výroba | Preprodukce |
Zpracování v reálném čase | Dávkové zpracování |
Latence citlivá | Není citlivé na latenci. |
Platící uživatel | Neplacený uživatel |
Úroveň Premium | Základní úroveň |
Důležité úkoly | Nepotřebné úkoly |
Účty s vysokými výnosy | Účty s nízkými výnosy |
Izolace kritických toků
Proces izolace kritických toků spočívá v poskytování vyhrazených prostředků nebo kapacity pro podporu kritických toků. Chcete přidělit prostředky a pozornost těm tokům, které jsou nezbytné pro optimální uživatelské prostředí nebo významné obchodní výsledky. Cílem je zajistit, aby kritické toky dostávaly dostatek výpočetního výkonu, šířky pásma sítě a prostředků pro efektivní a efektivní provoz. Izolováním kritických toků můžete snadněji spravovat prostředky, které podporují kritické toky. Tady jsou doporučení pro izolování kritických toků:
Segmentace prostředků: Vytvořte samostatné prostředky pro kritické toky, které jim umožní pracovat nezávisle bez zásahu z jiných procesů. Můžete například izolovat kritické toky ve vyhrazených síťových segmentech nebo pomocí vyhrazených serverů ke zpracování potřeb těchto toků. Tento přístup pomáhá minimalizovat, jak můžou nekritické toky negativně ovlivnit kritické toky.
Logická segmentace: K izolaci toků na úrovni softwaru použijte nástroje virtualizace a kontejnerizace, jako je Docker nebo Kubernetes. Kritické toky můžete rozdělit do virtuálních počítačů. Tím vytvoříte izolované prostředí, které omezí závislosti a potenciální rušení z jiných toků.
Přidělení kapacity: Pro kritické toky explicitně přidělte pevnou sadu kapacity, jako je procesor, paměť a vstupně-výstupní operace disku. Toto přidělení zajišťuje, aby kritické toky měly vždy dostatek prostředků pro efektivní provoz. Nastavte kvóty nebo limity prostředků pomocí platforem orchestrace. Explicitním přidělením prostředků kritickým tokům zabráníte kolizím prostředků a upřednostníte jejich spouštění.
Kompromis: Segmentace prostředků ovlivňuje náklady. Když vyčleníte prostředky na tok, často zvýšíte náklady a některé prostředky ponecháte nevyužité. Zvýšení výkonu kritických toků ospravedlňuje tím, že zvýšení obchodního dopadu musí převážit zvýšení nákladů.
Optimalizace přidělení kapacity
Pokud nemůžete izolovat kritické toky, je další nejlepší možností určit prioritu kritických toků při přístupu k dostupné kapacitě. Optimalizace přidělování kapacity spočívá v strategické distribuci dostupné kapacity do různých toků na základě jejich důležitosti. Kapacita zahrnuje procesor, paměť, úložiště a šířku pásma sítě. Cílem je zajistit, aby nejdůležitější toky (nejvyšší priorita) obdržely potřebnou kapacitu pro efektivní provoz. Pokud chcete rozhodnout, jak přidělit kapacitu, zvažte tyto strategie:
Posouzení kapacity prostředků: Vyhodnoťte, kolik kapacity prostředků je možné tokům přidělit. Kapacita může zahrnovat prostředky, jako jsou procesor, paměť, úložiště a šířka pásma sítě. Seznamte se s omezeními vaší infrastruktury nebo prostředí.
Analýza požadavků na tok: Analyzujte požadavky na prostředky jednotlivých toků. Seznamte se s prostředky, které tok potřebuje k efektivnímu fungování. Pro každý tok určete požadavky na prostředky, například využití procesoru, požadavky na paměť a šířku pásma sítě.
Stanovení priorit přidělení: Porovná dostupnou kapacitu prostředků s požadavky toků na prostředky. Přiřaďte prostředky na základě priorit toku, aby toky s vyšší prioritou obdržely prostředky potřebné ke splnění svých požadavků. Zjistěte, kde jsou vaše nejtěsnější omezení, a optimalizujte přidělení kapacity tam, kde jsou potřeba. Fronty můžou například zpracovávat jenom některé zprávy za minutu, ale některé limity úložiště jsou obtížně dosažitelné.
Omezení rychlosti: Pokud chcete zajistit, aby kritické toky mohly využívat prostředky, které potřebují ke splnění svých výkonnostních cílů, použijte omezení rychlosti na nekritické toky a úkoly. Omezení rychlosti omezují počet požadavků na toky s nižší prioritou a uživatelé můžou provádět omezené prostředky. Můžete například omezit četnost požadavků na neprioritu na rozhraní API. Další informace najdete v tématech Model omezení rychlosti a Omezení rychlosti obslužné rutiny HTTP v .NET.
Použití zpracování prioritní fronty: Zpracování prioritní fronty dává vysokou prioritu určitým požadavkům. Fronty mají obvykle strukturu FIFO (first in, first out), ale můžete aplikaci aktualizovat a přiřazovat prioritu zprávám, které přidá do fronty. Pomocí této funkce můžete určit prioritu kritických toků a uživatelů. Další informace najdete v tématu Model Prioritní fronta.
Riziko: Vyvážení potřeb kritických toků s celkovým výkonem úlohy může být náročné. I když byste měli určit prioritu kritických toků, neměli byste zanedbávat nekritické toky. Celková efektivita výkonu úlohy závisí na všech tocích. Zanedbávané nekritické toky můžou vytvářet problémy, které mají vliv na všechny uživatele. Příliš mnoho šumu z nepotřebných položek ukradne pozornost kritickým položkám. Ale příliš malý hluk by mohl poškodit celou úlohu. Množství dat a počet výstrah by měly odpovídat těmto vyváženým prioritám.
Usnadnění Azure
Identifikace a monitorování toků: Azure poskytuje různá řešení, která vám pomůžou monitorovat výkon kritických toků ve vašich úlohách. Azure Monitor, protokoly Azure Monitoru a Aplikace Azure Insights jsou některé ze služeb, které nabízejí komplexní možnosti monitorování pro několik typů aplikací a úloh.
Optimalizace přidělení kapacity: Některé služby Azure podporují segmentaci prostředků, logickou segmentaci a techniky přidělování kapacity pro přidělování kapacity a prostředků kritickým tokům. Kritické toky můžete izolovat pomocí technik, jako je vytváření samostatných prostředků, zvýšení hustoty, použití virtualizace a kontejnerizace a explicitní přidělování prostředků kritickým tokům.
Některé služby Azure, například Azure API Management, poskytují integrované zásady pro omezování rychlosti. Azure poskytuje podrobné pokyny a ukázkovou implementaci vzoru návrhu omezení rychlosti.
Azure podporuje zpracování front s prioritou. Azure Functions poskytuje funkce řízené událostmi, které můžete aktivovat různými způsoby, včetně nové zprávy ve frontě nebo tématu. Kombinujte Azure Functions se službou Azure Queue Storage nebo Azure Service Bus a zpracovávat zprávy na základě jejich priority.
Související odkazy
- Model prioritní fronty
- Model omezování rychlosti
- Omezování rychlosti obslužné rutiny HTTP v .NET
- Azure API Management
- Azure Service Bus
Kontrolní seznam efektivity výkonu
Projděte si kompletní sadu doporučení.