Principy návrhu efektivity výkonu

Efektivita výkonu je schopnost vaší úlohy přizpůsobit se změnám požadavků. Úloha musí být schopná zvládnout zvýšení zatížení, aniž by to ohrozilo uživatelské prostředí. Naopak , když dojde ke snížení zatížení, musí úloha šetřit své prostředky. Důležitým faktorem je kapacita, která označuje dostupnost prostředků (procesor a paměť).

Návrh úloh by neměl spoléhat jen na předem zřízenou kapacitu, která zaručuje výkon až do určitého limitu. Pokud je tento limit překročen, může u úlohy dojít k problémům s výkonem nebo dokonce k výpadkům. Pokud je zatížení pod tímto limitem, prostředky dál běží zbytečně a účtují se náklady.

Potřebujete komplexní strategii k udržení výkonnostních cílů v průběhu času. Aspekty výkonu by neměly být domýšlejte v procesu návrhu, ale je potřeba je vyřešit, když dojde k problémům v produkčním prostředí. Místo toho si osvojit způsob myšlení, ve kterém je výkon klíčovým aspektem od počátečních fází návrhu. Nejprve sestavte systém bez konkrétních cílů výkonu. Odsud ale otestujte a změřte výkon v každé fázi vývoje, abyste zajistili pokrok a efektivitu. Průběžná optimalizace těchto cílů v průběhu celého procesu a začlenění poznatků získaných z výroby může výrazně zmírnit potenciální problémy předem.

Tyto principy návrhu vám můžou pomoct vytvořit strategii pro správu kapacity prostředků tak, aby dostatečně splňovala vaše obchodní požadavky na očekávané využití. Omezte také plýtvání mimo špičku. Jakmile se rozhodnete pro strategii, upevněte svůj návrh pomocí kontrolního seznamu Efektivita výkonu.

Efektivita výkonu spočívá v efektivním využití prostředků úloh. Bez dobré strategie byste nemuseli být schopni předvídat a vyhovět požadavkům uživatelů. Možná se budete muset uchylovat k přístupu s dlouhodobým prognózováním a předem zřízenou kapacitou, která neumožňuje plně využít výhod vaší cloudové platformy.

Vyjednávání realistických výkonnostních cílů

Ikona cíle Je definováno zamýšlené uživatelské prostředí a existuje strategie pro vývoj srovnávacích testů a měření cílů podle předem stanovených obchodních požadavků.

Z hlediska výkonu je ideální mít k zahájení procesu návrhu dobře definované cíle výkonu. Abyste mohli tyto cíle nastavit, potřebujete mít dobrou představu o obchodních požadavcích a očekávané kvalitě služeb, kterou má úloha poskytovat. Definujte očekávání ve spolupráci s obchodními účastníky. Místo toho, abyste se zaměřovali jenom na technické metriky, určete přijatelné účinky klíčových toků na uživatelské prostředí.

Existuje cyklický závislost. Nemůžete měřit to, co jste nedefinované, a nemůžete definovat bez měření. Proto je také důležité měřit výkon úloh, dokud nedosáhnete uspokojivé definice přijatelné prahové hodnoty s kolektivní smlouvou.

Mezi cíli výkonu a spolehlivosti existuje silná korelace, která pomáhá určit kvalitu služby z hlediska výkonu, dostupnosti a odolnosti. Bez jasné definice je obtížné měřit, upozorňovat na výkon a testovat ho. Po stanovení cílů a identifikaci skutečných čísel prostřednictvím testování v průběhu času můžete implementovat automatizaci pro průběžné testování těchto cílů.

Při definování cílů na úrovni maker dodržujte osvědčené postupy, i když jsou přibližné nebo v rozsahu.

Přístup Výhody
Připravte se na efektivní vyjednávání tím, že pochopíte technické koncepty, prozkoumáte možnosti návrhu s dostupnou infrastrukturou a použijete výsledky z konkrétních experimentů, pokud jsou k dispozici.

Pomocí historických dat získáte přehled o vzorech využití a kritických bodech.

Přineste vhled z externích faktorů, jako jsou vstupy od analýz trhu, odborníků a oborových standardů.
Můžete dělat informovaná rozhodnutí na základě praktických přehledů.

Výkonnostní cíle se zaměřují na uživatelské prostředí založené na tom, co je možné, na osvědčených postupech v oboru a na aktuálních trendech na trhu.
Spolupracujte s vlastníky firmy , abyste porozuměli uživatelským slibům, pokud jde o kvalitu a dodržování právních předpisů, pokud je to možné.

Zachovejte si širokou perspektivu a v této fázi se vyhýbejte podrobným podrobnostem.

Buďte explicitní v tom, co představuje přijatelný výkon na základě investic.

