Dosažení a udržení výkonu
Chraňte před snížením výkonu v době, kdy se systém používá a jak se vyvíjí. |
---|
Vývoj není jednorázovým úsilím. Jedná se o probíhající proces. Při změně funkcí můžete očekávat změny výkonu. Vzory a profily uživatelů mají odchylku, a to i změny od optimalizací v jiných pilířích Azure Well-Architected. Jakákoli změna může zatížit prostředky úloh.
Zabezpečte systém před změnami, aby se nepřesunul zpět na výkonnostní cíle. Integrace testování a monitorování v procesu vývoje Otestujte výkon systému v produkčním prostředí s reálným zatížením a simulujte toto zatížení pomocí automatizovaného testování před produkčním prostředím. V oboupřípadechch
V průběhu životního cyklu vývoje proveďte různé typy testů v různých fázích. V počátečních fázích otestujte testování konceptu a ujistěte se, že výsledky výkonu nejsou zcela neočekávané. Jak vývoj postupuje, proveďte ruční testy s nízkým úsilím za účelem stanovení srovnávacích testů. Ve fázi sestavení začněte vyvíjet automatizované rutinní testy výkonu, které vyhodnocují latenci, úrovně zatížení, kapacitu zatížení a další charakteristiky definované v testovacích plánech.
Monitorování musí být nedílnou součástí tohoto úsilí, nikoli izolované cvičení. Uvidíte, jak systém a jeho prostředky v průběhu času fungují. Potom je můžete doladit tak, aby maximalizovaly jejich hodnotu a zajistily, že budou i nadále vyhovovat standardům výkonu.
Mějte na paměti, že cíle výkonu se v průběhu času liší v reakci na změny. Aktualizujte model výkonu na základě testovaných a monitorovaných metrik. Jasně značí zvýšení, snížení nebo žádný vliv na výkon toků.
Vždy buďte připraveni znovu projednat a resetovat očekávání u obchodních zúčastněných stran.
Ukázkový scénář
Řešení událostí Společnosti Contoso nabízí produkt, pomocí kterého můžou pracovníci pro vstup do akce skenovat lístky na mobilním zařízení a rychle povolit vstup do místa konání lístku pro ty, kteří mají oprávnění. Systém je k dispozici v zcela offline režimu i jako verze připojená ke cloudu pro místa, kde se obáváte duplikace lístků. Offline režim je vysoce výkonný, ale online režim chybí jeho výkonnostní cíle. Vývojový tým nedávno investoval několik vývojových cyklů, aby na něm fungoval, a nyní je výkon mnohem lepší a plní cíle. Obchodní zúčastněné strany by chtěly brzy rozšířit zákaznickou základnu, aby podporovaly větší místa.
Testování výkonu při vývoji
Formalizujte testy výkonnosti jako brány kvality, které mohou schválit nebo zamítnout povýšení vydané verze a konečné nasazení do produkčního prostředí.
Tyto kontrolní body zajišťují, že každá fáze nasazení splňuje požadované standardy výkonu, než přejdete k dalšímu kroku. Kontrolní body pomáhají zabránit neúmyslné regresi výkonu. Pokud je například výkon výrazně nižší než očekávání, můžete vydání zablokovat, dokud se nezlepšují.
Výzva společnosti Contoso
- Tým investoval značné množství času a úsilí k dosažení přijatelného výkonu pro online verzi aplikace, ale v současné době nemá žádný systém, aby se zabránilo regresi.
- Další funkcí, kterou plánují přidat, je možnost, aby se místo přihlásilo k zobrazení obrázku účastníka spolu s hledáním dalšího ověření. Existuje riziko, že další vyhledávání fotek a stažení zpomalí proces.
- Bez formálního procesu existuje riziko, že výkon online i offline verzí může být negativně ovlivněn dalšími funkcemi a mohou spadat pod své cíle.
Použití přístupu a výsledků
- Tým integruje automatizované testy výkonu do kanálu buildu. Implementací přísných kritérií "go/no-go" založených na výkonu v kanálu buildu má tým větší jistotu, že nová funkce nebude vydána s regresí výkonu.
- Tým byl moudrý, aby tento test implementoval, protože zachytil chybu v nejnovější verzi buildu. Chyba přinutila aplikaci, aby se pokusila připojit k internetu, aby stáhla obrázek, když byl skener nastavený na offline režim, což způsobilo vypršení časového limitu při každé kontrole lístku. Zachycení této chyby pomocí automatizovaného testování umožnilo týmu opravit chybu před vydáním nové verze.
Optimalizace prostřednictvím pozorovatelnosti
Nastavte opakovatelný proces pro monitorování skutečných transakcí v produkčním prostředí a odchylek oproti cílům výkonu. Kromě toho používejte syntetické transakce v produkčním prostředí a nastavte výstrahy monitorování na regresi výkonu.
Chcete získat přehled o skutečném výkonu vašeho systému v reálném světě, který se nepodařilo simulovat prostřednictvím testů. Pak můžete proaktivně identifikovat problémy a oblasti zlepšení, jako jsou potenciální kritické body, nedostatečně využité prostředky a další obavy.
Výzva společnosti Contoso
- Během události, kdy používají online ověření lístku, se back-endový systém silně používá.
- Existuje zavedený systém APM (Application Performance Monitoring), ale nebyl použit k monitorování stavu produkčních transakcí.
Použití přístupu a výsledků
- Tým se rozhodl přijmout aktualizované procesy, aby lépe zaznamenával metriky stavu:
- Konfigurují upozorňování na základě percentilů výkonu a pro odlehlé hodnoty výkonu. Žádná upozornění nenaznačují, že systém provádí přijatelné rozsahy pro většinu kontrol lístků.
- Po dokončení offline události se telemetrie pro kontroly lístků nahraje v dávce a tyto metriky také procházejí procesem, aby se vyhledaly odchylky od přijatelného výkonu.
- Tým také implementuje syntetické testování transakcí za účelem rozšíření monitorování výkonu. Vzhledem k tomu, že téměř všechny události probíhají o víkendech a večer, tým používá syntetické testování transakcí v průběhu týdne k vygenerování konzistentnějšího standardního výkonu.
Inteligentní zpracování změn úloh
Řešení eroze výkonu při nárůstu využití, změně funkcí a shromažďování dat v průběhu času za účelem zajištění výkonu. Resetujte očekávání a vytvořte nové cíle, pokud vyladění přináší pouze krátkodobé výhody.
Přijetím tohoto přístupu můžete zachovat stav výkonu před tím, než se degradace vyvine do problémů, které negativně ovlivňují uživatelské prostředí nad rámec přijatelného rozsahu.
Změna cílů resetuje model výkonu a neztrácíte čas při optimalizaci systému, který už dosáhl své kapacity.
Výzva společnosti Contoso
- Prodejní tým do systému agresivně nasadí nové místa konání událostí. Obchod je dobrý.
- Systém monitorování úloh si začal všimnout, že rozpočet výkonu se postupně sní, a to i bez zavedení nových funkcí.
- Bez změny může tato trajektorie vést k nepřijatelné regresi výkonu, což by vedlo k ohrožení výpadku, pokud dojde k incidentu.
Použití přístupu a výsledků
- Tým si uvědomuje, že jakmile více zákazníků onboarduje, mechanismus vyhledávání dat pro online události provádí velmi rozsáhlé prohledávání dat pro mnoho dotazů.
- Některé optimalizace dotazů pomohly udržet zvýšené využití před tím, než způsobí další škody. V nadcházejících měsících tým plánuje rozdělit různé události do různých datových oddílů, aby snížil potřebu prohledávání dotazů. To bude podporovat průběžné horizontální navýšení kapacity úlohy.
- Také si uvědomují, že mohou dále optimalizovat systém tak, aby se zvětšovali odebráním dat lístků ze starých událostí. Hledání starých událostí není něco, co by měl systém ověřování lístku udělat, aby bylo možné data přesunout do úložiště vyhrazeného pro vytváření sestav a historické vyhledávání.