Sdílet prostřednictvím


Strategie architektury pro průběžnou optimalizaci výkonu

Platí pro toto doporučení kontrolního seznamu efektivity výkonu architektury Azure Well-Architected:

PE:12 Průběžně optimalizujte výkon. Zaměřte se na komponenty, které v průběhu času zobrazují snížení výkonu, jako jsou databáze a síťové funkce.

Tato příručka popisuje doporučení pro průběžnou optimalizaci výkonu. Průběžná optimalizace výkonu je proces neustálého monitorování, analýzy a zlepšení efektivity výkonu. Efektivita výkonu se přizpůsobuje nárůstům a poklesům poptávky. Optimalizace výkonu musí být probíhající aktivitou během celé životnosti úlohy. Výkon úloh často snižuje nebo se v průběhu času mění a mezi faktory, které je potřeba zvážit, patří změny ve vzorech využití, poptávce, funkcích a technickém dluhu.

Definice

Term Definition
Vrstvení dat Strategie úložiště, která zahrnuje kategorizaci dat na základě četnosti přístupu a jejich ukládání na úrovni úložiště.
Technický dluh Kumulované neoptimální volby návrhu nebo klávesové zkratky záměrně prováděné během procesu vývoje za účelem rychlejšího doručování kódu.
Time-to-live Mechanismus, který nastaví čas vypršení platnosti dat.

Efektivita výkonu spočívá v tom, že kapacita úloh odpovídá skutečnému využití. Úloha, která přetíží, je stejně problematická jako úloha, která podperformuje. Kompromisy se liší. Nadperformance má vliv na optimalizaci nákladů. Nízký výkon má vliv na uživatele. Klíčem k efektivitě výkonu je monitorování, úprava a testování v průběhu času. Potřebujete pravidelně kontrolovat metriky výkonu a podle potřeby provádět úpravy, aby úloha byla efektivní. K dosažení výkonnostních cílů se vyžaduje testování všech změn před a po implementaci.

Vývoj jazykové verze výkonu

Jazyková verze výkonu je prostředí, ve kterém se očekává průběžné vylepšování a tým se učí z produkčního prostředí. Optimalizace výkonu vyžaduje specializované dovednosti. Týmy úloh potřebují správné dovednosti a myšlení, aby optimalizovaly výkon, aby splňovaly nárůsty a poklesy poptávky. Musíte také přidělit čas na podporu požadovaného monitorování a nápravy problémů s výkonem při jejich vzniku. Tyto týmy potřebují jasná očekávání. Například výkonnostní cíle, směrné plány a prahové hodnoty odchylek (jak daleko od směrného plánu je přijatelné), musí být vysoce viditelné a socializované.

Kompromis: Průběžné optimalizace výkonu vyžadují tým, který má správné dovednosti a čas najít a opravit problémy s výkonem. Vyhrazení pracovníků na výkon zvyšuje provozní náklady. Pokud máte omezené personální prostředky, může průběžná optimalizace výkonu trvat delší dobu od jiných provozních úloh.

Vyhodnocení nových funkcí platformy

Vyhodnocení nových funkcí platformy zahrnuje zkoumání nových funkcí a nástrojů platformy, které můžou zlepšit efektivitu výkonu, jako jsou optimalizovaná řešení úložiště, mechanismy ukládání do mezipaměti nebo nástroje pro správu prostředků. Nové funkce platformy můžou otevírat cesty pro zvýšení efektivity výkonu. Udržujte platformu a nástroje up-to-date, abyste měli jistotu, že používáte nejnovější inovace a osvědčené postupy. Konzistentně monitorujte metriky zpětné vazby a výkonu z těchto nových doplňků a upřesněte svůj přístup.

Stanovení priority optimalizace

Proaktivně optimalizace výkonu znamená proaktivní opatření ke zlepšení a zvýšení výkonu úlohy dříve, než dojde k problémům s výkonem. Použití proaktivních opatření zahrnuje identifikaci potenciálních kritických bodů, monitorování metrik výkonu a implementaci optimalizací, aby úloha fungovala efektivně a splňovala požadované cíle výkonu. Na základě analýzy deteriorace komponent, kritických toků a technického dluhu můžete implementovat optimalizace výkonu specifické pro každou oblast. Vylepšení můžou zahrnovat změny kódu, úpravy infrastruktury nebo aktualizace konfigurace.

