Kompromisy z oblasti efektivity výkonu
Při návrhu úlohy zvažte kompromisy mezi optimalizací výkonu a dalšími aspekty návrhu, jako je efektivita nákladů, provozuschopnost, spolehlivost a zabezpečení.
Efektivita výkonu vs. nákladová efektivita
Náklady se mohou zvýšit v důsledku zvýšení výkonu. Tady je několik faktorů, které je třeba vzít v úvahu při optimalizaci výkonu a jejich vlivu na náklady:
Vyhněte se odhadu nákladů na úlohu při konzistentně vysokém využití. Ceny založené na spotřebě budou dražší než ekvivalentní zřízené ceny. Vyhlazením vrcholů získáte konzistentní tok výpočetních prostředků a dat. V ideálním případě k nalezení správné rovnováhy použijte ruční a automatické škálování. Škálování je obecně dražší než horizontální navýšení kapacity.
Náklady se škálují přímo s počtem oblastí. Umístění prostředků v levnějších oblastech by nemělo negovat náklady na příchozí a výchozím přenos dat v síti ani snížený výkon aplikace kvůli zvýšené latenci.
Každý cyklus vykreslování datové části spotřebovává výpočetní prostředky i paměť. Ukládáním do mezipaměti můžete snížit zatížení serverů a ušetřit díky předem naskenovanému úložišti a nákladům na šířku pásma. Úspory mohou být výrazné, zejména u služeb statického obsahu.
- I když ukládání do mezipaměti může snížit náklady, může to mít určité kompromisy z oblasti výkonu. Například ceny Azure Traffic Manager na základě počtu dotazů DNS (Domain Name Service), které se dostanou do služby. Tento počet můžete snížit ukládáním do mezipaměti a nakonfigurovat, jak často se mezipaměť aktualizuje. Pokud se spoléháte na mezipaměť, která není často aktualizovaná, způsobí to delší dobu převzetí služeb při selhání uživateli, pokud koncový bod není k dispozici.
Použití vyhrazených prostředků pro dlouho běžící úlohy dávkového zpracování zvýší náklady. Zřízením spotových virtuálních počítačů můžete snížit náklady, ale připravte se na přerušení úlohy pokaždé, když Azure virtuální počítač vyřazení z Azure přeruší.
Informace o nákladech najdete v pilíři Optimalizace nákladů.
Efektivita výkonu vs. efektivita provozu
Při určování, jak efektivně škálovat úlohu tak, aby splňovala požadavky uživatelů, zvažte provozní procesy, které udržují aplikaci spuštěnou v produkčním prostředí. Pokud chcete dosáhnout efektivity provozu pomocí těchto procesů, zajistěte, aby nasazení zůstala spolehlivá a předvídatelná. Měla by být automatizovaná, aby se snížilo riziko lidské chyby. Měl by to být rychlý a rutinní proces, aby nasazení nezpomalovala vydání nových funkcí nebo oprav chyb. Stejně důležité je, abyste v případě problémů s aktualizací mohli rychle vrátit změny nebo se posunout vpřed.
Automatizované testování výkonnosti
Jedním z provozních procesů, které vám můžou pomoct identifikovat problémy s výkonem v rané fázi, je automatizované testování výkonnosti. Dopad závažného problému s výkonem může být stejně závažný jako chyba v kódu. Automatizované funkční testy můžou bránit chybám aplikací, ale nemusí detekovat problémy s výkonem. Definujte přijatelné cíle výkonu pro metriky, jako je latence, doba načítání a využití prostředků. Do kanálu verze zahrpište automatizované testy výkonnosti, abyste se ujistili, že aplikace splňuje tyto cíle.
Rychlá sestavení
Dalším procesem provozní efektivity je zajistit, aby byl váš produkt v nasaditelném stavu prostřednictvím rychlého procesu sestavení. Sestavení poskytují důležité informace o stavu vašeho produktu.
Následující funkce vám můžou pomoct rychleji sestavovat:
- Vyberte správnou velikost virtuálních počítače.
- Ujistěte se, že se buildový server nachází v blízkosti zdrojů a cílového umístění, aby mohl významně zkrátit dobu trvání sestavení.
- Servery pro sestavování se škálování na více velikosti.
- Optimalizace sestavení
Vysvětlení těchto položek najdete v tématu Sestavení.
Monitorování optimalizace výkonu
Při zvažování vylepšení výkonu by se mělo monitorovat, aby se ověřilo správné spuštění aplikace. Monitorování by mělo zahrnovat aplikaci, platformu a síť. Další informace najdete v tématu Monitorování.
Provozní aspekty najdete v pilíři Efektivita provozu.
Efektivita výkonu vs. spolehlivost
Předem si uvědomujeme, že dojde k selhání. Místo snahy kompletně zabránit selháním je cílem minimalizace dopadu selhání jedné komponenty.
Spolehlivé aplikace jsou odolné a vysoce dostupné. Odolnost umožňuje systémům elegantně se zotavit ze selhání a nadále fungují s minimálními výpadky a ztrátou dat před úplným obnovením. Systémy s hašování běží tak, jak jsou navržené v dobrém stavu bez významných výpadků. Zachování spolehlivosti vám umožní zachovat efektivitu výkonu.
Mezi faktory, které je třeba vzít v úvahu z hlediska spolehlivosti, je třeba vzít v úvahu:
Model Jistič můžete použít k zajištění stability během zotavení systému při selhání a minimalizuje dopad na výkon.
Implementací modelu CQRSdosáhnete úrovní škálování a výkonu potřebných pro vaše řešení oddělením rozhraní pro čtení a zápis.
Často můžete dosáhnout vyšší dostupnosti přijetím modelu konečné konzistence. Další informace o výběru správného úložiště dat najdete v tématu Použití nejlepšího úložiště dat pro úlohu.
Pokud vaše aplikace vyžaduje více účtů úložiště, než je aktuálně k dispozici ve vašem předplatném, vytvořte nové předplatné s dalšími účty úložiště. Další informace najdete v tématu Škálovatelnost a cíle výkonnosti.
Vyhněte se škálování nahoru nebo dolů. Místo toho vyberte vrstvu a velikost instance, které splňují vaše požadavky na výkon při typickém zatížení, a pak škálování instancí na více instancí pro zpracování změn objemu provozu. Škálování nahoru a dolů může aktivovat restartování aplikace.
Vytvořte samostatný účet úložiště pro protokoly. Nepoužívejte stejný účet úložiště pro protokoly a data aplikací. To pomáhá zabránit protokolování ve snížení výkonu aplikace.
Monitorujte výkon. Pomocí služby sledování výkonu, jako je New Relic nebo Přehledy monitorování výkonu a chování aplikací při zatížení. Monitorování výkonu poskytuje přehled o aplikaci v reálném čase. Umožňuje diagnostikovat problémy a provádět analýzu hlavní příčiny selhání.
Informace o odolnosti, dostupnosti a spolehlivosti najdete v pilíři Spolehlivost.
Efektivita výkonu vs. zabezpečení
Pokud je výkon tak nízký, že data jsou nepoužitelná, můžete je považovat za nepřístupná. Z hlediska zabezpečení musíte udělat cokoli, abyste měli jistotu, že vaše služby mají optimální provozuschopnost a výkon.
Oblíbenou a efektivní metodou pro zvýšení dostupnosti a výkonu je vyrovnávání zatížení. Vyrovnávání zatížení je metoda distribuce síťového provozu mezi servery, které jsou součástí služby. Pomáhá výkon, protože režie procesoru, sítě a paměti pro obsluhu požadavků se distribuuje na všechny servery s vyrovnáváním zatížení. Doporučujeme využít vyrovnávání zatížení, kdykoli je to možné, a podle potřeby pro vaše služby. Informace o scénářích vyrovnávání zatížení najdete v tématu Optimalizace provozuschopnosti a výkonu.
Zvažte tato bezpečnostní opatření, která mají vliv na výkon:
Aby se optimalizoval výkon a maximalizovala dostupnost, měl by se kód aplikace nejprve pokusit získat z mezipaměti bezobslužné přístupové tokeny OAuth, než se pokusí získat token od zprostředkovatele identity. OAuth je technologický standard, který umožňuje bezpečně sdílet informace mezi službami bez odhalení vašeho hesla.
Ujistěte se, že integrováváte kritické výstrahy zabezpečení a protokoly do systémů SIEM (informace o zabezpečení a správa událostí), aniž byste zaváděli velké množství dat s nízkou hodnotou. To může zvýšit náklady na SIEM, falešně pozitivní výsledky a snížit výkon. Další informace najdete v tématu Určení priority výstrah a integrace protokolu.
Pomocí služby Azure AD Připojení synchronizujte místní adresář s cloudovým adresářem. Existují faktory, které ovlivňují výkon služby Azure AD Připojení. Ujistěte se, Připojení služba Azure AD má dostatek kapacity, aby podceňoval výkon systémů před překážkami zabezpečení a produktivity. Velké nebo složité organizace (organizace, které zřizují více než 100 000 objektů) by měly postupovat podle doporučení pro optimalizaci azure AD Připojení implementaci.
Pokud chcete získat přístup k informacím o výkonu v reálném čase na úrovni paketů, nastavte výstrahy pomocí zachytávání paketů.
Další aspekty zabezpečení najdete v pilíři Zabezpečení.