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