Seznamte se s obchodním kontextem a očekávaným růstem.
Vyhnete se vytváření předpokladů, které nemusí být v souladu s obchodními cíli. To také vede k přehlednosti a motivaci v rámci týmu úloh.

Obchodní kontext funkčních a nefunkčních požadavků může odhalit změny návrhu v jiných pilířích Well-Architected Azure a pomoct vám s kompromisy.

Včasné definování parametrů pomáhá vyhnout se nákladům spojeným s možnými pozdějšími úpravami řešení.

Umožňuje zajistit, aby výkonnostní cíle pokrývaly budoucí projekce, abyste mohli sladit současné úsilí s dlouhodobými cíli.
Identifikujte toky úloh a určete jejich prioritu v diagramu architektury.

Definujte tolerance výkonu každého toku jako rozsah od aspiračního až po nepřijatelný výkon.

Vyhodnoťte vstupní a výstupní body pro každý tok s ohledem na důležitost cesty, frekvenci využití a intenzitu architektury.
Stanovením priority toků můžete prostředky zaměřit na kritické oblasti , které mají největší vliv na uživatelské a obchodní výsledky.

Když systém rozdělíte na jeho části a závislosti, pochopíte jejich funkci a vliv na výkon. Dozvíte se také o potenciálních problémech.

Pomáhá stanovit standardní hodnoty výkonu a řídit optimalizaci.
Zahájení vytváření modelu výkonu Zvažte, jestli vzorce využití vykazují sezónní nebo denní odchylky. Zohlášete náklady, provoz a důležitost firmy.

Pomocí oborových standardů můžete kvantifikovat metriky a metody agregace, například pomocí percentilů.

Vyhodnoťte očekávání poptávky a nabídky a omezení, která obchodní omezení vyplývají.

Začlenit perspektivy růstu.
Model výkonu poskytuje přehled o optimálním využití prostředků a pomáhá se strategickým plánováním.

Oborové standardy pomáhají s srovnávacími testy.

Budoucí kontrola pravopisu zajistí, aby výkonnostní cíle zůstaly relevantní a mohly se přizpůsobit změnám.

Návrh pro splnění požadavků na kapacitu

Ikona cíle Poskytnout dostatečnou nabídku pro řešení očekávané poptávky.

Je důležité proaktivně měřit výkon. Měření výkonu zahrnuje měření základních hodnot a předběžný přehled o tom, které součásti systému budou pravděpodobně představovat výzvy. Můžete toho dosáhnout bez provedení úplného testu výkonu nebo podrobné optimalizace. Provedením těchto počátečních kroků vytvoříte základ pro efektivní správu výkonu v rané fázi životního cyklu vývoje.

Prozkoumejte systém jako celek a nesoustředěte se na jednotlivé komponenty. V této fázi se vyhněte jemnému ladění. Podrobná vylepšení výkonu mají za následek kompromisy v jiných oblastech. S průběhem životního cyklu a zahájením testování přijetí uživatele nebo přechodem k produkčnímu prostředí můžete rychle zjistit, které oblasti vyžadují další optimalizaci.

Přístup Výhoda
Vyhodnoťte požadavky na elasticitu identifikovaných toků.

Prozkoumejte vzory návrhu , které je možné implementovat napříč technologickým zásobníkem, s ohledem na aplikaci a podkladovou výpočetní a datovou vrstvu.
U existujících komponent, které vyžadují větší kapacitu, a oblastí, ve kterých potřebujete další komponenty k distribuci zatížení, můžete definovat požadavky na škálovatelnost .

Víte o potenciálních kritických bodech v systému a návrhu kompenzačních ovládacích prvků, jako je přidání funkcí ukládání do mezipaměti pro snížení latence a zatížení systému.
Výběr správných prostředků napříč technologickým zásobníkem vám umožní dosáhnout výkonnostních cílů a integrovat se se systémem.

Zvažte funkce , které můžou splňovat požadavky na škálovatelnost.

Najděte správnou rovnováhu mezi přidělením prostředků a požadavky na systém, abyste mohli efektivně zvládnout neočekávané nárůsty.
Analýzou různých možností prostředků zajistíte, že každá komponenta přispívá k celkové funkčnosti a výkonu systému.

Můžete využít předdefinované funkce , které automaticky aktivují operace škálování.

Prostředky s správnou velikostí můžou vyhovět změnám v poptávce bez nadměrného zřizování, což vede k úsporám nákladů.
Plánování kapacity na základě poptávky a schopností vybraných prostředků k obohacení modelu výkonu

Pomocí technik prediktivního modelování můžete předpovídat očekávané změny kapacity, ke kterým může dojít při předvídatelných a neočekávaných změnách.

