Sdílet prostřednictvím


Principy návrhu klíčové úlohy

Metodologie klíčového návrhu je založena na pěti klíčových principech návrhu, které slouží jako kompas pro následná rozhodnutí o návrhu napříč kritickými oblastmi návrhu. Důrazně doporučujeme, abyste se s těmito zásadami seznámili, abyste lépe pochopili jejich dopad a kompromisy spojené s nedodržování předpisů.

Důležité

Tento článek je součástí série důležitých úloh Azure Well-Architected . Pokud tuto řadu neznáte, doporučujeme začít s tím , co je kriticky důležitá úloha?

Principy klíčového návrhu

Tyto klíčové principy návrhu rezonují a rozšiřují pilíře kvality architektury Azure Well-Architected– spolehlivost, zabezpečení, optimalizaci nákladů, efektivitu provozu a efektivitu výkonu.

Spolehlivost

Maximální spolehlivost – základní hledání nejspolehlivějšího řešení, zajištění správného pochopení kompromisů.

Princip návrhu Požadavky
Návrh aktivní/aktivní Pokud chcete maximalizovat dostupnost a dosáhnout regionální odolnosti proti chybám, měly by být komponenty řešení distribuovány do více Zóny dostupnosti a oblastí Azure pomocí modelu aktivního/aktivního nasazení, pokud je to možné.
Snížení poloměru výbuchu a izolace chyb Ve vysoce distribuovaném cloudovém prostředí s více tenanty, jako je Azure, se nelze vyhnout selhání. Díky předvídání selhání a korelovanému dopadu od jednotlivých komponent až po celé oblasti Azure je možné navrhnout a vyvíjet řešení odolným způsobem.
Sledování stavu aplikace Než bude možné zmírnit problémy, které mají vliv na spolehlivost aplikací, je potřeba je nejprve zjistit a pochopit. Monitorováním provozu aplikace vzhledem ke známému stavu v pořádku je možné detekovat nebo dokonce předpovědět problémy se spolehlivostí, což umožňuje rychlé nápravné opatření.
Automatizace jednotek Jednou z hlavních příčin výpadků aplikací je lidská chyba, ať už je to způsobeno nasazením nedostatečně otestovaného softwaru nebo chybnou konfigurací. Aby se minimalizovala možnost a dopad lidských chyb, je důležité usilovat o automatizaci ve všech aspektech cloudového řešení, aby se zlepšila spolehlivost. automatizované testování, nasazení a správa.
Návrh pro samoopravení Samoopravení popisuje schopnost systému automaticky řešit chyby prostřednictvím předdefinovaných nápravných protokolů připojených k režimům selhání v rámci řešení. Jedná se o pokročilý koncept, který vyžaduje vysokou úroveň vyspělosti systému s monitorováním a automatizací, ale měl by být aspirací od zrodu k maximalizaci spolehlivosti.
Předcházení složitosti Při návrhu řešení a všech provozních procesů se vyhněte zbytečné složitosti, která zvyšuje spolehlivost a efektivitu správy a minimalizuje pravděpodobnost selhání.

Efektivita výkonu

Udržitelný výkon a škálovatelnost – návrh pro zajištění škálovatelnosti napříč komplexním řešením bez kritických bodů výkonu.