Stanovení priority odstrašujících komponent

Úloha často obsahuje komponenty, jako jsou databáze a síťové komponenty, které jsou náchylné ke snížení výkonu v průběhu času. S tím, jak se zatížení vyvíjí a mění se vzorce použití, tyto změny často ovlivňují výkon jednotlivých komponent v úloze. Zvýšená data v databázích můžou vést k delší době spouštění dotazů a pomalejšímu načítání dat. Změny ve vzorech použití můžou vést k neoptimálnímu návrhu dotazů. Dotazy, které byly jednou efektivní, se můžou stát neefektivními při vývoji úloh. Neefektivní dotazy můžou spotřebovávat nadměrné prostředky a snížit výkon databáze. Zvýšené využití úloh může vést k vyššímu síťovému provozu, což způsobuje problémy se zahlcením a latencí.

Je důležité neustále usilovat o optimalizaci výkonu těchto komponent. Proaktivně identifikujte a vyřešte problémy s výkonem ve vaší úloze. Když upřednostníte známé deteriorační komponenty, můžete proaktivně řešit potenciální problémy s výkonem a zajistit hladký provoz úloh. Může zahrnovat implementaci technik ladění výkonu, optimalizaci přidělování prostředků nebo upgrade hardwarových nebo softwarových komponent podle potřeby.

Stanovení priority kritických toků

Nejdůležitějšími a vysoce prioritními procesy nebo pracovními postupy v úloze jsou kritické toky. Stanovením priority těchto kritických toků zajistíte, že nejdůležitější části úlohy jsou optimalizované pro výkon. Znalost toků, které jsou kritické, pomáhá určit prioritu úsilí o optimalizaci. Optimalizace efektivity výkonu nejdůležitějších oblastí vaší aplikace poskytuje nejvyšší návratnost investic. Měli byste monitorovat kritické toky a nejoblíbenější stránky. Hledejte způsoby, jak je zefektivnit.

Automatizace optimalizace výkonu

Automatizace může eliminovat opakované a časově náročné ruční procesy, což umožňuje jejich efektivní provedení. Automatizace snižuje riziko lidské chyby a zajišťuje konzistenci při spouštění úloh optimalizace. Automatizací těchto úkolů můžete také uvolnit lidi, aby se mohli soustředit na složitější aktivity a aktivity, které přidávají hodnotu. Automatizaci můžete použít u různých úloh, jako je testování výkonu, nasazení a monitorování:

  • Automatizované testování výkonu: K simulaci různých úloh a scénářů použijte automatizované nástroje pro testování výkonu, jako je JMeter, K6 nebo Selenium.

  • Automatizované nasazení: Implementujte automatizované procesy nasazení, abyste zajistili konzistentní nasazení bez chyb. K automatizaci procesu nasazení použijte nástroje CI/CD. Tyto nástroje vám můžou pomoct identifikovat kritické body výkonu při testování na koncových bodech, kontrolovat stavy HTTP a dokonce ověřovat kvalitu a varianty dat.

  • Monitorování a upozorňování: Nastavte automatizované systémy monitorování a upozorňování, které budou průběžně monitorovat metriky výkonu a zjišťovat případné odchylky nebo anomálie. Když se zjistí problémy s výkonem, můžou se aktivovat automatizovaná upozornění, která upozorní příslušné týmy nebo jednotlivce.

  • Řízení incidentů: Implementujte automatizovaný systém správy incidentů, který může přijímat výstrahy, vytvářet lístky a přiřazovat lístky příslušným týmům pro řešení. Tyto kroky pomáhají zajistit, aby se problémy s výkonem rychle vyřešily a přiřadily správným prostředkům.

  • Automatizovaná diagnostika: Vývoj automatizovaných diagnostických nástrojů nebo skriptů, které můžou analyzovat data o výkonu a identifikovat původní příčiny problémů s výkonem. Tyto nástroje můžou pomoct určit konkrétní oblasti nebo součásti systému, které způsobují problémy s výkonem.

  • Automatizované akce nápravy: Definujte a implementujte automatizované akce nápravy, které se dají aktivovat při zjištění konkrétních problémů s výkonem. Mezi tyto akce patří restartování služeb, úprava přidělení prostředků, vymazání mezipamětí nebo implementace jiných technik optimalizace výkonu.

  • Samoopravené systémy: Zabudujte do systému možnosti samoopravení tím, že automatizuje proces obnovení pro známé problémy s výkonem. Tato funkce může zahrnovat automatickou opravu nebo úpravu konfigurace systému za účelem obnovení optimálního výkonu.

