SaaS pro více tenantů v Azure

Azure Active Directory
App Service
DNS
Front Door
Kubernetes Service

Když identifikujete část podnikového řešení, které může být bez značky a uvedení na trh na jiné firmy, přidá celý datový proud příjmů pro společnost. Nicméně konfigurace řešení na účet pro zatížení, které slew tenanta přináší, často představuje nenáročný překážku k boji. Azure nabízí řadu služeb pro správu softwarového řešení, které:

  • Flexibilní udržuje databáze pro všechny klienty.

  • Škáluje obchodní a logickou úroveň řešení, aby nedocházelo k kritickým bodům na výpočetní vrstvě.

  • Integruje dostupnost a regionální převzetí služeb při selhání.

  • Poskytuje komplexní zabezpečení na všech úrovních řešení.

Potenciální případy použití

Tyto případy použití mají vzory návrhu, které můžou využívat víceklientské řešení SaaS hostované v Azure:

  • Vytvořte řešení pro řízení vztahů se zákazníky (CRM), které můžou klienti uvádět na trh a prodávat zákazníkům.

  • Implementujte systém správy obsahu (CMS) a doručovat ho více uživatelům pomocí této architektury.

Architektura

Diagram znázorňující architekturu víceklientské SaaS nastavenou v Azure ve dvou různých oblastech.

Stáhnout SVG této architektury.

Sada technologií Azure zabezpečuje a vyrovnává zatížení provozu.

  1. Přední dveře Azure zpracovávají několik počátečních úloh:

    • Probíhá zpracování prvotní žádosti.

    • Vyrovnávání zatížení napříč oblastmi.

    • Ukončení a přesměrování SSL (HTTPS).

    • Převzetí služeb při selhání, pokud dojde k regionálnímu výpadku.

  2. Azure DNS spravuje záznamy DNS a zajišťují směrování do správného koncového bodu front-dveří.

  3. architektura používá jako zprostředkovatele identity pro ověřování službu Azure Active Directory (Azure AD).

  4. Po směrování do příslušné oblasti Application Gateway trasy a zatížení, které směrují požadavky na příslušné App Service.

  5. Pro tuto architekturu je upřednostňovanou službou nástroje použití App Service:

    • Jakákoli aplikace založená na protokolu HTTP.

    • Obsluha webového obsahu.

    • Odhalení rozhraní API RESTful

    • Implementace obchodní logiky za front-endové aplikace.

    App Service můžete nakonfigurovat pro automatické horizontální navýšení nebo navýšení kapacity. Díky tomu je App Service vhodné škálovat hostitele požadavků řízených protokolem HTTP klienta na vyžádání.

  6. Služby vrstvy přístupu k datům se také nezávisle škálují na základě zatížení. Datové služby spravují datové modely, klienti připojení a ovladače. Služby také poskytují konzistentní datové rozhraní pro všechny služby vyšší úrovně, které chtějí využívat data v aplikaci. Pomocí služby Azure Kubernetes (AKS) můžete nasazovat a škálovat tyto datové služby. Každý cluster AKS zodpovídá za sadu souvisejících funkcí v této vrstvě. AKS může implementovat architekturu mikroslužeb, která obsahuje řadu kontejnerů, z nichž každý zapouzdřuje konkrétní funkce v rámci clusteru. Umožňuje vysoký stupeň abstrakce a odpojení v rámci kódu. Také umožňuje clusterům horizontální horizontální navýšení kapacity na účet pro zvýšené zatížení z více tenantů. Jednotlivé clustery můžou škálovat prostředky, pokud se zatížení zvýší na cluster. Horizontální navýšení kapacity nemá vliv na ostatní clustery ve skupině prostředků, pokud nevyskytují stejné zvýšení.

  7. Ukládejte a spravujte relační data mimo aplikační architekturu. V takovém případě je k dispozici jeden bod zadávání dat pro obě oblasti. replikace, dostupnost, škálovatelnost a zabezpečení je dosažitelná, protože využívají sílu elastických fondů Azure SQL. Zřídit u každého tenanta databázi ve fondu. Přidělte prostředky, které jsou dostupné ve fondu, do databází na vyžádání jako zatížení a požadavky, které jsou k dispozici. Optimalizuje databázové prostředky, které jsou k dispozici pro klienty, s vaším rozpočtem.

