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í.