Definujte výkonnostní cíle , které lze převést na technické požadavky.
Prostředky můžete efektivně využívat a uspokojovat poptávku bez nadměrného zřizování, čímž se vyhnete zbytečným nákladům.

Rozumíte tomu, jak volby návrhu ovlivňují výkon.
Implementujte testování konceptu , které ověřuje technické požadavky a volby návrhu. Ověření konceptu je užitečné při ověřování návrhu , aby se zjistilo, jestli systém dokáže splnit výkonnostní cíle a jestli jsou tyto cíle realistické. Na základě očekávaného zatížení můžete ověřit, jestli očekávaná kapacita dokáže splnit výkonnostní cíle.

Ověřte také dopad voleb návrhu na náklady.
Zdokumentujte strategii testování výkonu.

Uveďte případy použití, různé metodologie a četnost testovacích plánů.

Definujte proces pro operaci nastíněnou plánem testu výkonnosti.

Určete prioritu testovacích případů v plánu a určete jejich prioritu. Zaměřte se na případy, které nabízejí cenné přehledy o výkonnostních cílech a sladění plánování kapacity.
Zajistíte, aby byly testovány správné aspekty systému.

Prostředky můžete přidělovat efektivně a provádět testy způsobem, který je v souladu s obchodními prioritami a požadavky.
Zdokumentujte strategii monitorování výkonu.

Vyhodnoťte metriky na různých úrovních abstrakce pro každý identifikovaný tok.
V průběhu vývojového cyklu můžete sledovat pokrok směrem k dosažení výkonnostních cílů.

Dosažení a udržení výkonu

Ikona cíle Chraňte se před snížením výkonu, když se systém používá a jak se vyvíjí.

Vývoj není jednorázovým úsilím. Je to průběžný proces. Očekávejte změny výkonu při změnách funkcí. Uživatelské vzory a profily se liší, dokonce i změny oproti optimalizacím v jiných pilířích azure Well-Architected. Jakákoli změna může zatížit prostředky úloh.

Chraňte systém před změnami , aby se nepřesunul zpět na výkonnostní cíle. Integrace testování a monitorování do procesu vývoje Otestujte výkon systému v produkčním prostředí se skutečným zatížením a simulujte toto zatížení pomocí automatizovaného testování před produkčním prostředím. V obou případech byste měli mít k dispozici postupy monitorování pro účely ověření.

V průběhu životního cyklu vývoje provádějte různé typy testů v různých fázích. V počátečních fázích otestujte testování konceptu, abyste se ujistili, že výsledky výkonu nejsou zcela neočekávané. V průběhu vývoje proveďte ruční testy s nízkým úsilím, abyste vytvořili srovnávací testy. Ve fázi sestavení začněte vyvíjet automatizované rutinní testy výkonnosti , které vyhodnocují latenci, úrovně zátěže, kapacitu zatížení a další charakteristiky definované v testovacích plánech.

Monitorování musí být nedílnou součástí tohoto úsilí, nikoli být izolovaným cvičením. Můžete se podívat, jak systém a jeho prostředky fungují v průběhu času. Pak je můžete vyladit, abyste maximalizovali jejich hodnotu a zajistili, že budou i nadále splňovat standardy výkonu.

Mějte na paměti, že výkonnostní cíle se v závislosti na změnách v průběhu času mění. Aktualizujte model výkonu na základě testovaných a monitorovaných metrik. Jasně uveďte zvýšený, snížený nebo žádný vliv na výkon toků.

Buďte vždy připraveni znovu projednávat a resetovat očekávání se zúčastněnými stranami z firmy.

Přístup Výhoda
Integrace rutinních testů výkonu v Azure Pipelines

Zvolte kanály, které můžou integrovat testy. Naopak zvolte testovací nástroje, které se dají integrovat do kanálů.
Automatizované testy šetří čas a poskytují konzistenci, která usnadňuje detekci regresí nebo vylepšení.

Tyto artefakty umožňují nepřetržité monitorování jakýchkoli odchylek nebo odchylek v průběhu času, takže můžete udržovat konzistentní výkon a kvalitu.
Formalizovat testy výkonu jako brány kvality , které můžou schválit nebo zamítnout povýšení vydané verze a konečné nasazení do produkčního prostředí. Tyto kontrolní body zajistí, že každá fáze nasazení splňuje požadované standardy výkonu , než přejdete k další. Kontrolní body pomáhají zabránit nechtěné regresi výkonu.

Pokud je například výkon výrazně pod očekáváním, můžete blokovat vydání, dokud nedojde k vylepšení.
Nastavte opakovatelný proces pro monitorování skutečných transakcí v produkčním prostředí a odchylek od výkonnostních cílů.

Používejte syntetické transakce v produkčním prostředí.