Komponenty

Primární součásti jsou navrhované komponenty pro architekturu v tomto řešení. Pokud se některé z primárních součástí nevejdou do vaší architektury, přečtěte si seznam alternativních součástí.

Primární součásti

  • Přední dvířka Azure: místní Nástroj pro vyrovnávání zatížení, který směruje provoz klienta do správné oblasti. Pokud dojde k selhání oblasti a může zabezpečit internetový vstupní bod přes bránu firewall webových aplikací Azure, může dojít k převzetí služeb při selhání v druhé oblasti.

  • Azure Active Directory (Azure AD): slouží jako zprostředkovatel identity pro celou aplikaci, vynucování ověřování a komplexní autorizaci žádosti v aplikaci.

  • Azure DNS: služba hostování v Azure pro překlad názvů domén. Ve víceklientském řešení bude k řešení přistupovat více klientů prostřednictvím svých vlastních domén. Pomocí Azure DNS můžete nakonfigurovat a vyřešit požadavky klientů na jejich správný zásobník aplikace.

  • Application Gateway: trasy a provoz vyrovnávání zatížení interně v aplikaci do různých služeb, které odpovídají obchodním potřebám klienta. I když jsou přední dveře Azure vyvážené mezi oblastmi vysoké úrovně, je Application Gateway, které mají v rámci skupiny povědomí o zatížení jednotlivých služeb. Přední dvířka Azure a Application Gateway se kombinují k zajištění komplexního vyrovnávání zatížení na všech úrovních ve víceklientském řešení. Další informace o možnostech vyrovnávání zatížení v Azure najdete v tomto přehledu o vyrovnávání zatížení Azure.

  • App Service: služba Premier v Azure pro webové aplikace a webová rozhraní API. Zabezpečení se integruje se službami, jako je Azure AD, a Azure Key Vault. Automatické škálování můžete nakonfigurovat tak, aby se nastalo automaticky. K dispozici jsou také množství prostředků, které je možné škálovat, aby byly flexibilní mezi různými plány App Service, na kterých může aplikace běžet. App Service může také využít integrované DevOps možnosti pro průběžnou integraci a nasazování do více prostředí. Tyto a další podpůrné funkce platformy Azure umožňují vývojářům soustředit se na vývoj svých aplikací.

  • Služba Azure Kubernetes (AKS): orchestruje instance imagí kontejneru nasazené do clusteru. Správa dat více klientů často zahrnuje implementaci sady komponent pro správu:

    • Modelování dat

    • Připojení ke zdroji dat

    • Extrakce, transformace, načítání (ETL)

    • Aktivity importu a exportu

    Vývoj těchto mnoha menších komponent jako mikroslužby založené na kontejnerech vytvoří ideální scénář pro nasazení do clusteru AKS. Integrované rozhraní jsou nástroje pro automatické škálování, Vyrovnávání zatížení a možnosti upgradu. AKS se dobře integruje s strategií průběžné integrace nebo průběžného doručování (CI/CD) pomocí dostupných funkcí DevOps a Azure Container Registry.

  • elastické fondy Azure SQL: poskytuje řešení pro správu sady databází s využitím fondu prostředků. Služba přiděluje prostředky na vyžádání do databází. Dává vývojářům víceklientské architektury SaaS, která umožňuje doručovat databázové prostředky do klientů, jak je potřebují. služba také snižuje rozpočet a nároky na údržbu více SQL serverů s velkými objemy nevyužitých výpočetních prostředků.

  • Azure kognitivní hledání (dřív označované jako Azure Search): služba, která do vaší aplikace přidává výkonný modul pro indexování a dotazování. Poskytuje klientům přístup k funkcím silného dotazu. Můžou k rozšíření a vylepšení dotazů využít také funkce Azure v Azure. Služba Azure Kognitivní hledání může přihlédnout k víceklientské architektuře s využitím strategie pro jednotlivé klienty nebo služby.

  • Mezipaměť Azure pro Redis: aplikuje do řešení vrstvu ukládání do mezipaměti jako službu a poskytne mezipaměť spravovanou v paměti pro snížení latence a zvýšení výkonu klientů. Vysoká propustnost umožňuje vysoký objem požadavků na zpracování více klientů, kteří přistupují k systému. Můžete pružně škálovat službu během navýšení zatížení aplikace. Podporuje také šifrování v klidovém umístění k ochraně a izolaci dat klientů uložených v mezipaměti.