Princip návrhu Požadavky
Návrh pro horizontální navýšení kapacity Horizontální navýšení kapacity je koncept, který se zaměřuje na schopnost systému reagovat na poptávku prostřednictvím horizontálního růstu. To znamená, že s rostoucím provozem se paralelně přidávají další jednotky prostředků, místo aby se zvětšují velikosti stávajících prostředků. Schopnost systémů zvládnout očekávaný a neočekávaný nárůst provozu prostřednictvím jednotek škálování je nezbytná pro celkový výkon a spolehlivost tím, že dále snižuje dopad selhání jednoho prostředku.
Automatizace pro hyperškálování Operace škálování v celém řešení by měly být plně automatizované, aby se minimalizoval dopad neočekávaných nebo očekávaných nárůstů provozu na výkon a dostupnost a aby se zajistilo, že doba potřebná k provádění operací škálování je srozumitelná a sladěná s modelem pro stav aplikace.
Průběžné ověřování a testování Automatizované testování by se mělo provádět v rámci procesů CI/CD, aby bylo možné řídit nepřetržité ověřování pro každou změnu aplikace. Součástí by mělo být zátěžové testování standardních hodnot výkonu se synchronizovaným experimentováním s chaosem, které ověří stávající prahové hodnoty, cíle a předpoklady a pomůže rychle identifikovat rizika z hlediska odolnosti a dostupnosti. Toto testování by se mělo provádět v přípravném a testovacím prostředí, ale také volitelně ve vývojových prostředích. Může být také užitečné spouštět v produkčním prostředí podmnožinu testů, zejména ve spojení s modrozeleným modelem nasazení, aby se před přijetím produkčního provozu ověřila nová razítka nasazení.
Snížení režijních nákladů pomocí spravovaných výpočetních služeb Použití spravovaných výpočetních služeb a kontejnerizovaných architektur výrazně snižuje průběžné administrativní a provozní režie při navrhování, provozu a škálování aplikací tím, že přesouvá nasazení a údržbu infrastruktury na poskytovatele spravovaných služeb.
Základní výkon a identifikace kritických bodů Testování výkonu s podrobnou telemetrií z každé součásti systému umožňuje identifikovat kritické body v systému, včetně komponent, které je potřeba škálovat vzhledem k jiným komponentám, a tyto informace by měly být začleněny do modelu kapacity.
Kapacita modelu Model kapacity umožňuje plánování úrovní škálování prostředků pro daný profil zatížení a navíc zpřístupňuje vzájemné fungování systémových komponent, což umožňuje plánování přidělování kapacity pro celý systém.

Efektivita provozu

Operace podle návrhu – navrženy tak, aby vydržely robustní a asertivní provozní správu.

Princip návrhu Požadavky
Volně svázané komponenty Volné propojení umožňuje nezávislé a na vyžádání testování, nasazení a aktualizace komponent aplikace a současně minimalizuje závislosti mezi týmy pro podporu, služby, prostředky nebo schválení.
Automatizace procesů sestavení a vydání Plně automatizované procesy sestavení a vydávání snižují třecí plochy a zvyšují rychlost nasazování aktualizací, což přináší opakovatelnost a konzistenci napříč prostředími. Automatizace zkracuje smyčku zpětné vazby od vývojářů, kteří tlačí na změny, aby získali přehled o kvalitě kódu, pokrytí testů, odolnosti, zabezpečení a výkonu, což zvyšuje produktivitu vývojářů.
Flexibilita pro vývojáře Automatizace kontinuální integrace a průběžného nasazování (CI/CD) umožňuje použití krátkodobých vývojových prostředí s životním cyklem vázaným na životní cyklus přidružené větve funkcí, což podporuje flexibilitu vývojářů a co nejdříve zajišťuje ověřování v rámci technického cyklu, aby se minimalizovaly technické náklady na chyby.
Kvantifikace provozního stavu Úplná diagnostická instrumentace všech komponent a prostředků umožňuje průběžné sledování protokolů, metrik a trasování, ale také usnadňuje modelování stavu za účelem kvantifikace stavu aplikace v souvislosti s požadavky na dostupnost a výkon.
Obnovení zkoušky a selhání praktického cvičení Plánování kontinuity podnikových procesů (BC) a zotavení po havárii (DR) a praktické postupy jsou nezbytné a měly by se provádět často, protože poznatky můžou iterativně vylepšovat plány a postupy pro maximalizaci odolnosti v případě neplánovaných výpadků.
Využití průběžného provozního vylepšování Stanovte prioritu rutinního zlepšování systému a uživatelského prostředí pomocí modelu stavu k pochopení a měření provozní efektivity pomocí mechanismů zpětné vazby, které týmům aplikací umožní iterativním způsobem pochopit a řešit mezery.

Zabezpečení

