Migrace aplikace do Azure App Service a SQL Database
Tento článek ukazuje, jak fiktivní společnost Contoso refaktoruje dvouvrstvé aplikace Windows .NET, která běží na virtuálních počítačích VMware v rámci migrace do Azure. Tým Společnosti Contoso migruje front-end virtuální počítač aplikace do webové aplikace Azure App Service a databáze aplikace do Azure SQL Database.
Aplikace SmartHotel360, kterou používáme v tomto příkladu, je k dispozici jako opensourcový software. Pokud ho chcete použít pro vlastní testovací účely, můžete si ho stáhnout z GitHubu.
Obchodní faktory
Tým vedení IT ve společnosti Contoso těsně spolupracoval s obchodními partnery, aby zjistil, čeho chtějí touto migrací dosáhnout:
- Řešení obchodního růstu. Společnost Contoso roste a je zde tlak na její místní systémy a infrastrukturu.
- Zvýšení efektivity. Společnost Contoso potřebuje odstranit zbytečné postupy a zjednodušit procesy pro vývojáře a uživatele. Potřebuje IT k tomu, aby neztrácela čas ani peníze, byla rychlá a dokázala rychleji reagovat na požadavky zákazníků.
- Zvýšení agility. Aby bylo možné uspět v globální ekonomice, musí IT společnosti Contoso lépe reagovat na potřeby firmy. Musí být schopná rychleji reagovat na změny na marketplace. IT nesmí překřižovat nebo se stát překážkou podnikání.
- Škálování: Contoso se úspěšně rozšiřuje a IT musí poskytovat systémy, které jsou schopné rozvíjet se stejným tempem.
- Snížení nákladů Společnost Contoso chce minimalizovat náklady na licencování.
Cíle migrace
Aby bylo možné určit nejlepší metodu migrace, cloudový tým Společnosti Contoso přisoudil následující cíle:
Požadavky | Podrobnosti |
---|---|
Aplikace | Aplikace v Azure zůstane stejně důležitá jako dnes v místním prostředí. Měla by mít stejné výkonové možnosti, jako má v současnosti ve VMware. Tým nechce do aplikace investovat. Prozatím správci jednoduše bezpečně přesunou aplikaci do cloudu. Tým chce přestat podporovat Windows Server 2008 R2, na kterém aplikace aktuálně běží. Tým chce také přejít z SQL Server 2008 R2 na moderní databázi paaS (platforma jako služba), která minimalizuje potřebu správy. Contoso chce využít investici do licencování SQL Serveru a Software Assurance, kdykoli je to možné. Navíc chce zmírnit kritický prvek způsobující selhání ve webové vrstvě. |
Omezení | Aplikace se skládá z aplikace ASP.NET a služby WCF (Windows Communication Foundation) běžící na stejném virtuálním počítači. Chtějí tyto komponenty rozšířit do dvou webových aplikací pomocí Azure App Service. |
Azure | Společnost Contoso chce aplikaci přesunout do Azure, ale nechce ji spouštět na virtuálních počítačích. Contoso chce používat služby Azure PaaS pro webovou i datovou vrstvu. |
DevOps | Společnost Contoso chce přejít na model DevOps, který pro sestavení a kanály verzí používá Azure DevOps. |
Návrh řešení
Po zadání cílů a požadavků společnost Contoso navrhne a zkontroluje řešení nasazení. Také identifikují proces migrace, včetně služeb Azure, které budou k migraci používat.
Aktuální aplikace
- Místní aplikace SmartHotel360 se vrství na dva virtuální počítače
WEBVM
aSQLVM
. - Virtuální počítače se nacházejí na hostiteli
contosohost1.contoso.com
VMware ESXi verze 6.5. - Prostředí VMware spravuje vCenter Server 6.5 (
vcenter.contoso.com
), který běží na virtuálním počítači. - Contoso má místní datacentrum (
contoso-datacenter
) s místním řadičem domény (contosodc1
). - Po dokončení migrace budou místní virtuální počítače v datacentru společnosti Contoso vyřazeny z provozu.
Navrhované řešení
- U databázové vrstvy aplikace společnost Contoso srovnala Azure SQL Database s SQL Server pomocí porovnání funkcí: Azure SQL Database a Azure SQL Managed Instance. Společnost Contoso se rozhodla používat Azure SQL Database z několika důvodů:
- Azure SQL Database je spravovaná služba relačních databází. Zajišťuje předvídatelný výkon na několika úrovních služeb, a to s téměř nulovou správou. Mezi její další výhody patří dynamická škálovatelnost bez výpadků, integrovaná inteligentní optimalizace a globální škálovatelnost a dostupnost.
- Společnost Contoso může použít odlehčenou Data Migration Assistant k posouzení migrace místní databáze do Azure SQL Database.
- Společnost Contoso může použít Azure Database Migration Service k migraci místní databáze do Azure SQL Database.
- Se software Assurance může společnost Contoso vyměnit stávající licence za snížené sazby pro databázi v SQL Database pomocí Zvýhodněné hybridní využití Azure pro SQL Server. Tento přístup může přinést úsporu nákladů až o 30 procent.
- SQL Database poskytuje funkce zabezpečení, jako jsou Always Encrypted, dynamické maskování dat, zabezpečení na úrovni řádků a detekce hrozeb SQL.
- Pro webovou vrstvu aplikace se společnost Contoso rozhodla použít Azure App Service. Tato služba PaaS jim umožňuje nasadit aplikaci s několika změnami konfigurace. Společnost Contoso provede změnu pomocí sady Visual Studio a nasadí dvě webové aplikace, jednu pro web a druhou pro službu WCF.
- Aby společnost Contoso splnila požadavky na kanál DevOps, použije azure DevOps ke správě zdrojového kódu s úložišti Git. Pomocí automatizovaných sestavení a vydaných verzí vytvoří kód a nasadí ho do Azure App Service.
Revize řešení
Společnost Contoso vyhodnocuje navrhovaný návrh sestavením seznamu kladů a záporů, jak je znázorněno v následující tabulce:
Aspekty | Podrobnosti |
---|---|
Výhody | Kód aplikace SmartHotel360 nevyžaduje změny pro migraci do Azure. Společnost Contoso může využít své investice do Programu Software Assurance pomocí Zvýhodněné hybridní využití Azure pro SQL Server i Windows Server. Po migraci nebude nutné systém Windows Server 2008 R2 podporovat. Další informace najdete v tématu Zásady životního cyklu Microsoftu. Společnost Contoso může nakonfigurovat webovou vrstvu aplikace s více instancemi, aby už webová vrstva nebyla jediným bodem způsobujícím selhání. Databáze už nebude záviset na zastarávajícím SQL Serveru 2008 R2. SQL Database podporuje dané technické požadavky. Společnost Contoso posoudila místní databázi pomocí Data Migration Assistant a zjistila, že je kompatibilní. Azure SQL Database má integrovanou odolnost proti chybám, kterou contoso nemusí nastavovat. Tím se zajistí, že datová vrstva už nebude jediným bodem převzetí služeb při selhání. Pokud společnost Contoso použije k migraci databáze Azure Database Migration Service, bude mít infrastrukturu připravenou pro migraci databází ve velkém měřítku. |
Nevýhody | Azure App Service podporuje pouze jedno nasazení aplikace pro každou webovou aplikaci. To znamená, že musí být zřízeny dvě webové aplikace, jedna pro web a jedna pro službu WCF. |
Navrhovaná architektura
Proces migrace
Společnost Contoso zřídí databázi Azure SQL a pak do ní pomocí Azure Database Migration Service migruje databázi SmartHotel360.
Contoso zřídí a nakonfiguruje webové aplikace a nasadí do nich aplikaci SmartHotel360.
Služby Azure
Služba | Popis | Náklady |
---|---|---|
Pomocník s migrací Azure App Service | Bezplatná a jednoduchá cesta k bezproblémové migraci webových aplikací .NET z místního prostředí do cloudu s minimálními nebo žádnými změnami kódu. | Jedná se o nástroj ke stažení, který je zdarma. |
Data Migration Assistant | Společnost Contoso použije Data Migration Assistant k posouzení a detekci problémů s kompatibilitou, které můžou mít vliv na funkčnost databáze v Azure. Data Migration Assistant vyhodnocuje paritu funkcí mezi zdroji a cíli SQL a doporučuje vylepšení výkonu a spolehlivosti. | Jedná se o nástroj ke stažení, který je zdarma. |
Azure Database Migration Service | Azure Database Migration Service umožňuje bezproblémovou migraci z více databázových zdrojů na datové platformy Azure s minimálními výpadky. | Informace o podporovaných oblastech a cenách služby Database Migration Service |
Azure SQL Database | Inteligentní, plně spravovaná relační cloudová databázová služba | Náklady jsou založené na funkcích, propustnosti a velikosti. Další informace. |
Azure App Service | Pomáhá vytvářet výkonné cloudové aplikace, které používají plně spravovanou platformu. | Ceny jsou založené na velikosti, umístění a délce využití. Další informace. |
Azure Pipelines | Poskytuje kanál kontinuální integrace a průběžného nasazování (CI/CD) pro vývoj aplikací. Kanál začíná úložištěm Git pro správu kódu aplikace, systémem sestavení pro vytváření balíčků a dalších artefaktů sestavení a systémem pro správu verzí pro nasazení změn ve vývojovém, testovacím a produkčním prostředí. |
Požadavky
Aby společnost Contoso tento scénář spustila, musí splňovat následující požadavky:
Požadavky | Podrobnosti |
---|---|
Předplatné Azure | Firma Contoso vytvořila předplatná v dřívějším článku v této sérii. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet. Pokud vytvoříte bezplatný účet, jste správcem vašeho předplatného a můžete provádět všechny akce. Pokud používáte existující předplatné a nejste správcem, musíte správce požádat, aby vám udělil oprávnění Vlastník nebo Přispěvatel. |
Infrastruktura Azure | Contoso nastaví svoji infrastrukturu Azure podle popisu v článku Infrastruktura Azure pro migraci. |
Kroky scénáře
Contoso provede migraci takto:
- Krok 1: Posouzení a migrace webových aplikací Společnost Contoso používá nástroj Azure App Service Migration Assistant ke spouštění kontrol kompatibility před migrací a migraci webových aplikací do Azure App Service.
- Krok 2: Zřízení databáze v Azure SQL Database Contoso zřídí instanci Azure SQL Database. Po migraci webu aplikace do Azure bude webová aplikace služby WCF odkazovat na tuto instanci.
- Krok 3: Posouzení databáze Společnost Contoso vyhodnotí databázi pro migraci pomocí Data Migration Assistant a pak ji migruje prostřednictvím Azure Database Migration Service.
- Krok 4: Nastavení Azure DevOps Contoso vytvoří nový projekt Azure DevOps a naimportuje úložiště Git.
- Krok 5: Konfigurace připojovacích řetězců Contoso nakonfiguruje připojovací řetězce tak, aby webová aplikace webové vrstvy, webová aplikace služby WCF a instance SQL mohly vzájemně komunikovat.
- Krok 6: Nastavení kanálů sestavení a vydání v Azure DevOps Jako poslední krok společnost Contoso nastaví kanály sestavení a verze v Azure DevOps, které vytvoří aplikaci, a pak je nasadí do dvou samostatných webových aplikací.
Krok 1: Posouzení a migrace webových aplikací
Správci společnosti Contoso vyhodnocují a migrují svou webovou aplikaci pomocí nástroje Azure App Service Migration Assistant. Během procesu používají studijní program Migrace ASP.NET aplikací do Azure jako průvodce. Správci provádějí tyto akce:
Pomocí nástroje pro posouzení migrace Azure App Service vyhodnocují všechny závislosti mezi svými webovými aplikacemi a určují, jestli mezi místními webovými aplikacemi existují nějaké nekompatibility a co je podporováno na Azure App Service.
Stáhnutí nástroje Azure App Service Migration Assistant a přihlášení ke svému účtu Azure.
Zvolí předplatné, skupinu prostředků a název domény webu.
Krok 2: Zřízení databáze v Azure SQL Database
Správci společnosti Contoso se rozhodnou vytvořit instanci Azure SQL Database.
Určí název databáze,
SmartHotel.Registration
který se má shodovat s databází, která běží na místním virtuálním počítači. Umístí databázi doContosoRG
skupiny prostředků. Jedná se o skupinu prostředků, kterou používají pro produkční prostředky v Azure.Nastaví novou instanci
sql-smarthotel-eus2
SQL Server v primární oblasti.Nastaví cenovou úroveň tak, aby odpovídala potřebám jejich serveru a databáze. A rozhodnou se ušetřit prostřednictvím programu Zvýhodněné hybridní využití Azure, protože už mají licenci SQL Serveru.
Pro určení velikosti používají nákupy založené na virtuálních jádrech a nastavují limity pro své očekávané požadavky.
Vytvoří instanci databáze.
Otevřou databázi a poznají si podrobnosti, které budou potřebovat při použití Data Migration Assistant k migraci.
Potřebujete další pomoc?
- Získejte pomoc se zřízením databáze SQL.
- Přečtěte si o limitech prostředků virtuálních jader.
Krok 3: Posouzení databáze
Správci společnosti Contoso vyhodnocují databázi pomocí Data Migration Assistant a pak ji migrují pomocí Azure Database Migration Service s využitím podrobného kurzu migrace. Můžou provádět online, offline a hybridní migrace (Preview).
Stručně řečeno, správci dělají toto:
- Používají Data Migration Assistant ke zjišťování a řešení problémů s migrací databází.
- Vytvoří Azure Database Migration Service instanci se skladovou položkou Premium, která je připojená k virtuální síti.
- Zajišťují, aby instance přistupovala ke vzdálené SQL Server přes virtuální síť. To zahrnuje zajištění, aby všechny příchozí porty z Azure byly povolené do SQL Server na úrovni virtuální sítě, síťové sítě VPN a počítače, který hostuje SQL Server.
- Nakonfigurují instanci:
- Vytvořte projekt migrace.
- Přidejte zdroj (místní databázi).
- Vyberte cíl.
- Vyberte databáze, které chcete migrovat.
- Nakonfigurujte upřesňující nastavení.
- Spusťte replikaci.
- Vyřešte všechny chyby.
- Proveďte konečný přechod.
Krok 4: Nastavení Azure DevOps
Contoso pro tuto aplikaci potřebuje sestavit kanály a infrastrukturu DevOps. Správci Contoso k tomuto účelu vytvoří nový projekt DevOps, naimportují kód a potom nastaví kanály buildu a verze.
V účtu Azure DevOps společnosti Contoso vytvoří nový projekt
ContosoSmartHotelRefactor
a pak pro správu verzí vybere Git .Naimportují úložiště Git, které aktuálně obsahuje kód aplikace. Stáhnutí z veřejného úložiště GitHub.
Připojí Visual Studio k úložišti a pak kód naklonují do vývojářského počítače pomocí Team Exploreru.
Otevřou soubor řešení pro aplikaci. Webová aplikace a služba WCF mají v souboru samostatné projekty.
Krok 5: Konfigurace připojovacích řetězců
Správci společnosti Contoso se ujistí, že webové aplikace a databáze spolu můžou komunikovat. Proto v kódu a ve webových aplikacích nakonfigurují připojovací řetězce.
Ve webové aplikaci pro službu
SHWCF-EUS2
WCF v části Nastavení>Nastavení Aplikace přidají nový připojovací řetězec s názvem DefaultConnection.Načte připojovací řetězec z databáze a pak ho
SmartHotel-Registration
aktualizují se správnými přihlašovacími údaji.V sadě Visual Studio správci otevřou
SmartHotel.Registration.wcf
projekt ze souboru řešení. V projektu aktualizujíconnectionStrings
částweb.config
souboru připojovacím řetězcem.Změní
client
oddílweb.config
souboru proSmartHotel.Registration.Web
tak, aby ukazoval na nové umístění služby WCF. Toto je adresa URL webové aplikace WCF, která hostuje koncový bod služby.Změny kódu jsou teď na místě a správci je potvrdí a synchronizují pomocí Team Exploreru v sadě Visual Studio.
Krok 6: Nastavení kanálů sestavení a verzí v Azure DevOps
Správci společnosti Contoso teď nakonfigurují Azure DevOps tak, aby provedli proces sestavení a vydání.
V Azure DevOps vyberou Sestavit a vydat>nový kanál.
Vyberou Azure Repos Gitu a v rozevíracím seznamu Úložiště vyberou příslušné úložiště.
V části Vybrat šablonu vyberou
ASP.NET
šablonu pro své sestavení.Použijí název
ContosoSmartHotelRefactor-ASP.NET-CI
sestavení a pak vyberou Uložit & frontu, čímž spustí první sestavení.Vyberou číslo buildu, aby mohli celý proces sledovat. Po dokončení uvidí správci zpětnou vazbu k procesu a vyberou Artefakty a zkontrolují výsledky sestavení.
Otevře se podokno Průzkumník artefaktů a v rozevírací složce se zobrazí výsledky sestavení.
- Dva .zip soubory jsou balíčky, které obsahují aplikace.
- Tyto .zip soubory se používají v kanálu verze pro nasazení do Azure App Service.
Vyberou Vydané verze>+ Nový kanál.
Vyberou šablonu nasazení pro Azure App Service.
Pojmenují kanál
ContosoSmartHotel360Refactor
verze a v poli Název fáze zadajíSHWCF-EUS2
jako název webové aplikace WCF.V rámci fází pro konfiguraci nasazení služby WCF vyberou 1 úloha, 1 úkol.
Ověří, že je předplatné vybrané a autorizované, a pak vyberou název služby App Service.
V kanálu Artifacts (Artefakty) >vyberou + Přidat artefakt a pak vyberou sestavení s kanálem
ContosoSmarthotel360Refactor
.Pokud chtějí správci povolit trigger průběžného nasazování, vyberou na artefaktu ikonu blesku.
Nastaví trigger průběžného nasazování na Povoleno.
Správci se vrátí k úloze fáze 1, 1 úkolu a pak vyberou Nasadit Azure App Service.
V části Vybrat soubor nebo složku rozbalí složku , vybere
SmartHotel.Registration.Wcf.zip
soubor vytvořený během sestavení a pak vybere Uložit.VyberouFázekanálu> a pak výběrem + Přidat přidá prostředí pro
SHWEB-EUS2
. Vyberou jiné nasazení Azure App Service.Zopakují proces publikování
SmartHotel.Registration.Web.zip
souboru do správné webové aplikace a pak vyberou Uložit.Zobrazí se kanál verze, jak je znázorněno tady:
Vrátí se do sestavení, vybere Aktivační události a pak zaškrtne políčko Povolit kontinuální integraci . Tato akce povolí kanál tak, aby při potvrzení změn kódu došlo k úplnému sestavení a vydání.
Výběrem možnosti Uložit & frontu spustí celý kanál. Aktivuje se nové sestavení, které následně vytvoří první verzi aplikace pro Azure App Service.
Správci Contoso mohou proces zpracování kanálu buildu a verze sledovat z Azure DevOps. Po dokončení sestavení se spustí vydání.
Po dokončení kanálu se nasadí oba weby a aplikace bude spuštěná online.
Aplikace se úspěšně migrovala do Azure.
Vyčištění po migraci
Po migraci společnost Contoso dokončí tyto kroky čištění:
- Odeberou místní virtuální počítače z inventáře vCenter.
- Odeberou virtuální počítače z místních úloh zálohování.
- Aktualizují svou interní dokumentaci, aby zobrazila nová umístění aplikace SmartHotel360. Dokumentace ukazuje databázi spuštěnou ve Azure SQL Database a front-end jako spuštěnou ve dvou webových aplikacích.
- Zkontrolují všechny prostředky, které interagují s vyřazenými virtuálními počítači, a aktualizují všechna příslušná nastavení nebo dokumentaci tak, aby odrážely novou konfiguraci.
Kontrola nasazení
Po migraci prostředků do Azure potřebuje společnost Contoso plně zprovoznit a pomoct zabezpečit novou infrastrukturu.
Zabezpečení
- Společnost Contoso pomáhá zajistit, aby její nová
SmartHotel-Registration
databáze byla zabezpečená. Další informace. - Společnost Contoso zejména aktualizuje webové aplikace tak, aby používaly PROTOKOL SSL s certifikáty.
Zálohování
- Tým společnosti Contoso zkontroluje požadavky na zálohování databáze Azure SQL. Další informace.
- Dozví se také o správě SQL Database zálohování a obnovení. Přečtěte si další informace o automatickém zálohování.
- Zvažují implementaci skupin převzetí služeb při selhání, které zajistí regionální převzetí služeb při selhání pro databázi. Přečtěte si další informace.
- Z důvodu odolnosti zvažují nasazení webové aplikace v hlavní oblasti (
East US 2
) a sekundární oblasti (Central US
). Tým může nakonfigurovat Traffic Manager tak, aby zajistil převzetí služeb při selhání během regionálních výpadků.
Licencování a optimalizace nákladů
- Po nasazení všech prostředků contoso přiřadí značky Azure na základě jejich plánování infrastruktury.
- Veškeré licencování je součástí nákladů na služby PaaS, které společnost Contoso spotřebovává. Tyto náklady se odečtou od smlouva Enterprise.
- Společnost Contoso použije Azure Cost Management + Billing k zajištění toho, aby zůstala v rámci rozpočtů stanovených vedením IT.
Závěr
V tomto článku společnost Contoso refaktorovala aplikaci SmartHotel360 v Azure migrací front-endového virtuálního počítače aplikace do dvou Azure App Service webových aplikací. Databáze aplikace byla migrována do Azure SQL Database.