Alternativní součásti

  • Virtual Machine Scale Sets: umožňuje nasazení služeb do prostředí virtuálních počítačů, které se automaticky škáluje a zvětšuje podle potřeby. Virtual Machine Scale Sets se dobře integruje s Load Balancer nebo Application Gateway, aby se při zvětšování sady škálování automaticky vyrovnalo zatížení. Virtual Machine Scale Sets poskytuje škálovatelnost, kterou toto řešení vyžaduje. V mnoha případech je ale zbytečné spravovat úplné prostředí virtuálních počítačů. tuto úroveň zásobníku můžeme odložit na App Service nebo AKS.

  • Azure SQL Database: implementujte jako samostatné vyhrazené instance jako náhradu pro elastické fondy. použití Azure SQL Database zvyšuje režijní náklady na správu instance přímo a přináší větší náklady na přidělené prostředky. To je přijatelná alternativa, pokud tenant vyžaduje vyhrazený server. Konkrétně může klient vyžadovat větší kontrolu nad instancí a vyhrazenými dostupnými prostředky. klienti, kteří vyžadují vyhrazené SQL Server, můžou existovat souběžně s klienty v konfiguraci Elastický fond. můžete vytvořit vrstvu SQL databází jednu z cenových možností, které jsou k dispozici pro klienty při nákupu licencí pro SaaS.

  • SQL Server v Virtual Machines: další možnost pro nasazení SQL databází. tenant může mít již existující infrastrukturu IT a existující SQL servery v místním prostředí. V takovém případě může tenant chtít používat své aktuální licence, a to buď jako úplnou migraci, nebo v hybridním scénáři. Oddělená povaha SaaS umožňuje, aby datová vrstva aplikace cílila na všechny SQL Database prostřednictvím konfigurace.

Požadavky

Vícetenancy

Klíčovým aspektem tohoto řešení je vícetenantové řešení. Řešení zpracovává několik klientů současně. Přiděluje také dostatek prostředků k efektivnímu zpracování všech požadavků klientů. Řešení při zpracování požadavků zabezpečuje provoz z globálních koncových bodů a izoluje data klientů, aby se zabránilo porušením zabezpečení a křížovému poškození. Nasaďte klienty do dvojice regionálních skupin prostředků na základě jejich primárního umístění. Tím se optimalizuje regionální dostupnost.

Mnoho klientů můžete nasadit do jedné výpočetní skupiny, protože systém izoluje požadavky na základě ověřování a klíčů klienta, které rozlišují požadavky na základě těchto jedinečných identifikátorů. Systém může šifrovat všechny požadavky klientů samostatně podle svých klíčů, aby žádný klient mohl dešifrovat data jiných klientů. Správa více klientů v jednom výpočetním zásobníku umožňuje optimalizovat přidělování prostředků a poskytovat klientům rychlost odezvy, kterou potřebují za cenu.

