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 a SQLVM.
  • 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

Diagram navrhované architektury

Proces migrace

  1. Společnost Contoso zřídí databázi Azure SQL a pak do ní pomocí Azure Database Migration Service migruje databázi SmartHotel360.

  2. Contoso zřídí a nakonfiguruje webové aplikace a nasadí do nich aplikaci SmartHotel360.

    Diagram procesu migrace

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

  1. Správci společnosti Contoso se rozhodnou vytvořit instanci Azure SQL Database.

    Snímek obrazovky s odkazem na SQL Database

  2. Určí název databáze, SmartHotel.Registrationkterý se má shodovat s databází, která běží na místním virtuálním počítači. Umístí databázi do ContosoRG skupiny prostředků. Jedná se o skupinu prostředků, kterou používají pro produkční prostředky v Azure.

    Snímek obrazovky s podrobnostmi o SQL Database instancí

  3. Nastaví novou instanci sql-smarthotel-eus2SQL Server v primární oblasti.

    Snímek obrazovky s novou instancí SQL Server

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

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

    Snímek obrazovky s požadavky na velikost virtuálních jader

  6. Vytvoří instanci databáze.

    Snímek obrazovky s vytvořením instance SQL Database

  7. Otevřou databázi a poznají si podrobnosti, které budou potřebovat při použití Data Migration Assistant k migraci.

    Snímek obrazovky s textovým souborem instance databáze

Potřebujete další pomoc?

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.

  1. V účtu Azure DevOps společnosti Contoso vytvoří nový projekt ContosoSmartHotelRefactora pak pro správu verzí vybere Git .

    Snímek obrazovky s vytvořením nového projektu v Azure DevOps

  2. Naimportují úložiště Git, které aktuálně obsahuje kód aplikace. Stáhnutí z veřejného úložiště GitHub.

    Snímek obrazovky s podoknem Import a Git Repository (Importovat úložiště Git)

  3. Připojí Visual Studio k úložišti a pak kód naklonují do vývojářského počítače pomocí Team Exploreru.

    Snímek obrazovky s podoknem Připojit k projektu

  4. Otevřou soubor řešení pro aplikaci. Webová aplikace a služba WCF mají v souboru samostatné projekty.

    Snímek obrazovky s Průzkumník řešení se seznamem projektů webové aplikace a služby WCF

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.

  1. Ve webové aplikaci pro službu SHWCF-EUS2WCF v části Nastavení>Nastavení Aplikace přidají nový připojovací řetězec s názvem DefaultConnection.

  2. Načte připojovací řetězec z databáze a pak ho SmartHotel-Registration aktualizují se správnými přihlašovacími údaji.

    Snímek obrazovky s podoknem nastavení připojovacího řetězce

  3. V sadě Visual Studio správci otevřou SmartHotel.Registration.wcf projekt ze souboru řešení. V projektu aktualizují connectionStrings část web.config souboru připojovacím řetězcem.

    Snímek obrazovky s částí connectionStrings souboru web.config v projektu SmartHotel.Registration.wcf

  4. Změní client oddíl web.config souboru pro SmartHotel.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.

    Snímek obrazovky klientské části souboru web.config v projektu SmartHotel.Registration.wcf

  5. 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í.

  1. V Azure DevOps vyberou Sestavit a vydat>nový kanál.

    Snímek obrazovky s odkazem Nový kanál v Azure DevOps

  2. Vyberou Azure Repos Gitu a v rozevíracím seznamu Úložiště vyberou příslušné úložiště.

    Snímek obrazovky s tlačítkem Azure Repos Git a vybraným úložištěm

  3. V části Vybrat šablonu vyberouASP.NET šablonu pro své sestavení.

    Snímek obrazovky s podoknem Vybrat šablonu pro výběr šablony ASP.NET

  4. Použijí název ContosoSmartHotelRefactor-ASP.NET-CI sestavení a pak vyberou Uložit & frontu, čímž spustí první sestavení.

    Snímek obrazovky s tlačítkem Uložit & frontu pro sestavení

  5. 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í.

    Snímek obrazovky se stránkou sestavení a odkazem Artifacts pro kontrolu výsledků 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.

    Snímek obrazovky s podoknem Průzkumník artefaktů

  6. Vyberou Vydané verze>+ Nový kanál.

    Nový kanál

  7. Vyberou šablonu nasazení pro Azure App Service.

    Snímek obrazovky se šablonou nasazení Azure App Service

  8. Pojmenují kanál ContosoSmartHotel360Refactor verze a v poli Název fáze zadají SHWCF-EUS2 jako název webové aplikace WCF.

    Snímek obrazovky s názvem fáze webové aplikace WCF

  9. V rámci fází pro konfiguraci nasazení služby WCF vyberou 1 úloha, 1 úkol.

    Snímek obrazovky s možností 1 úlohy a 1 úkolu

  10. Ověří, že je předplatné vybrané a autorizované, a pak vyberou název služby App Service.

    Snímek obrazovky s výběrem názvu služby App Service

  11. V kanálu Artifacts (Artefakty) >vyberou + Přidat artefakt a pak vyberou sestavení s kanálemContosoSmarthotel360Refactor.

    Snímek obrazovky s tlačítkem Sestavit v podokně Přidat artefakt

  12. Pokud chtějí správci povolit trigger průběžného nasazování, vyberou na artefaktu ikonu blesku.

    Snímek obrazovky s ikonou blesku na artefaktu

  13. Nastaví trigger průběžného nasazování na Povoleno.

    Snímek obrazovky znázorňující trigger průběžného nasazování nastavený na Povoleno

  14. Správci se vrátí k úloze fáze 1, 1 úkolu a pak vyberou Nasadit Azure App Service.

    Snímek obrazovky s možností vybrat Nasadit Azure App Service

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

    Snímek obrazovky s podoknem Vybrat soubor nebo složku pro výběr souboru WCF

  16. VyberouFázekanálu> a pak výběrem + Přidat přidá prostředí pro SHWEB-EUS2. Vyberou jiné nasazení Azure App Service.

    Snímek obrazovky s odkazem na 1 úlohu a 1 úkol pro přidání prostředí

  17. Zopakují proces publikování SmartHotel.Registration.Web.zip souboru do správné webové aplikace a pak vyberou Uložit.

    Snímek obrazovky s podoknem Vybrat soubor nebo složku pro výběr webového souboru

    Zobrazí se kanál verze, jak je znázorněno tady:

    Snímek obrazovky se souhrnem kanálu verze

  18. 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í.

    Snímek obrazovky se zvýrazněným zaškrtávacím polícem Povolit kontinuální integraci

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

    Snímek obrazovky s tlačítkem Uložit & frontu

  20. Správci Contoso mohou proces zpracování kanálu buildu a verze sledovat z Azure DevOps. Po dokončení sestavení se spustí vydání.

    Snímek obrazovky s průběhem sestavení a vydání

  21. Po dokončení kanálu se nasadí oba weby a aplikace bude spuštěná online.

    Snímek obrazovky znázorňující, že je aplikace v provozu

    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.