Migrace aplikace do Azure App Service a SQL Database
Tento článek ukazuje, jak fiktivní společnost Contoso refaktoruje dvouúrovňovou aplikaci Windows .NET, která běží na virtuálních počítačích VMware v rámci migrace do Azure. Tým společnosti Contoso migruje virtuální počítač front-endu aplikace do Azure App Service webové aplikace a databázi aplikací do Azure SQL Database.
Aplikace SmartHotel360, kterou používáme v tomto příkladu, je poskytována 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 odebrat 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 it oddělení společnosti Contoso mohlo uspět v globální ekonomice, musí 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 pro 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 tým společnosti Contoso pro cloud pomohl určit nejlepší metodu migrace, vytyčil si 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), což 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 ASP.NET aplikace a služby WCF (Windows Communication Foundation) spuštěné na stejném virtuálním počítači. Chtějí tyto komponenty rozšířit mezi dvě webové aplikace 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 své buildy 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í. Identifikují také proces migrace, včetně služeb Azure, které budou k migraci používat.
Aktuální aplikace
- Místní aplikace SmartHotel360 je vrstvené mezi dva virtuální počítače
WEBVM
aSQLVM
. - Virtuální počítače jsou umístěné 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í
- Pro databázovou vrstvu aplikace společnost Contoso porovnala službu Azure SQL Database s SQL Server pomocí porovnání funkcí: Azure SQL Database a Azure SQL Managed Instance. Společnost Contoso se rozhodla použít 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 jednoduchý 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 za 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 k provedení této změny použije sadu Visual Studio a nasadí dvě webové aplikace, jednu pro web a jednu pro službu WCF.
- Aby společnost Contoso splňovala požadavky na kanál DevOps, použije Azure DevOps ke správě zdrojového kódu s úložišti Git. K sestavení kódu a jeho nasazení do Azure App Service použijí automatizované sestavení a vydané verze.
Revize řešení
Společnost Contoso vyhodnotí navrhovaný návrh sestavením seznamu výhod a nevýhod, 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 investici do programu Software Assurance pomocí Zvýhodněné hybridní využití Azure pro SQL Server i Windows Server. Po migraci nebude nutné podporovat Windows Server 2008 R2. 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 webová vrstva už nebyla kritický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 Database a pak do ní pomocí Azure Database Migration Service migruje databázi SmartHotel360.
Společnost 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 pro bezproblémovou migraci webových aplikací .NET z místního prostředí do cloudu s minimálními nebo žádnými změnami kódu. | Je to nástroj ke stažení zdarma. |
Data Migration Assistant | Společnost Contoso použije Data Migration Assistant k posouzení a detekci problémů s kompatibilitou, které by mohly mít vliv na fungování databáze v Azure. Data Migration Assistant posuzuje paritu funkcí mezi zdroji a cíli SQL a doporučuje vylepšení výkonu a spolehlivosti. | Je to nástroj ke stažení 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 se odvíjí od velikosti, umístění a doby 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 správy 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 spuštění kontrol kompatibility před migrací a migraci webových aplikací do Azure App Service.
- Krok 2: Zřízení databáze ve službě Azure SQL Database Společnost 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ů buildu a verze v Azure DevOps V posledním kroku společnost Contoso v Azure DevOps nastaví kanály sestavení a verze pro vytvoření aplikace a pak je nasadí do dvou samostatných webových aplikací.
Krok 1: Posouzení a migrace webových aplikací
Správci společnosti Contoso posoudí a migrují svou webovou aplikaci pomocí nástroje Azure App Service Migration Assistant. Jako vodítko během tohoto procesu používají studijní program Migrace ASP.NET aplikací do Azure . Správci provádějí tyto akce:
Pomocí nástroje pro posouzení migrace Azure App Service vyhodnocují případné závislosti mezi svými webovými aplikacemi a určují, jestli nejsou mezi místními webovými aplikacemi 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 ve službě Azure SQL Database
Správci společnosti Contoso se rozhodnou vytvořit instanci Azure SQL Database.
Zadají název databáze,
SmartHotel.Registration
který se bude shodovat s databází spuštěnou na místním virtuálním počítači. Databázi umístí 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.
K 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 podle podrobného kurzu migrace. Můžou provádět online, offline a hybridní migrace (Preview).
Správci ve stručnosti dělají toto:
- Pomocí Data Migration Assistant zjistí a vyřeší případné problémy s migrací databáze.
- Vytvoří instanci Azure Database Migration Service se skladovou položkou Premium, která je připojená k virtuální síti.
- Zajišťují, aby instance přistupovala ke vzdálenému SQL Server přes virtuální síť. To vyžaduje, 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ý je hostitelem 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čnou migraci.
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í vyberou 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í sadu Visual Studio k úložišti a pak pomocí Team Exploreru naklonují kód do počítače pro vývojáře.
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 zajišťují, aby spolu webové aplikace a databáze mohly 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.Přetáhnou připojovací řetězec z databáze a pak ho
SmartHotel-Registration
aktualizují pomocí správných přihlašovacích údajů.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 odkaz na nové umístění služby WCF. Toto je adresa URL webové aplikace WCF, která je hostitelem koncového bodu 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ů buildu a verze v Azure DevOps
Správci společnosti Contoso teď konfigurují Azure DevOps tak, aby prováděly proces sestavení a vydání.
V Azure DevOps vyberou Build and release New pipeline (Sestavit a vydat>nový kanál).
Vyberou Azure Repos Git 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ůj build.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 výběrem možnosti Artifacts (Artefakty ) zkontrolují výsledky sestavení.
Otevře se podokno Průzkumník artefaktů a ve složce drop se zobrazí výsledky sestavení.
- Dva .zip soubory jsou balíčky, které obsahují aplikace.
- Tyto .zip soubory se používají v kanálu verze k 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 + Add an artifact (+ 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.
Trigger průběžného nasazování nastaví 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 pro vkládání , vyberou
SmartHotel.Registration.Wcf.zip
soubor vytvořený během sestavení a pak vyberou Uložit.VyberouFázekanálu> a pak výběrem + Přidat přidají 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 části Sestavení, vyberou Triggery a pak zaškrtnou políčko Povolit kontinuální integraci . Tato akce povolí kanál, aby při potvrzení změn v kódu došlo k úplnému sestavení a vydání.
Vyberou Uložit & frontu a 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 je spuštěná a spuštěná online.
Aplikace se úspěšně migrovala do Azure.
Vyčištění po migraci
Po migraci společnost Contoso provede tyto kroky čištění:
- Odeberou místní virtuální počítače z inventáře vCenter.
- Odeberou virtuální počítače z úloh místního zálohování.
- Aktualizují svou interní dokumentaci tak, aby zobrazovala nová umístění aplikace SmartHotel360. Dokumentace ukazuje, že databáze běží ve službě Azure SQL Database a front-end běží ve dvou webových aplikacích.
- Zkontrolují všechny prostředky, které komunikují s vyřazenými virtuálními počítači, a aktualizují příslušná nastavení nebo dokumentaci tak, aby odrážely novou konfiguraci.
Kontrola nasazení
Díky migraci prostředků do Azure potřebuje společnost Contoso plně zprovoznit novou infrastrukturu a pomoct ji zabezpečit.
Zabezpečení
- Společnost Contoso pomáhá zajistit zabezpečení nové
SmartHotel-Registration
databáze. 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. 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, aby zajistil převzetí služeb při selhání během oblastních výpadků.
Licencování a optimalizace nákladů
- Po nasazení všech prostředků společnost Contoso přiřadí značky Azure na základě 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í virtuálního počítače front-endu aplikace do dvou Azure App Service webových aplikací. Databáze aplikace byla migrována do Azure SQL Database.