Klientské databáze spravujete podobným způsobem mimo výpočetní zásobník, protože požadavek klienta může přijít z kterého z místních zásobníků. Mnoho klientských databází může existovat ve stejné Elastický fond, izolované a zabezpečené transparentním šifrováním dat. Každou databázi můžete nakonfigurovat k šifrování dat pomocí klíče spravovaného klientem a k dešifrování dat za běhu (JIT). Dešifrování JIT chrání data klientů před vývojáři i jinými klienty. Systém využívá rozhraní Elastický fond k poskytování prostředků na vyžádání klientům, kteří jsou k ní přiřazení, a přitom udržuje nízké náklady za vás. Jednotlivým klientům můžete přiřadit zásady replikace Elastický fond které zajistí zálohování a převzetí služeb při selhání pro data klientů. Při onboardování dalších klientů do systému můžete přenést další elastické fondy do online režimu.

Škálovatelnost a dostupnost

Toto řešení je navržené tak, aby zohlednil velký počet tenantů využívajících SaaS. Využívá velký počet škálovatelných komponent a služeb ke zvětšování na základě zatížení. Tato architektura není určená pro řešení, která slouží několika tenantům nebo malé zatížení požadavků a dat. Mohlo by to vytížení rozpočtu řešení zaměřeného na jednoho klienta nebo menší zatížení. Také není nutné mít režii ve více oblastech, kde není potřeba vysoká globální dostupnost. Zvyšuje zbytečné složitost a náklady.

Zabezpečení

Systém řeší zabezpečení od konce do konce na každé úrovni aplikace:

  • Azure Front Door poskytuje pro své domény integrovanou podporu HTTPS. To znamená, že systém může šifrovat veškerý provoz do aplikace SaaS. Azure Front Door také implementuje Azure Web Application Firewall, která chrání zásobník SaaS před útoky na hraničních zařízeních, než systém směruje požadavky do aplikace.

  • Každý zásobník aplikací v každé oblasti se nachází v rámci azure Virtual Network. Systém omezuje provoz do virtuální sítě tím, že přijímá požadavky z Azure Front Door, a chrání tak všechny aplikační služby před externím provozem. Jakmile se nacházíte v zabezpečené bráně firewall, Application Gateway ukončit protokol SSL a zajistit v rámci aplikace výkonné vyrovnávání zatížení a směrování.

  • Všechny přihlašovací údaje, tajné kódy a připojovací řetězce můžete bezpečně spravovat pomocí Azure Key Vault. Správa těchto citlivých dat jako tajných kódů umožňuje vývojářům v okamžiku nasazení vložit do aplikace přihlašovací údaje. Tím zajistíte, že kód nebude zašedlý citlivými informacemi. Použití tajných kódů chrání data klientů tím, že zajišťuje, že porušení kódu nebo útok prostředníkem nezíská přístup k databázím tenantů.

  • V tomto scénáři mohou data více tenantů existovat vedle sebe na stejném databázovém serveru, pokud ne na stejné databázi. Použití TDE a dešifrování JIT chrání data v databázi. Systém zašifruje všechna data v databázi v klidové podobě a dešifruje je jenom v případě, že to tenant požaduje. Klienti mohou zadat vlastní klíče a všechny klíče klienta můžete uložit do Azure Key Vault pro správu šifrování pro více tenantů. Chrání klientská data od konce, brání vývojáři v přístupu k datům klienta, izoluje data mezi tenanty a pomáhá splnit požadavky na dodržování předpisů pro zabezpečení a data.

Ceny

Azure App Service poskytuje řadu cenových úrovní na základě očekávaných požadovaných výpočetních prostředků. U SaaS s více tenanty jsou při výběru plánu služby klíčové funkce vysoké dostupnosti a horizontálního navýšení kapacity. Pokud očekáváte hostování mnoha tenantů, může být potřeba zvolit úroveň Premium nebo isolated k zajištění výpočetních prostředků potřebných k zajištění vysokého provozu. Úrovně Standard, Premium a Isolated jsou všechny vyhrazené instance virtuálních počítače. Náklady na jednotku času můžete vypočítat podle toho, kolik virtuálních počítače zadané úrovně jste zadali. Další informace najdete v přehledu cenových App Service plánech.