Nastavte upozornění monitorování na regrese výkonu.
Chcete získat přehled o skutečném výkonu systému při skutečné zátěži , kterou nebylo možné simulovat prostřednictvím testů.

Pak můžete proaktivně identifikovat problémy a oblasti zlepšení, jako jsou potenciální kritické body, nevyužité prostředky a další problémy.
Projděte si výsledky testů výkonnosti a monitorujte data a optimalizujte je, dokud nesplníte výkonnostní cíle.

Upřednostněte akce odvozené z těchto kontrol a přidejte je do backlogu pro plánované spuštění.
Na základě výsledků testů můžete zachytávat a porovnávat data a začít analyzovat trendy.

Vaše úsilí o optimalizaci se řídí daty.
Budujte programovací dovednosti, které se zaměřují na výkon.

Mít kódovací standardy, které jsou příkladem vzorů kódování řízených výkonem.
Kód, který nemá problémy s výkonem, může testovací cykly zefektivnit , protože testy se můžou zaměřit na významnější problémy.

Vzory kódování pomáhají vyhnout se přepracování a udržují váš styl kódování konzistentní.
Vyřešte erozi výkonu s tím, jak se zvyšuje využití, mění se funkce a v průběhu času se hromadí data, aby se udržel výkon.

Resetovat očekávání a stanovit nové cíle, pokud vyladění přináší pouze krátkodobé výhody.
Můžete zachovat stav výkonu před tím, než se snížení výkonu změní na problémy, 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 optimalizací systému, který už dosáhl své kapacity.

Zvýšení efektivity prostřednictvím optimalizace

Ikona cíle Vylepšete efektivitu systému v rámci definovaných výkonnostních cílů a zvyšte hodnotu úloh.

Cíle stanovené během počáteční fáze jsou založeny na přiměřené úrovni uživatelského prostředí s ohledem na různá omezení. Cíle byste měli znovu posoudit a upravit, aby se prostředí ještě více zlepšilo. K dalšímu vylepšení prostředí vyžaduje jasné porozumění tomu, jak se systém používá, jak se vyvíjí a jak se platforma nebo technologie v průběhu času mění. Cyklus monitorování, optimalizace, testování a nasazování je nepřetržitý proces.

Optimalizace efektivity umožňuje úloze pracovat s nižší spotřebou prostředků. Můžou způsobit, že úloha bude v nadměrném stavu s volnou kapacitou. Využijte tuto kapacitu ke zlepšení spolehlivosti systému. Eliminujte kapacitu, abyste zlepšili náklady na systém. Nebo můžete kapacitu znovu použít tak, aby podporovala nové funkce produktu u stávajících prostředků.

Když systém dosáhne efektivity, využijte příležitost nastavit a udržovat nové výkonnostní cíle.

Přístup Výhoda
Přidělení vyhrazených cyklů pro optimalizaci výkonu za účelem řešení nefunkčních požadavků a optimalizací ve funkčních oblastech Cílem této optimalizace jsou prostředky, kód, uchovávání dat, databázové dotazy a další. Můžete vytvořit kulturu optimalizace založené na výkonu. Zodpovídáte tým za proaktivní monitorování vzorců výkonu a také za vyladění aplikace.
Vylepšete architekturu o nové vzory návrhu a komponenty, které můžou zvýšit výkon způsoby, o kterých jste dříve kvůli omezenému času nebo rozpočtu neuvažovali. Nový návrh a komponenty mohou systém optimalizovat, což vede k lepšímu uživatelskému prostředí. Můžete například použít ukládání do mezipaměti nebo přidat komponentu sítě pro doručování obsahu.

Může to také vést k dlouhodobým nákladům.
Pomocí monitorovacích nástrojů můžete analyzovat historické trendy a identifikovat toky a cesty implementace kódu, kterým by optimalizace výkonu prospěla nejvíce. K tomuto účelu doporučujeme nástroje a profilátory pro monitorování výkonu aplikací (APM).

Identifikujte kritické cesty operací a další potenciální kritické body v systému.
Když identifikujete opakující se problematické oblasti, tým se může zaměřit tam, kde jsou zisky nejvyšší.
Získejte aktuální a udržujte si aktuální stav díky technologickým inovacím , které můžou zlepšit výkon.

Využijte nové verze vydané pro závislé architektury a knihovny.

Podobně používejte nové funkce pro prostředky platformy, které se aktualizují a opravují.
Přijetí nových technologií může být často motivačním faktorem k hledání příležitostí ke zlepšení.

Kód, který mohl být v minulosti pomalý, může být s těmito aktualizacemi rychlejší. Chcete také vědět, jak určité aktualizace negativně ovlivňují výkon.

Další kroky