Vždy zabezpečené – návrh s cílem zajistit komplexní zabezpečení, abyste zachovali stabilitu aplikací a zajistili dostupnost.

Princip návrhu Požadavky
Monitorování zabezpečení celého řešení a plánování reakcí na incidenty Korelace událostí zabezpečení a auditu za účelem modelování stavu aplikace a identifikace aktivních hrozeb Vytvořte automatizované a ruční postupy pro reakci na incidenty pomocí nástrojů pro sledování informací o zabezpečení a správy událostí (SIEM).
Modelování a testování potenciálních hrozeb Zajistěte odpovídající posílení zabezpečení prostředků a vytvořte postupy pro identifikaci a zmírnění známých hrozeb, s využitím penetračního testování k ověření zmírnění hrozeb a také analýzy statického kódu a kontroly kódu.
Identifikace a ochrana koncových bodů Monitorujte a chraňte integritu sítě interních a externích koncových bodů prostřednictvím funkcí zabezpečení a zařízení, jako jsou brány firewall nebo brány firewall webových aplikací. Používejte standardní přístupy k ochraně před běžnými vektory útoku, jako jsou útoky DDoS (Distributed Denial-Of-Service), jako je SlowLoris.
Ochrana před ohroženími zabezpečení na úrovni kódu Identifikujte a zmírněte ohrožení zabezpečení na úrovni kódu, jako je skriptování mezi weby nebo injektáž SQL, a začleňte opravy zabezpečení do provozních životních cyklů pro všechny části základu kódu, včetně závislostí.
Automatizace a použití nejnižších oprávnění Automatizace minimalizuje potřebu lidské interakce a implementuje nejnižší oprávnění v aplikační i řídicí rovině, aby byla chráněna před exfiltrací dat a scénáři se zlými úmysly.
Klasifikace a šifrování dat Klasifikujte data podle rizik a používejte standardní šifrování neaktivních uložených dat a přenášených dat, abyste zajistili bezpečné ukládání a správu klíčů a certifikátů.

Optimalizace nákladů

Se zavedením vyšší spolehlivosti jsou spojené zjevné kompromisy s náklady, které by se měly pečlivě zvážit v souvislosti s požadavky na úlohy.

Maximalizace spolehlivosti může mít vliv na celkové finanční náklady řešení. Například duplikace prostředků a distribuce prostředků napříč oblastmi za účelem dosažení vysoké dostupnosti má jasný dopad na náklady. Abyste se vyhnuli nadměrným nákladům, neprobíhejte přetěžování nebo zřizování nad rámec příslušných obchodních požadavků.

S technickými investicemi do základních konceptů spolehlivosti, jako je přijetí infrastruktury jako kódu, automatizace nasazení a chaosu, jsou spojené také další náklady. To má náklady jak z hlediska času, tak úsilí, které by bylo možné investovat do poskytování nových funkcí a funkcí aplikace.

Návrh nativní pro cloud

  • Spravované služby nativní pro Azure – Spravované služby nativní pro Azure mají prioritu z důvodu nižších režijních nákladů na správu a provozu a těsné integrace s konzistentní konfigurací a instrumentací v rámci zásobníku aplikací.

  • Sladění s plánem – Začleňte připravované nové a vylepšené funkce služeb Azure, jakmile se stanou obecně dostupnými (GA), abyste zůstali blízko přednímu okraji Azure.

  • Osvojte si možnosti verze Preview a zmírníte známé mezery – Zatímco obecně dostupné služby (GA) mají prioritu z hlediska podpory, verze Preview služeb Azure se aktivně probízejí za účelem rychlého začlenění a poskytují technickou a praktickou zpětnou vazbu pro produktové skupiny Azure, aby se vyřešily mezery.

  • Zarovnání cílové zóny Azure – dá se nasadit v rámci cílové zóny Azure a odpovídá metodologii návrhu cílové zóny Azure, ale také plně funkční a nasaditelné v holém prostředí mimo cílovou zónu.

Další krok

Projděte si průřezové aspekty související s kritickými úlohami.