Azure Kubernetes Service poskytuje nákladově efektivní službu kontejneru. Poplatky za uzly AKS se účtují jenom při využití, takže se vám účtují jenom poplatky:

  • Virtuální počítače

  • Spotřebované úložiště a síťové prostředky

  • Škálování nákladů přímo souvisejících s využitím

Použití AKS jako služby datové vrstvy je ideální, pokud chcete snížit náklady. Odhad cen za vrstvu instancí AKS najdete v kalkulačce služby Kubernetes.

Služba Azure SQL Elastický fond je ve scénáři s více náklady vysoce nákladově efektivní. Databáze tenantů v Elastický fond budou sdílet dostupné prostředky. S tím, jak se poptávka mezi tenanty v průběhu času mění, budou se také měnovat prostředky. Azure SQL Elastický fond poskytuje maximální dostupné prostředky pro vyžadované databáze bez nutnosti režie na prostředky u všech databází. Služba udržuje nízké náklady pro vývojáře SaaS a tenantů. K určení Azure SQL Database a množství prostředků potřebných k obsluhu vašich tenantů a jejich dat použijte cenovou kalkulačku.

  • Použití cenového modelu virtuálních jader poskytuje větší flexibilitu při škálování pro splnění požadovaných prostředků. Můžete také využít výhod tohoto Zvýhodněné hybridní využití Azure. Stávající SQL Server licence poskytují slevu na prostředky virtuálních SQL v cloudu. V případě, že už jsou místní servery součástí vývojářské infrastruktury, můžete pomocí těchto slev spravovat náklady ještě více. Potenciální úspory můžete odhadnout pomocí kalkulačky Zvýhodněné hybridní využití Azure úspory.

  • Můžete také ušetřit náklady na SQL Server prostředky zakoupením Azure SQL Database rezervované kapacity. Nákup rezervované kapacity představuje závazek dlouhodobého využívání SQL Database dat. Termín je obvykle v rozmezí od jednoho do tří let. Na základě toho získáte slevy na výpočetní náklady na prostředky v rezervaci. Můžete si například na rok rezervovat 32 virtuálních jade pro obecné účely, což by snížilo náklady na těchto 32 virtuálních jadek za tento rok. Mít více tenantů, kteří kupují licence pro SaaS, je silným indikátorem toho, že využití rezervované kapacity odpovídá řešení a je ideální pro úsporu nákladů v této úlohu.

Cenovou strukturu pro aplikace najdete Azure Cache for Redis na Azure Cache for Redis stránce s cenami. Úroveň mezipaměti můžete kdykoli upravit mezi úrovněmi Basic, Standard a Premium podle potřeby. Uvidíte vyšší ceny za větší limity mezipaměti a další funkce, jako je replikace a zotavení po havárii. Azure Cache for Redis také nabízí ceny rezervované kapacity pro závazky k dlouhodobému využití.

Cena za Azure Front Door závisí na objemu přenosu dat do a ze služby. U odchozích dat se ceny liší v závislosti na zónách. Za různé oblasti se budou náklady lišit. Pokud narazit na rozdílové ceny, odhadněte náklady samostatně. Cena zahrnuje určité směrování a kapacitu domény, ale v systému by se účtuly náklady po počátečních limitech. Azure Web Application Firewall se za použité zásady nebo pravidlo účtují malé dodatečné poplatky. Podrobnosti o cenách pro Azure Front Door najdete Azure Front Door stránce s cenami.

Ceny za Azure Cognitive Search jsou plně vrstvené systémy. Pro vývoj a testování je k dispozici úroveň Free. Potom bude každá úroveň účtována po hodinových nákladech na každou přidělenou Cognitive Search instanci. S nárůstem úrovní se také zvyšuje celkové úložiště, počet indexů a limity horizontálního navýšení velikosti. Azure Cognitive Search poskytuje extrakci obrázků jako službu se stejnou rychlostí pro všechny placené úrovně.

Další kroky