Řešení technického dluhu

Technický dluh odkazuje na kumulované neoptimální volby návrhu nebo zástupce provedené během procesu vývoje, které můžou ovlivnit výkon. Technický dluh, nejasný kód a příliš složité implementace mohou ztížit dosažení efektivity výkonu. Řešení technického dluhu zahrnuje identifikaci a řešení těchto problémů, aby se zlepšil celkový výkon a udržovatelnost úlohy. Tato práce může zahrnovat refaktoring kódu, optimalizaci databázových dotazů, vylepšení návrhu architektury nebo implementaci osvědčených postupů. Možná jste zavedli technický dluh, abyste splnili konečný termín, ale při optimalizaci efektivity výkonu v průběhu času potřebujete řešit technický dluh.

Optimalizace databází

Nepřetržitá optimalizace databází zahrnuje identifikaci a implementaci optimalizací, aby databáze mohly zpracovávat zatížení, poskytovat rychlé doby odezvy a minimalizovat využití prostředků. Díky pravidelné optimalizaci databází můžete zlepšit výkon aplikací, snížit prostoje a vylepšit celkový uživatelský komfort.

  • Optimalizace databázových dotazů: Špatně napsané příkazy SQL můžou snížit výkon databáze. Neefektivní podmínky JOIN můžou způsobit nepotřebné zpracování dat. Složité poddotazy, vnořené dotazy a nadměrné funkce můžou snížit rychlost spuštění. Dotazy, které načítají příliš mnoho dat, by se měly přepsat. Měli byste identifikovat nejčastější nebo kritické databázové dotazy a optimalizovat je. Optimalizace pomáhá zajistit rychlejší dotazy.

  • Udržovat indexy: Vyhodnoťte strategii indexování, abyste měli jistotu, že jsou indexy správně navržené a udržované. Údržba indexů zahrnuje identifikaci nepoužívaných nebo redundantních indexů a vytváření indexů, které odpovídají vzorům dotazu. Databázové indexy pomáhají zrychlit operace načítání dat. U relačních databází je potřeba monitorovat fragmentaci indexů. Indexy byste měli pravidelně znovu sestavit nebo znovu uspořádat. V případě nerelačních databází musíte pro úlohu vybrat správné zásady indexování. Pokud je k dispozici, použijte automatické ladění databází. Mezi tyto funkce patří automatické vytváření chybějících indexů, vyřazení nepoužívaných indexů a oprava plánu. Další informace naleznete v tématu Údržba indexů za účelem zlepšení výkonu.

  • Kontrola návrhu modelu: Zkontrolujte datový model a ujistěte se, že ho optimalizujete pro konkrétní požadavky aplikace. Zlepšení výkonu dotazů a načítání dat může zahrnovat denormalizaci, dělení nebo jiné techniky.

  • Optimalizace konfigurace databáze: Optimalizujte nastavení konfigurace databáze, jako je přidělení paměti, vstupně-výstupní operace disku a nastavení souběžnosti, abyste maximalizovali výkon a využití prostředků.

Optimalizace efektivity dat

