Vzory aplikací a strategie vývoje pro SQL Server ve službě Azure Virtual Machines
Platí pro: SQL Server na virtuálním počítači Azure
Poznámka:
Azure má dva různé modely nasazení pro vytváření prostředků a práci s nimi: Resource Manager a klasický model. Tento článek popisuje použití obou modelů, ale Microsoft doporučuje, aby většina nových nasazení používala model Resource Manager.
Přehled
Určení vzorů aplikací nebo vzorů, které se mají použít pro aplikace založené na SQL Serveru v prostředí Azure, je důležitým rozhodnutím o návrhu a vyžaduje solidní znalosti o tom, jak SQL Server a každá komponenta infrastruktury Azure spolupracují. S SQL Serverem ve službách infrastruktury Azure můžete snadno migrovat, udržovat a monitorovat stávající aplikace SQL Serveru založené na Windows Serveru na virtuální počítače v Azure.
Cílem tohoto článku je poskytnout architektům řešení a vývojářům základ pro dobrou architekturu a návrh aplikací, které mohou postupovat při migraci stávajících aplikací do Azure a vývoji nových aplikací v Azure.
Pro každý vzor aplikace najdete místní scénář, příslušné cloudové řešení a související technická doporučení. Kromě toho článek popisuje strategie vývoje specifické pro Azure, abyste mohli správně navrhovat aplikace. Vzhledem k mnoha možným vzorům aplikací se doporučuje, aby architekti a vývojáři zvolili nejvhodnější vzor pro své aplikace a uživatele.
Technické přispěvatele: Luis Carlos Vargas Herring, Madhan Arumugam Ramakrishnan
Technické hodnotící: Corey Sanders, Drew McDaniel, Narayan Annamalai, Nir Mashkowski, Sanjay Mishra, Silvano Coriani, Stefan Schackow, Tim Hickey, Tim Wieman, Xin Jin
Úvod
Mnoho typů n-vrstvých aplikací můžete vyvíjet oddělením komponent různých aplikačních vrstev na různých počítačích i v samostatných komponentách. Klientské aplikace a komponenty obchodních pravidel můžete například umístit do jednoho počítače, webové vrstvy front-endu a komponent datové úrovně přístupu do jiného počítače a back-endové databázové vrstvy na jiném počítači. Tento druh strukturování pomáhá izolovat jednotlivé úrovně od sebe navzájem. Pokud změníte, odkud data pocházejí, nemusíte měnit klienta ani webovou aplikaci, ale jenom komponenty datové vrstvy přístupu.
Typická n-úrovňová aplikace zahrnuje prezentační vrstvu, obchodní vrstvu a datovou úroveň:
Úroveň | Popis |
---|---|
Prezentace | Prezentační vrstva (webová vrstva, front-endová vrstva) je vrstva, ve které uživatelé komunikují s aplikací. |
Organizace | Obchodní vrstva (střední vrstva) je vrstva, kterou prezentační vrstva a datová vrstva používají ke vzájemné komunikaci a zahrnuje základní funkce systému. |
Data | Datová vrstva je v podstatě server, který ukládá data aplikace (například server se systémem SQL Server). |
Aplikační vrstvy popisují logické seskupení funkcí a komponent v aplikaci; zatímco úrovně popisují fyzickou distribuci funkcí a součástí na samostatných fyzických serverech, počítačích, sítích nebo vzdálených umístěních. Vrstvy aplikace se mohou nacházet ve stejném fyzickém počítači (stejné vrstvě) nebo mohou být distribuovány přes samostatné počítače (n-vrstvé) a komponenty v každé vrstvě komunikují s komponentami v jiných vrstvách prostřednictvím dobře definovaných rozhraní. Úroveň termínů si můžete představit jako odkaz na vzory fyzické distribuce, jako jsou dvouvrstvé, třívrstvé a n-vrstvé. Vzor dvouvrstvé aplikace obsahuje dvě aplikační vrstvy: aplikační server a databázový server. Přímá komunikace probíhá mezi aplikačním serverem a databázovým serverem. Aplikační server obsahuje komponenty webové i obchodní vrstvy. V 3vrstvém vzoru aplikace existují tři aplikační vrstvy: webový server, aplikační server, který obsahuje vrstvu obchodní logiky nebo komponenty pro přístup k datům obchodní vrstvy a databázový server. Komunikace mezi webovým serverem a databázovým serverem probíhá přes aplikační server. Podrobné informace o vrstvách a úrovních aplikací najdete v průvodci architekturou aplikací microsoftu.
Než začnete číst tento článek, měli byste mít znalosti o základních konceptech SQL Serveru a Azure. Informace najdete v tématu SQL Server Books Online, SQL Server na virtuálních počítačích Azure a Azure.com.
Tento článek popisuje několik vzorů aplikací, které můžou být vhodné pro vaše jednoduché aplikace i pro vysoce složité podnikové aplikace. Před podrobnostmi o jednotlivých vzorech doporučujeme seznámit se s dostupnými službami úložiště dat v Azure, jako jsou Azure Storage, Azure SQL Database a SQL Server na virtuálním počítači Azure. Pokud chcete, aby se vaše aplikace rozhodly co nejlépe navrhnout, zjistěte, kdy se má služba úložiště dat jasně používat.
Zvolte SQL Server na virtuálních počítačích Azure, když:
Potřebujete mít kontrolu nad SQL Serverem a Windows. Může to například zahrnovat verzi SQL Serveru, speciální opravy hotfix, konfiguraci výkonu atd.
Potřebujete úplnou kompatibilitu s SQL Serverem a chcete přesunout existující aplikace do Azure tak, jak je.
Chcete využít možnosti prostředí Azure, ale Azure SQL Database nepodporuje všechny funkce, které vaše aplikace vyžaduje. To může zahrnovat následující oblasti:
- Velikost databáze: V době aktualizace tohoto článku sql Database podporuje databázi až 1 TB dat. Pokud vaše aplikace vyžaduje více než 1 TB dat a nechcete implementovat vlastní řešení horizontálního dělení, doporučujeme použít SQL Server na virtuálním počítači Azure. Nejnovější informace najdete v tématu Horizontální navýšení kapacity služby Azure SQL Database, nákupního modelu založeného na DTU a nákupního modelu založeného na virtuálních jádrech (Preview).
- Dodržování předpisů HIPAA: Zákazníci a nezávislí dodavatelé softwaru (ISV) můžou místo Služby Azure SQL Database zvolit SQL Server na virtuálních počítačích Azure, protože SQL Server na virtuálních počítačích Azure se vztahuje na smlouvu BAA (Business Associate Agreement). Informace o dodržování předpisů najdete v Centru zabezpečení Microsoft Azure: Dodržování předpisů.
- Funkce na úrovni instance: V tuto chvíli SQL Database nepodporuje funkce, které žijí mimo databázi (například propojené servery, úlohy agenta, FileStream, Service Broker atd.). Další informace najdete v tématu Pokyny a omezení služby Azure SQL Database.
Jednovrstvé (jednoduché): Jeden virtuální počítač
V tomto vzoru aplikace nasadíte aplikaci a databázi SQL Serveru do samostatného virtuálního počítače v Azure. Stejný virtuální počítač obsahuje vaši klientskou/webovou aplikaci, obchodní komponenty, vrstvu přístupu k datům a databázový server. Prezentace, obchodní kód a kód pro přístup k datům jsou logicky oddělené, ale fyzicky se nacházejí v počítači s jedním serverem. Většina zákazníků začne s tímto vzorem aplikace a pak škáluje kapacitu přidáním dalších webových rolí nebo virtuálních počítačů do systému.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete provést jednoduchou migraci na platformu Azure a vyhodnotit, jestli platforma odpovídá na požadavky vaší aplikace, nebo ne.
- Chcete zachovat všechny aplikační vrstvy hostované ve stejném virtuálním počítači ve stejném datacentru Azure, aby se snížila latence mezi vrstvami.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
Následující diagram znázorňuje jednoduchý místní scénář a způsob nasazení řešení s podporou cloudu na jednom virtuálním počítači v Azure.
Nasazení obchodní vrstvy (obchodní logiky a komponent přístupu k datům) na stejné fyzické úrovni jako prezentační vrstva může maximalizovat výkon aplikace, pokud není nutné kvůli škálovatelnosti nebo obavám zabezpečení použít samostatnou úroveň.
Vzhledem k tomu, že je to velmi běžný způsob, jak začít, můžete najít následující článek o migraci, který je užitečný pro přesun dat na virtuální počítač s SQL Serverem: Průvodce migrací: SQL Server na SQL Server na virtuálních počítačích Azure.
3vrstvé (jednoduché): Více virtuálních počítačů
V tomto vzoru aplikace nasadíte 3vrstvou aplikaci v Azure umístěním každé aplikační vrstvy do jiného virtuálního počítače. To poskytuje flexibilní prostředí pro jednoduché scénáře vertikálního navýšení kapacity a horizontálního navýšení kapacity. Pokud jeden virtuální počítač obsahuje vaši klientskou/webovou aplikaci, druhý virtuální počítač hostuje vaše obchodní komponenty a druhý hostuje databázový server.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete provést migraci složitých databázových aplikací do služby Azure Virtual Machines.
- Chcete, aby se různé aplikační vrstvy hostily v různých oblastech. Můžete mít například sdílené databáze nasazené do více oblastí pro účely vytváření sestav.
- Chcete přesunout podnikové aplikace z místních virtualizovaných platforem do služby Azure Virtual Machines. Podrobnou diskuzi o podnikových aplikacích najdete v tématu Co je podniková aplikace.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
Následující diagram ukazuje, jak v Azure umístit jednoduchou 3vrstvou aplikaci tak, že umístíte každou aplikační vrstvu do jiného virtuálního počítače.
V tomto vzoru aplikace existuje v každé vrstvě pouze jeden virtuální počítač. Pokud máte v Azure více virtuálních počítačů, doporučujeme nastavit virtuální síť. Azure Virtual Network vytvoří důvěryhodnou hranici zabezpečení a také umožňuje virtuálním počítačům komunikovat mezi sebou přes privátní IP adresu. Kromě toho vždy zajistěte, aby všechna připojení k internetu přešla jenom na prezentační vrstvu. Při sledování tohoto vzoru aplikace spravujte pravidla skupin zabezpečení sítě pro řízení přístupu. Další informace najdete v tématu Povolení externího přístupu k virtuálnímu počítači pomocí webu Azure Portal.
V diagramu může být protokol TCP, UDP, HTTP nebo HTTPS.
Poznámka:
Nastavení virtuální sítě v Azure je bezplatné. Za bránu VPN, která se připojuje k místnímu prostředí, se vám ale účtují poplatky. Tento poplatek vychází z doby, po kterou je připojení zřízené a dostupné.
2vrstvé a 3 vrstvé s horizontálním navýšením kapacity prezentační vrstvy
V tomto vzoru aplikace nasadíte 2vrstvou nebo 3vrstvou databázovou aplikaci do služby Azure Virtual Machines tak, že umístíte každou aplikační vrstvu do jiného virtuálního počítače. Kromě toho můžete škálovat prezentační vrstvu z důvodu zvýšeného objemu příchozích požadavků klientů.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete přesunout podnikové aplikace z místních virtualizovaných platforem do služby Azure Virtual Machines.
- Chcete vertikálně navýšit kapacitu prezentační vrstvy z důvodu zvýšeného objemu příchozích požadavků klientů.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
- Chcete vlastnit prostředí infrastruktury, které může vertikálně navýšit nebo snížit kapacitu na vyžádání.
Následující diagram ukazuje, jak můžete umístit aplikační vrstvy do několika virtuálních počítačů v Azure horizontálním navýšením kapacity prezentační vrstvy z důvodu zvýšeného objemu příchozích požadavků klientů. Jak je vidět v diagramu, Azure Load Balancer zodpovídá za distribuci provozu napříč několika virtuálními počítači a také za určení, ke kterému webovému serveru se má připojit. Díky několika instancím webových serverů za nástrojem pro vyrovnávání zatížení je zajištěna vysoká dostupnost prezentační vrstvy.
Osvědčené postupy pro vzory 2, 3 nebo n-vrstvé, které mají více virtuálních počítačů v jedné vrstvě
Doporučujeme umístit virtuální počítače, které patří do stejné úrovně, do stejné cloudové služby a do stejné skupiny dostupnosti. Například umístěte sadu webových serverů do CloudService1 a AvailabilitySet1 a sadu databázových serverů v CloudService2 a AvailabilitySet2. Skupina dostupnosti v Azure umožňuje umístit uzly s vysokou dostupností do samostatných domén selhání a upgradovat domény.
Pokud chcete využít více instancí virtuálních počítačů vrstvy, musíte nakonfigurovat Azure Load Balancer mezi aplikačními vrstvami. Pokud chcete nakonfigurovat Load Balancer v každé vrstvě, vytvořte koncový bod s vyrovnáváním zatížení na virtuálních počítačích jednotlivých vrstev samostatně. Pro konkrétní úroveň nejprve vytvořte virtuální počítače ve stejné cloudové službě. Tím se zajistí, že budou mít stejnou veřejnou virtuální IP adresu. Dále vytvořte koncový bod na jednom z virtuálních počítačů na této úrovni. Potom pro vyrovnávání zatížení přiřaďte stejný koncový bod ostatním virtuálním počítačům na této úrovni. Vytvořením sady s vyrovnáváním zatížení distribuujete provoz mezi několik virtuálních počítačů a také umožníte Load Balanceru určit, který uzel se má připojit, když selže uzel back-endového virtuálního počítače. Například několik instancí webových serverů za nástrojem pro vyrovnávání zatížení zajišťuje vysokou dostupnost prezentační vrstvy.
Osvědčeným postupem je vždy zajistit, aby všechna připojení k internetu nejprve přešla na prezentační vrstvu. Prezentační vrstva přistupuje k obchodní vrstvě a potom obchodní vrstva přistupuje k datové vrstvě. Další informace o tom, jak povolit přístup k prezentační vrstvě, najdete v tématu Povolení externího přístupu k virtuálnímu počítači pomocí webu Azure Portal.
Všimněte si, že Load Balancer v Azure funguje podobně jako nástroje pro vyrovnávání zatížení v místním prostředí. Další informace najdete v tématu Vyrovnávání zatížení pro služby infrastruktury Azure.
Kromě toho doporučujeme nastavit privátní síť pro vaše virtuální počítače pomocí služby Azure Virtual Network. To jim umožní komunikovat mezi sebou přes privátní IP adresu. Další informace najdete v tématu Azure Virtual Network.
2vrstvé a 3-vrstvé s horizontálním navýšením kapacity obchodní vrstvy
V tomto vzoru aplikace nasadíte 2vrstvou nebo 3vrstvou databázovou aplikaci do služby Azure Virtual Machines tak, že umístíte každou aplikační vrstvu do jiného virtuálního počítače. Kromě toho můžete chtít distribuovat komponenty aplikačního serveru do několika virtuálních počítačů kvůli složitosti vaší aplikace.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete přesunout podnikové aplikace z místních virtualizovaných platforem do služby Azure Virtual Machines.
- Součásti aplikačního serveru chcete distribuovat do několika virtuálních počítačů kvůli složitosti vaší aplikace.
- Chcete přesunout obchodní logiku náročné na místní obchodní aplikace (obchodní aplikace) do služby Azure Virtual Machines. Obchodní aplikace jsou sada důležitých počítačových aplikací, které jsou nezbytné pro provozování podniku, jako je účetnictví, personální oddělení, mzdy, řízení dodavatelského řetězce a aplikace pro plánování zdrojů.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
- Chcete vlastnit prostředí infrastruktury, které může vertikálně navýšit nebo snížit kapacitu na vyžádání.
Následující diagram znázorňuje místní scénář a jeho cloudové řešení. V tomto scénáři umístíte aplikační vrstvy do několika virtuálních počítačů v Azure horizontálním navýšením kapacity obchodní vrstvy, která obsahuje vrstvu obchodní logiky a komponenty pro přístup k datům. Jak je vidět v diagramu, Azure Load Balancer zodpovídá za distribuci provozu napříč několika virtuálními počítači a také za určení, ke kterému webovému serveru se má připojit. Díky několika instancím aplikačních serverů za nástrojem pro vyrovnávání zatížení je zajištěna vysoká dostupnost obchodní vrstvy. Další informace najdete v tématu Osvědčené postupy pro 2 vrstvé, 3 vrstvé nebo n-vrstvé vzory aplikací, které mají více virtuálních počítačů v jedné vrstvě.
2vrstvé a 3-vrstvé s prezentačními a obchodními vrstvami se škálováním na více instancí a HADR
V tomto vzoru aplikace nasadíte 2vrstvou nebo třívrstvou databázovou aplikaci do služby Azure Virtual Machines tak, že distribuujete prezentační vrstvu (webový server) a komponenty obchodní vrstvy (aplikačního serveru) do více virtuálních počítačů. Kromě toho implementujete řešení pro vysokou dostupnost a zotavení po havárii (HADR) pro databáze ve službě Azure Virtual Machines.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete přesunout podnikové aplikace z virtualizovaných platforem místně do Azure implementací možností vysoké dostupnosti a zotavení po havárii SQL Serveru.
- Chcete vertikálně navýšit kapacitu prezentační vrstvy a obchodní vrstvy z důvodu zvýšeného objemu příchozích požadavků klientů a složitosti vaší aplikace.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
- Chcete vlastnit prostředí infrastruktury, které může vertikálně navýšit nebo snížit kapacitu na vyžádání.
Následující diagram znázorňuje místní scénář a jeho cloudové řešení. V tomto scénáři škálujete prezentační vrstvu a komponenty obchodní vrstvy na více virtuálních počítačů v Azure. Kromě toho implementujete techniky vysoké dostupnosti a zotavení po havárii (HADR) pro databáze SQL Serveru v Azure.
Spuštění více kopií aplikace v různých virtuálních počítačích zajistí, že mezi nimi vyrovnáváte požadavky. Pokud máte více virtuálních počítačů, musíte se ujistit, že jsou všechny virtuální počítače přístupné a spuštěné v jednom okamžiku. Pokud nakonfigurujete vyrovnávání zatížení, Azure Load Balancer sleduje stav virtuálních počítačů a směruje příchozí volání na uzly virtuálních počítačů, které jsou v pořádku. Informace o tom, jak nastavit vyrovnávání zatížení virtuálních počítačů, najdete v tématu Vyrovnávání zatížení pro služby infrastruktury Azure. Díky několika instancím webových a aplikačních serverů za nástrojem pro vyrovnávání zatížení je zajištěna vysoká dostupnost prezentačních a obchodních úrovní.
Osvědčené postupy pro vzory aplikací vyžadující SQL HADR
Při nastavování řešení vysoké dostupnosti a zotavení po havárii SQL Serveru ve službě Azure Virtual Machines je nastavení virtuální sítě pro virtuální počítače pomocí služby Azure Virtual Network povinné. Virtuální počítače v rámci virtuální sítě budou mít stabilní privátní IP adresu i po výpadku služby, takže se můžete vyhnout době aktualizace vyžadované pro překlad názvů DNS. Kromě toho virtuální síť umožňuje rozšířit vaši místní síť do Azure a vytvořit důvěryhodnou hranici zabezpečení. Pokud má vaše aplikace například omezení podnikové domény (například ověřování systému Windows, Active Directory), je potřeba nastavit službu Azure Virtual Network .
Většina zákazníků, kteří používají produkční kód v Azure, uchovává primární i sekundární repliky v Azure.
Komplexní informace a kurzy týkající se technik vysoké dostupnosti a zotavení po havárii najdete v tématu Vysoká dostupnost a zotavení po havárii pro SQL Server na virtuálních počítačích Azure.
2vrstvé a 3úrovňové použití virtuálních počítačů Azure a cloudových služeb
V tomto vzoru aplikace nasadíte do Azure dvě vrstvé nebo 3vrstvé aplikace pomocí služeb Azure Cloud Services (webových i pracovních rolí – Platforma jako služba (PaaS) a Azure Virtual Machines (Infrastruktura jako služba (IaaS)). Použití Azure Cloud Services pro prezentační vrstvu nebo obchodní vrstvu a SQL Server ve službě Azure Virtual Machines pro datovou vrstvu je výhodné pro většinu aplikací běžících v Azure. Důvodem je, že výpočetní instance spuštěná ve službě Cloud Services poskytuje snadnou správu, nasazení, monitorování a horizontální navýšení kapacity.
S Cloud Services azure udržuje infrastrukturu za vás, provádí rutinní údržbu, opravuje operační systémy a snaží se zotavit ze selhání služeb a hardwaru. Pokud vaše aplikace potřebuje škálovat, automaticky a ručně škálovat možnosti jsou dostupné pro váš projekt cloudové služby zvýšením nebo snížením počtu instancí nebo virtuálních počítačů, které vaše aplikace používá. Kromě toho můžete pomocí místní sady Visual Studio nasadit aplikaci do projektu cloudové služby v Azure.
Pokud nechcete mít rozsáhlé úlohy správy pro prezentační nebo obchodní úroveň a vaše aplikace nevyžaduje složitou konfiguraci softwaru nebo operačního systému, použijte Azure Cloud Services. Pokud Azure SQL Database nepodporuje všechny funkce, které hledáte, použijte SQL Server na virtuálním počítači Azure pro datovou vrstvu. Spuštění aplikace v Azure Cloud Services a ukládání dat ve službě Azure Virtual Machines kombinuje výhody obou služeb. Podrobné porovnání najdete v části v tomto tématu o porovnávání strategií vývoje v Azure.
V tomto vzoru aplikace prezentační vrstva obsahuje webovou roli, což je komponenta Cloud Services spuštěná v prostředí spouštění Azure a je přizpůsobená pro programování webových aplikací, jak je podporováno službou IIS a ASP.NET. Obchodní nebo back-endová úroveň zahrnuje roli pracovního procesu, což je komponenta Cloud Services spuštěná v spouštěcím prostředí Azure a je užitečná pro zobecněný vývoj a může provádět zpracování na pozadí pro webovou roli. Databázová vrstva se nachází na virtuálním počítači s SQL Serverem v Azure. Komunikace mezi prezentační vrstvou a databázovou vrstvou probíhá přímo nebo přes obchodní vrstvu – součásti role pracovního procesu.
Tento vzor aplikace je užitečný v těchto případech:
- Chcete přesunout podnikové aplikace z virtualizovaných platforem místně do Azure implementací možností vysoké dostupnosti a zotavení po havárii SQL Serveru.
- Chcete vlastnit prostředí infrastruktury, které může vertikálně navýšit nebo snížit kapacitu na vyžádání.
- Azure SQL Database nepodporuje všechny funkce, které vaše aplikace nebo databáze potřebuje.
- Chcete provést zátěžové testování pro různé úrovně úloh, ale zároveň nechcete vlastnit a udržovat mnoho fyzických počítačů po celou dobu.
Následující diagram znázorňuje místní scénář a jeho cloudové řešení. V tomto scénáři umístíte prezentační vrstvu do webových rolí, obchodní vrstvu v rolích pracovního procesu, ale datovou vrstvu ve virtuálních počítačích v Azure. Spouštění více kopií prezentační vrstvy v různých webových rolích zajišťuje vyrovnávání zatížení požadavků mezi nimi. Při kombinování služeb Azure Cloud Services s Azure Virtual Machines doporučujeme nastavit i službu Azure Virtual Network . Pomocí služby Azure Virtual Network můžete mít stabilní a trvalé privátní IP adresy ve stejné cloudové službě v cloudu. Jakmile definujete virtuální síť pro virtuální počítače a cloudové služby, můžou začít komunikovat mezi sebou přes privátní IP adresu. Kromě toho má virtuální počítače a webové role Azure nebo role pracovních procesů ve stejné službě Azure Virtual Network nízkou latenci a bezpečnější připojení. Další informace najdete v tématu Co je cloudová služba.
Jak je vidět v diagramu, Azure Load Balancer distribuuje provoz mezi několik virtuálních počítačů a také určuje, ke kterému webovému serveru nebo aplikačnímu serveru se má připojit. Několik instancí webových a aplikačních serverů za nástrojem pro vyrovnávání zatížení zajišťuje vysokou dostupnost prezentační vrstvy a obchodní vrstvy. Další informace najdete v tématu Osvědčené postupy pro vzory aplikací vyžadující SQL HADR.
Dalším přístupem k implementaci tohoto vzoru aplikace je použití konsolidované webové role, která obsahuje prezentační vrstvu i komponenty obchodní vrstvy, jak je znázorněno na následujícím diagramu. Tento vzor aplikace je užitečný pro aplikace, které vyžadují stavový návrh. Vzhledem k tomu, že Azure poskytuje bezstavové výpočetní uzly na webových rolích a rolích pracovních procesů, doporučujeme implementovat logiku pro ukládání stavu relace pomocí jedné z následujících technologií: Ukládání do mezipaměti Azure, Azure Table Storage nebo Azure SQL Database.
Model se službami Azure Virtual Machines, Azure SQL Database a Aplikace Azure Service (Web Apps)
Hlavním cílem tohoto modelu aplikace je ukázat, jak ve vašem řešení kombinovat komponenty infrastruktury Azure jako služby (IaaS) s komponentami Azure typu platforma jako služba (PaaS). Tento model se zaměřuje na Službu Azure SQL Database pro relační úložiště dat. Nezahrnuje SQL Server na virtuálním počítači Azure, který je součástí nabídky služeb infrastruktury Azure.
V tomto vzoru aplikace nasadíte databázovou aplikaci do Azure umístěním prezentačních a obchodních vrstev do stejného virtuálního počítače a přístupem k databázi na serverech Azure SQL Database (SQL Database). Prezentační vrstvu můžete implementovat pomocí tradičních webových řešení založených na službě IIS. Nebo můžete implementovat kombinovanou prezentaci a obchodní vrstvu pomocí služby Aplikace Azure Service.
Tento vzor aplikace je užitečný v těchto případech:
- Už máte existující server SLUŽBY SQL Database nakonfigurovaný v Azure a chcete aplikaci rychle otestovat.
- Chcete otestovat možnosti prostředí Azure.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Vaše obchodní logika a komponenty pro přístup k datům můžou být v rámci webové aplikace samostatně obsažené.
Následující diagram znázorňuje místní scénář a jeho cloudové řešení. V tomto scénáři umístíte aplikační vrstvy do jednoho virtuálního počítače v Azure a přistupujete k datům ve službě Azure SQL Database.
Pokud se rozhodnete implementovat kombinovanou webovou a aplikační vrstvu pomocí Azure Web Apps, doporučujeme ponechat střední vrstvu nebo aplikační vrstvu jako dynamické knihovny (DLL) v kontextu webové aplikace.
Kromě toho si projděte doporučení uvedená v části Porovnání strategií vývoje webu v Azure na konci tohoto článku, kde najdete další informace o programovacích technikách.
Model hybridní aplikace n-vrstvé
V modelu hybridních aplikací n-vrstvých implementujete aplikaci do více vrstev distribuovaných mezi místní prostředí a Azure. Proto vytvoříte flexibilní a opakovaně použitelný hybridní systém, který můžete upravit nebo přidat konkrétní úroveň beze změny ostatních vrstev. K rozšíření podnikové sítě do cloudu použijete službu Azure Virtual Network .
Tento model hybridní aplikace je užitečný v těchto případech:
- Chcete vytvářet aplikace, které běží částečně v cloudu a částečně místně.
- Chcete migrovat některé nebo všechny prvky existující místní aplikace do cloudu.
- Chcete přesunout podnikové aplikace z místních virtualizovaných platforem do Azure.
- Chcete vlastnit prostředí infrastruktury, které může vertikálně navýšit nebo snížit kapacitu na vyžádání.
- Chcete rychle zřizovat vývojová a testovací prostředí po krátkou dobu.
- Chcete nákladově efektivní způsob zálohování podnikových databázových aplikací.
Následující diagram znázorňuje model hybridních aplikací s n-vrstvou, který zahrnuje místní prostředí a Azure. Jak je znázorněno v diagramu, místní infrastruktura zahrnuje řadič domény Doména služby Active Directory Services, který podporuje ověřování a autorizaci uživatelů. Všimněte si, že diagram znázorňuje scénář, kdy některé části datové vrstvy žijí v místním datacentru, zatímco některé části datové vrstvy jsou aktivní v Azure. V závislosti na potřebách vaší aplikace můžete implementovat několik dalších hybridních scénářů. Můžete například zachovat prezentační úroveň a obchodní úroveň v místním prostředí, ale datovou vrstvu v Azure.
V Azure můžete použít Microsoft Entra ID (dříve Azure Active Directory) pro správu identit a přístupu nebo můžete integrovat existující místní Active Directory s Microsoft Entra ID. Jak je vidět v diagramu, komponenty obchodní vrstvy se můžou ověřovat ve více zdrojích dat, včetně SQL Serveru na virtuálních počítačích Azure prostřednictvím privátní interní IP adresy, místního SQL Serveru prostřednictvím služby Azure Virtual Network nebo Azure SQL Database pomocí technologií poskytovatele dat rozhraní .NET Framework. V tomto diagramu je Azure SQL Database volitelnou službou úložiště dat.
V modelu hybridních aplikací n-vrstvých můžete v uvedeném pořadí implementovat následující pracovní postup:
Pomocí sady nástrojů Microsoft Assessment and Planning (MAP) identifikujte podnikové databázové aplikace, které je potřeba přesunout do cloudu. Sada MAP Toolkit shromažďuje data inventáře a výkonu z počítačů, které zvažujete pro virtualizaci, a poskytuje doporučení týkající se plánování kapacity a posouzení.
Naplánujte prostředky a konfiguraci potřebnou na platformě Azure, jako jsou účty úložiště a virtuální počítače.
Nastavte síťové připojení mezi místní podnikovou sítí a službou Azure Virtual Network. Pokud chcete nastavit připojení mezi místní podnikovou sítí a virtuálním počítačem v Azure, použijte jednu z následujících dvou metod:
Vytvořte připojení mezi místním prostředím a Azure prostřednictvím veřejných koncových bodů na virtuálním počítači v Azure. Tato metoda poskytuje snadnou instalaci a umožňuje používat ověřování SQL Serveru ve virtuálním počítači. Kromě toho nastavte pravidla skupiny zabezpečení sítě pro řízení veřejného provozu do virtuálního počítače. Další informace najdete v tématu Povolení externího přístupu k virtuálnímu počítači pomocí webu Azure Portal.
Navázání připojení mezi místním prostředím a Azure prostřednictvím tunelu Azure Virtual Private Network (VPN). Tato metoda umožňuje rozšířit zásady domény na virtuální počítač v Azure. Kromě toho můžete na virtuálním počítači nastavit pravidla brány firewall a používat ověřování systému Windows. V současné době podpora Azure zabezpečená připojení VPN typu site-to-site a vpn typu point-to-site:
- Pomocí zabezpečeného připojení typu site-to-site můžete navázat síťové připojení mezi vaší místní sítí a virtuální sítí v Azure. Doporučuje se připojit místní prostředí datového centra k Azure.
- Díky zabezpečenému připojení typu point-to-site můžete navázat síťové připojení mezi vaší virtuální sítí v Azure a jednotlivými počítači, které běží kdekoli. Většinou se doporučuje pro účely vývoje a testování.
Informace o připojení k SQL Serveru v Azure najdete v tématu Připojení k virtuálnímu počítači s SQL Serverem v Azure.
Nastavte naplánované úlohy a výstrahy, které zálohují místní data na disku virtuálního počítače v Azure. Další informace najdete v tématu Zálohování a obnovení SQL Serveru se službou Azure Blob Storage a zálohováním a obnovením SQL Serveru na virtuálních počítačích Azure.
V závislosti na potřebách vaší aplikace můžete implementovat jeden z následujících tří běžných scénářů:
- Webový server, aplikační server a necitlivá data můžete ponechat v databázovém serveru v Azure, zatímco citlivá data uchováváte místně.
- Webový server a aplikační server můžete zachovat místně, zatímco databázový server na virtuálním počítači v Azure.
- Databázový server, webový server a aplikační server můžete uchovávat místně, zatímco repliky databáze uchováváte ve virtuálních počítačích v Azure. Toto nastavení umožňuje místním webovým serverům nebo aplikacím pro vytváření sestav přístup k replikám databáze v Azure. Proto můžete dosáhnout snížení zatížení v místní databázi. Tento scénář doporučujeme implementovat pro náročné úlohy čtení a vývojové účely. Informace o vytváření replik databáze v Azure najdete v tématu Skupiny dostupnosti AlwaysOn s vysokou dostupností a zotavení po havárii pro SQL Server na virtuálních počítačích Azure.
Porovnání strategií vývoje pro web v Azure
K implementaci a nasazení vícevrstvé aplikace založené na SQL Serveru v Azure můžete použít jednu z následujících dvou programovacích metod:
- Nastavte tradiční webový server (IIS – Internetová informační služba) v Azure a získejte přístup k databázím v SQL Serveru na virtuálních počítačích Azure.
- Implementujte a nasaďte cloudovou službu do Azure. Pak se ujistěte, že tato cloudová služba má přístup k databázím na SQL Serveru na virtuálních počítačích Azure. Cloudová služba může obsahovat více webových a pracovních rolí.
Následující tabulka obsahuje porovnání tradičního vývoje webů se službami Azure Cloud Services a Azure Web Apps s ohledem na SQL Server ve službě Azure Virtual Machines. Tabulka obsahuje Azure Web Apps, protože je možné použít SQL Server na virtuálním počítači Azure jako zdroj dat pro Azure Web Apps prostřednictvím jeho veřejné virtuální IP adresy nebo názvu DNS.
Tradiční vývoj webů ve službě Azure Virtual Machines | Cloudové služby v Azure | Hostování webů pomocí Azure Web Apps | |
---|---|---|---|
Migrace aplikací z místního prostředí | Existující aplikace tak, jak jsou. | Aplikace potřebují webové role a role pracovních procesů. | Stávající aplikace jsou ale vhodné pro samostatné webové aplikace a webové služby, které vyžadují rychlou škálovatelnost. |
Vývoj a nasazení | Visual Studio, WebMatrix, Visual Web Developer, WebDeploy, FTP, TFS, IIS Manager, PowerShell. | Visual Studio, Azure SDK, TFS, PowerShell. Každá cloudová služba má dvě prostředí, do kterých můžete nasadit balíček a konfiguraci služby: přípravnou a produkční. Cloudovou službu můžete nasadit do přípravného prostředí a otestovat ji před povýšení do produkčního prostředí. | Visual Studio, WebMatrix, Visual Web Developer, FTP, GIT, BitBucket, CodePlex, DropBox, GitHub, Mercurial, TFS, Web Deploy, PowerShell. |
Správa a nastavení | Zodpovídáte za úlohy správy aplikace, dat, pravidel brány firewall, virtuální sítě a operačního systému. | Zodpovídáte za úlohy správy aplikace, dat, pravidel brány firewall a virtuální sítě. | Zodpovídáte za úlohy správy pouze v aplikaci a datech. |
Vysoká dostupnost a zotavení po havárii (HADR) | Doporučujeme umístit virtuální počítače do stejné skupiny dostupnosti a do stejné cloudové služby. Udržování virtuálních počítačů ve stejné skupině dostupnosti umožňuje Azure umístit uzly s vysokou dostupností do samostatných domén selhání a upgradovat domény. Podobně udržování virtuálních počítačů ve stejné cloudové službě umožňuje vyrovnávání zatížení a virtuální počítače můžou mezi sebou komunikovat přímo přes místní síť v datovém centru Azure. Zodpovídáte za implementaci řešení vysoké dostupnosti a zotavení po havárii pro SQL Server na virtuálních počítačích Azure, abyste se vyhnuli výpadkům. Podporované technologie HADR najdete v tématu Vysoká dostupnost a zotavení po havárii pro SQL Server na virtuálních počítačích Azure. Zodpovídáte za zálohování vlastních dat a aplikací. Azure může virtuální počítače přesunout, pokud hostitelský počítač v datovém centru selže kvůli problémům s hardwarem. Kromě toho může dojít k plánovanému výpadku virtuálního počítače, když se hostitelský počítač aktualizuje kvůli zabezpečení nebo aktualizacím softwaru. Proto doporučujeme udržovat alespoň dva virtuální počítače v každé aplikační vrstvě, abyste zajistili nepřetržitou dostupnost. Azure neposkytuje smlouvu SLA pro jeden virtuální počítač. |
Azure spravuje selhání vyplývající ze základního hardwaru nebo softwaru operačního systému. Doporučujeme implementovat více instancí webové role nebo role pracovního procesu, abyste zajistili vysokou dostupnost vaší aplikace. Informace najdete v tématu Cloud Services, Virtual Machines a Smlouva o úrovni služeb virtuální sítě. Zodpovídáte za zálohování vlastních dat a aplikací. U databází umístěných v databázi SQL Serveru na virtuálním počítači Azure zodpovídáte za implementaci řešení vysoké dostupnosti a zotavení po havárii, abyste se vyhnuli výpadkům. Podporované technologie HDAR najdete v tématu Vysoká dostupnost a zotavení po havárii pro SQL Server na virtuálních počítačích Azure. Zrcadlení databáze SQL Serveru: Používá se se službou Azure Cloud Services (webové role nebo role pracovního procesu). Virtuální počítače s SQL Serverem a projekt cloudové služby můžou být ve stejné virtuální síti Azure. Pokud virtuální počítač s SQL Serverem není ve stejné virtuální síti, musíte vytvořit alias SQL Serveru pro směrování komunikace do instance SQL Serveru. Kromě toho musí název aliasu odpovídat názvu SQL Serveru. |
Vysoká dostupnost se dědí z rolí pracovních procesů Azure, Azure Blob Storage a Azure SQL Database. Azure Storage například udržuje tři repliky všech dat objektů blob, tabulek a front. Azure SQL Database vždy uchovává tři repliky dat spuštěné – jednu primární a dvě sekundární repliky. Další informace najdete v tématu Azure Storage a Azure SQL Database. Při použití SQL Serveru na virtuálním počítači Azure jako zdroje dat pro Azure Web Apps mějte na paměti, že Azure Web Apps nepodporuje Službu Azure Virtual Network. Jinými slovy, všechna připojení z Azure Web Apps k virtuálním počítačům s SQL Serverem v Azure musí projít veřejnými koncovými body virtuálních počítačů. To může způsobit určitá omezení pro scénáře vysoké dostupnosti a zotavení po havárii. Klientská aplikace ve službě Azure Web Apps, která se připojuje k virtuálnímu počítači s SQL Serverem s zrcadlením databáze, by se například nemohla připojit k novému primárnímu serveru, protože zrcadlení databáze vyžaduje, abyste nastavili virtuální síť Azure mezi hostitelskými virtuálními počítači SQL Serveru v Azure. Proto se v současné době nepodporuje použití zrcadlení databáze SQL Serveru se službou Azure Web Apps. Skupiny dostupnosti AlwaysOn PRO SQL Server: Skupiny dostupnosti AlwaysOn můžete nastavit při použití Azure Web Apps s virtuálními počítači s SQL Serverem v Azure. Musíte ale nakonfigurovat naslouchací proces skupiny dostupnosti AlwaysOn tak, aby přes veřejné koncové body s vyrovnáváním zatížení směrovali komunikaci na primární repliku. |
Připojení mezi místními sítěmi | K připojení k místnímu prostředí můžete použít Azure Virtual Network. | K připojení k místnímu prostředí můžete použít Azure Virtual Network. | Podporuje se služba Azure Virtual Network. |
Škálovatelnost | Vertikální navýšení kapacity je dostupné zvýšením velikosti virtuálních počítačů nebo přidáním dalších disků. Další informace o velikostech virtuálních počítačů najdete v tématu Velikosti virtuálních počítačů pro Azure. Databázový server: Horizontální navýšení kapacity je dostupné prostřednictvím technik dělení databáze a skupin dostupnosti AlwaysOn SQL Serveru. Pro úlohy s velkým počtem čtení můžete skupiny dostupnosti AlwaysOn použít na několika sekundárních uzlech a také replikaci SQL Serveru. U náročných úloh zápisu můžete implementovat horizontální dělení dat na více fyzických serverů, aby bylo možné škálovat aplikace na více instancí. Kromě toho můžete implementovat škálování na více instancí pomocí SQL Serveru se směrováním závislým na datech. V případě směrování závislého na datech (DDR) je potřeba implementovat mechanismus dělení v klientské aplikaci, obvykle ve vrstvě obchodní vrstvy, a směrovat požadavky databáze do více uzlů SQL Serveru. Obchodní vrstva obsahuje mapování na způsob rozdělení dat a to, který uzel obsahuje data. Můžete škálovat aplikace, na kterých běží virtuální počítače. Další informace naleznete v tématu Jak škálovat aplikaci. Důležitá poznámka: Funkce automatického škálování v Azure umožňuje automaticky zvýšit nebo snížit počet virtuálních počítačů, které vaše aplikace používá. Tato funkce zaručuje, že prostředí koncového uživatele není během období špičky negativně ovlivněno a virtuální počítače se vypínají, když je poptávka nízká. Pokud obsahuje virtuální počítače s SQL Serverem, doporučujeme, abyste pro cloudovou službu nenastavili možnost automatického škálování. Důvodem je, že funkce automatického škálování umožňuje Azure zapnout virtuální počítač, když je využití procesoru v daném virtuálním počítači vyšší než určitá prahová hodnota, a vypnout virtuální počítač, když využití procesoru klesne. Funkce Automatické škálování je užitečná pro bezstavové aplikace, jako jsou webové servery, kde jakýkoli virtuální počítač může spravovat úlohy bez jakýchkoli odkazů na předchozí stav. Funkce automatického škálování ale není užitečná pro stavové aplikace, jako je SQL Server, kde do databáze umožňuje zápis pouze jedna instance. |
Vertikální navýšení kapacity je k dispozici pomocí více webových rolí a rolí pracovního procesu. Další informace o velikostech virtuálních počítačů pro webové role a role pracovního procesu najdete v tématu Konfigurace velikostí pro cloudové služby. Při používání cloudových služeb můžete definovat více rolí pro distribuci zpracování a také flexibilní škálování aplikace. Každá cloudová služba zahrnuje jednu nebo více webových rolí a/nebo rolí pracovního procesu, z nichž každá má vlastní soubory aplikací a konfiguraci. Cloudovou službu můžete vertikálně navýšit navýšením počtu instancí rolí (virtuálních počítačů) nasazených pro roli a vertikálním snížením kapacity cloudové služby snížením počtu instancí rolí. Podrobné informace najdete v tématu Modely spouštění Azure. Horizontální navýšení kapacity je dostupné prostřednictvím integrované podpory vysoké dostupnosti Azure prostřednictvím cloudových služeb, virtuálních počítačů a smlouvy o úrovni služeb virtuální sítě a nástroje pro vyrovnávání zatížení. U vícevrstvé aplikace doporučujeme připojit aplikaci webových rolí nebo rolí pracovních procesů k virtuálním počítačům s databázovým serverem prostřednictvím služby Azure Virtual Network. Kromě toho Azure poskytuje vyrovnávání zatížení virtuálních počítačů ve stejné cloudové službě a šíří požadavky uživatelů mezi ně. Virtuální počítače připojené tímto způsobem můžou vzájemně komunikovat přímo přes místní síť v rámci datového centra Azure. Automatické škálování můžete nastavit na webu Azure Portal i časy plánu. Další informace najdete v tématu Konfigurace automatického škálování pro cloudovou službu na portálu. |
Vertikální navýšení a snížení kapacity: Můžete zvětšit nebo zmenšit velikost instance (virtuálního počítače) rezervované pro váš web. Horizontální navýšení kapacity: Pro svůj web můžete přidat další rezervované instance (virtuální počítače). Automatické škálování můžete nastavit na portálu i časy plánu. Další informace najdete v tématu Škálování webových aplikací. |
Další informace o výběru mezi těmito programovacími metodami najdete v tématu Azure Web Apps, Cloud Services a virtuální počítače: Kdy použít.
Další krok
Další informace o spuštění SQL Serveru na virtuálních počítačích Azure najdete v tématu PŘEHLED SQL Serveru na virtuálních počítačích Azure.