Optimalizace efektivity dat je proces zajištění toho, aby se data ukládaly, zpracovávaly a přistupovaly co nejefektivnějším způsobem. Vrstvení dat a použití hodnoty TTL (Time to Live) jsou techniky, které lze použít k optimalizaci efektivity dat. Tyto techniky můžete použít v různých scénářích úložiště dat, jako jsou databáze, systémy souborů nebo úložiště objektů.

  • Použití vrstvení dat: Vrstvení dat zahrnuje kategorizaci dat na základě jejich důležitosti nebo frekvence přístupu a ukládání dat do různých vrstev odpovídajícím způsobem. Nastavení vrstvení dat umožňuje efektivnější využití prostředků úložiště a zvýšení výkonu. Často přístupná nebo kritická data se dají ukládat ve vysoce výkonných úrovních, zatímco méně často přístupná nebo méně kritická data se dají ukládat do nižších úrovní. Cílem je zkontrolovat využití dat v průběhu času, abyste měli jistotu, že jsou data ve správné úrovni. Při změně priorit dat by se data měla přesouvat z jedné vrstvy do druhé.

  • Implementace hodnoty time-to-live: Time-to-Live je mechanismus, který nastavuje čas vypršení platnosti dat. Funkce Time-to-Live umožňuje automatické odstranění nebo archivaci dat po určité době, což snižuje požadavky na úložiště a zlepšuje správu dat. Nastavením vhodného času naživo můžete odebrat nepotřebná data, uvolnit prostor úložiště a zlepšit celkovou efektivitu. Data relací, dočasné soubory a data mezipaměti jsou častými cíli pro data typu time-to-live. Položky databáze můžou obsahovat také položky typu time-to-live.

Riziko: Problémy s výkonem můžou způsobit příliš krátké časové období.

Usnadnění azure

Automatizace optimalizace výkonu: Azure Advisor poskytuje automatická doporučení k výkonu na základě telemetrie úloh. Tato doporučení byste měli pravidelně kontrolovat a řešit. Azure Monitor poskytuje přehled o výkonu systému v reálném čase a umožňuje nastavit upozornění na základě konkrétních metrik výkonu. Azure Log Analytics poskytuje automatizovanou diagnostiku a analýzu shromážděných protokolů a metrik. Nástroje, jako je Azure Application Insights, poskytují přehledy a doporučení pro optimalizaci výkonu.

K automatizaci nápravy použijte automatizační nástroje nebo skripty k automatickému spuštění akcí nápravy při aktivaci výstrah. Můžete použít řešení Azure Automation, Azure Functions nebo vlastní automatizace.

Azure umožňuje testování výkonu pro simulaci různých uživatelských scénářů a úloh. Automatizované testování vám může pomoct identifikovat kritické body výkonu a odpovídajícím způsobem optimalizovat systém. Nástroje, jako je Azure DevOps, můžou automatizovat testování výkonu.

Optimalizace databází: Řada produktů SQL obsahuje řadu integrovaných funkcí , které umožňují monitorovat a opravovat výkon databáze SQL. Tyto funkce byste měli použít k zajištění výkonu databáze. Azure SQL Database má funkci automatického ladění , která nepřetržitě monitoruje a vylepšuje dotazy. Tuto funkci byste měli použít k automatickému vylepšování dotazů SQL.

Zásady indexování můžete přizpůsobit pomocí funkcí služby Azure Cosmos DB. Přizpůsobte zásady tak, aby splňovaly požadavky na výkon vaší úlohy.

Optimalizace efektivity dat: Vrstvení dat umožňuje ukládat data do různých vrstev na základě četnosti a důležitosti přístupu. Pomáhá optimalizovat náklady na úložiště a výkon. Azure poskytuje různé úrovně úložiště, jako jsou horké, studené a archivní úrovně pro data objektů blob. Horké úrovně jsou optimalizované pro často užitá data, studené úrovně jsou pro zřídka využívaná data a archivní úrovně jsou určené jen zřídka. Pomocí úrovně přístupu k úložišti, která je pro vaše data nejvhodnější, můžete zajistit efektivní ukládání a načítání dat.

Kontrolní seznam efektivity výkonu

Projděte si kompletní sadu doporučení.