Återtvingar ett lokalt program till en Azure App Service-webbapp och en SQL-hanterad instansRefactor an on-premises application to an Azure App Service web app and a SQL managed instance

Den här artikeln visar hur det fiktiva företaget contoso återkallas ett Windows .NET-program med två nivåer som körs på virtuella VMware-datorer (VM) som en del av en migrering till Azure.This article demonstrates how the fictional company Contoso refactors a two-tier Windows .NET application that's running on VMware virtual machines (VMs) as part of a migration to Azure. Contoso-teamet migrerar programmets frontend-VM till en Azure App Service-webbapp.The Contoso team migrates the application front-end VM to an Azure App Service web app. Artikeln visar också hur contoso migrerar program databasen till en hanterad Azure SQL-instans.The article also shows how Contoso migrates the application database to an Azure SQL managed instance.

Det SmartHotel360-program som vi använder i det här exemplet tillhandahålls som öppen källkod.The SmartHotel360 application that we use in this example is provided as open source. Om du vill använda den i ett eget test syfte kan du ladda ned den från GitHub.If you want to use it for your own testing purposes, you can download it from GitHub.

Affärsdrivande faktorerBusiness drivers

Contosos IT-ledningsgrupp har arbetat tillsammans med affärspartner för att förstå vad man vill uppnå med migreringen:The Contoso IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Hantera företagets tillväxt.Address business growth. Contoso växer och det finns ett tryck på sina lokala system och infrastruktur.Contoso is growing, and there is pressure on their on-premises systems and infrastructure.
  • Öka effektiviteten.Increase efficiency. Contoso måste ta bort onödiga procedurer och effektivisera processer för utvecklare och användare.Contoso needs to remove unnecessary procedures and streamline processes for developers and users. En snabb IT-lösning som inte slösar tid eller pengar är viktigt för företaget, så att man kan leverera snabbare enligt kundkraven.The business needs IT to be fast and not waste time or money, thus delivering faster on customer requirements.
  • Öka flexibiliteten.Increase agility. Contosos IT-avdelning måste reagera snabbare på företagets behov.Contoso IT needs to be more responsive to the needs of the business. Det måste kunna reagera snabbare än ändringarna i Marketplace, för att möjliggöra framgång i en global ekonomi.It must be able to react faster than the changes in the marketplace, to enable success in a global economy. Aktiverings tiden får inte komma i vägen eller bli en företags blockerare.Reaction time must not get in the way, or become a business blocker.
  • Skala.Scale. När företagets verksamhet växer måste Contosos IT-avdelning tillhandahålla system som kan växa i samma takt.As the business grows successfully, Contoso IT must provide systems that are able to grow at the same pace.
  • Minska kostnaderna.Reduce costs. Contoso vill minimera licenskostnaderna.Contoso wants to minimize licensing costs.

MigreringsmålMigration goals

Contoso Cloud team har fäst följande mål för att fastställa bästa Migrations metod:To help determine the best migration method, the Contoso cloud team pinned down the following goals:

KravRequirements InformationDetails
ProgramApplication Programmet i Azure är kvar så viktigt som det är i dag lokalt.The application in Azure will remain as critical as it is today on-premises.

Den bör ha samma prestandafunktioner som den för närvarande har i VMware.It should have the same performance capabilities as it currently does in VMware.

Teamet vill inte investera i programmet.The team doesn't want to invest in the application. För tillfället flyttar administratörer bara programmet säkert till molnet.For now, admins will simply move the application safely to the cloud.

Teamet vill sluta ge stöd för Windows Server 2008 R2, som programmet körs på.The team wants to stop supporting Windows Server 2008 R2, which the application currently runs on.

Teamet vill också flytta bort från SQL Server 2008 R2 till en modern plattform som en tjänst (PaaS)-databas, vilket minimerar behovet av hantering.The team also wants to move away from SQL Server 2008 R2 to a modern platform as a service (PaaS) database, which will minimize the need for management.

Contoso vill dra nytta av sina investeringar i SQL Server-licensiering och Software Assurance där det är möjligt.Contoso wants to take advantage of its investment in SQL Server licensing and Software Assurance where possible.

Contoso vill dessutom minimera den felkritiska systemdelen på webbnivån.In addition, Contoso wants to mitigate the single point of failure on the web tier.
BegränsningarLimitations Programmet består av ett ASP.NET-program och en Windows Communication Foundation (WCF) som körs på samma virtuella dator.The application consists of an ASP.NET application and a Windows Communication Foundation (WCF) service running on the same VM. De vill sprida dessa komponenter över två webbappar med hjälp av Azure App Service.They want to spread these components across two web apps using the Azure App Service.
AzureAzure Contoso vill flytta programmet till Azure, men de vill inte köra det på virtuella datorer.Contoso wants to move the application to Azure, but they don't want to run it on VMs. Contoso vill använda Azure PaaS-tjänster för både webb- och data nivåerna.Contoso wants to use Azure PaaS services for both the web and data tiers.
DevOpsDevOps Contoso vill flytta till en DevOps-modell som använder Azure DevOps för sina build-och release-pipeliner.Contoso wants to move to a DevOps model that uses Azure DevOps for their builds and release pipelines.

LösningsdesignSolution design

När du har uppfyllt målen och kraven kan du Contoso utforma och granska en distributions lösning.After pinning down their goals and requirements, Contoso designs and reviews a deployment solution. De identifierar också migreringsprocessen, inklusive de Azure-tjänster som används för migreringen.They also identify the migration process, including the Azure services that they'll use for the migration.

Aktuellt programCurrent application

  • SmartHotel360 lokala program skiktas på två virtuella datorer WEBVM och SQLVM .The SmartHotel360 on-premises application is tiered across two VMs, WEBVM and SQLVM.
  • De virtuella datorerna finns på VMware ESXi värd contosohost1.contoso.com version 6,5.The VMs are located on VMware ESXi host contosohost1.contoso.com version 6.5.
  • VMware-miljön hanteras av vCenter Server 6,5 (vcenter.contoso.com), som körs på en virtuell dator.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), which runs on a VM.
  • Contoso har ett lokalt datacenter (contoso-datacenter) med en lokal domänkontrollant (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • De lokala, virtuella datorerna i Contoso-datacentret inaktiveras när migreringen är färdig.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Föreslagen lösningProposed solution

  • Contoso har valt att använda Azure App Service för program webb nivån.For the application web tier, Contoso has decided to use Azure App Service. Med den här PaaS-tjänsten kan de distribuera programmet med bara några få konfigurations ändringar.This PaaS service enables them to deploy the application with just a few configuration changes. Contoso kommer att använda Visual Studio för att göra ändringen och de distribuerar två webbappar, en för webbplatsen och en för WCF-tjänsten.Contoso will use Visual Studio to make the change, and they'll deploy two web apps, one for the website and one for the WCF service.
  • För att uppfylla kraven för en DevOps-pipeline kommer contoso att använda Azure DevOps för käll kods hantering med git databaser.To meet requirements for a DevOps pipeline, Contoso will use Azure DevOps for source code management with Git repos. De använder automatiska versioner och versioner för att bygga koden och distribuera den till Azure App Service.They'll use automated builds and release to build the code and deploy it to the Azure App Service.

DatabasövervägandenDatabase considerations

Som en del av processen för lösnings design gjorde Contoso en funktions jämförelse mellan Azure SQL Database och SQL-hanterad instans.As part of the solution design process, Contoso did a feature comparison between Azure SQL Database and SQL Managed Instance. De beslutade att använda SQL-hanterad instans baserat på följande överväganden:They decided to use SQL Managed Instance based on the following considerations:

  • SQL-hanterad instans syftar till att leverera nästan 100 procents kompatibilitet med den senaste lokala SQL Server versionen.SQL Managed Instance aims to deliver almost 100 percent compatibility with the latest on-premises SQL Server version. Microsoft rekommenderar SQL-hanterad instans för kunder som kör SQL Server lokalt eller på infrastruktur som en tjänst (IaaS) virtuella datorer som vill migrera sina program till en fullständigt hanterad tjänst med minimala design ändringar.Microsoft recommends SQL Managed Instance for customers who are running SQL Server on-premises or on infrastructure as a service (IaaS) VMs who want to migrate their applications to a fully managed service with minimal design changes.
  • Contoso planerar att migrera ett stort antal program från lokala datorer till IaaS virtuella datorer.Contoso is planning to migrate a large number of applications from on-premises to IaaS VMs. Många av dessa virtuella datorer tillhandahålls av oberoende program varu leverantörer.Many of these VMs are provided by independent software vendors. Contoso-realisering som använder SQL-hanterad instans hjälper till att säkerställa databasens kompatibilitet för dessa program.Contoso realizes that using SQL Managed Instance will help ensure database compatibility for these applications. De använder SQL-hanterad instans i stället för SQL Database, vilket kanske inte stöds.They'll use SQL Managed Instance rather than SQL Database, which might not be supported.
  • Contoso kan enkelt göra en hiss och flytta migrering till SQL-hanterad instans genom att använda den helt automatiserade Azure Database Migration Service.Contoso can simply do a lift and shift migration to SQL Managed Instance by using the fully automated Azure Database Migration Service. Med den här tjänsten kan Contoso återanvända den vid framtida databasmigreringar.With this service in place, Contoso can reuse it for future database migrations.
  • SQL-hanterad instans stöder SQL Server Agent, en viktig komponent i SmartHotel360-programmet.SQL Managed Instance supports SQL Server Agent, an important component of the SmartHotel360 application. Contoso behöver den här kompatibiliteten. Annars måste de skapa de underhålls planer som programmet kräver.Contoso needs this compatibility; otherwise, they'll have to redesign the maintenance plans required by the application.
  • Med Software Assurance kan Contoso byta ut befintliga licenser för rabatterade priser på en SQL-hanterad instans med hjälp av Azure Hybrid-förmån för SQL Server.With Software Assurance, Contoso can exchange their existing licenses for discounted rates on a SQL managed instance by using the Azure Hybrid Benefit for SQL Server. På så sätt kan Contoso Spara upp till 30 procent med hjälp av SQL-hanterad instans.This allows Contoso to save up to 30 percent by using SQL Managed Instance.
  • SQL-hanterad instans finns helt i det virtuella nätverket, så den ger bättre isolering och säkerhet för Contosos data.Their SQL managed instance is fully contained in the virtual network, so it provides greater isolation and security for Contoso's data. Contoso kan få fördelarna med det offentliga molnet, samtidigt som miljön hålls isolerad från det offentliga Internet.Contoso can get the benefits of the public cloud, while keeping the environment isolated from the public internet.
  • SQL-hanterad instans har stöd för många säkerhetsfunktioner, inklusive Always-Encrypted, dynamisk data maskning, säkerhet på radnivå och hot identifiering.SQL Managed Instance supports many security features, including always-encrypted, dynamic data masking, row-level security, and threat detection.

Utvärdering av lösningenSolution review

Contoso utvärderar den föreslagna designen genom att sätta samman en lista med-och nack delar, som du ser i följande tabell:Contoso evaluates their proposed design by putting together a pros and cons list, as shown in the following table:

Att tänka påConsideration InformationDetails
FördelarPros Program koden SmartHotel360 kräver inte ändringar för migrering till Azure.The SmartHotel360 application code doesn't require changes for migration to Azure.

Contoso kan dra nytta av sina investeringar i Software Assurance genom att använda Azure Hybrid-förmån för både SQL Server och Windows Server.Contoso can take advantage of their investment in Software Assurance by using the Azure Hybrid Benefit for both SQL Server and Windows Server.

Efter migreringen behöver inte Windows Server 2008 R2 stöd.After the migration, Windows Server 2008 R2 won't need to be supported. Mer information finns i Microsofts livs cykel princip.For more information, see the Microsoft Lifecycle Policy.

Contoso kan konfigurera webb nivån för programmet med flera instanser, så att webb nivån inte längre är en enskild felpunkt.Contoso can configure the web tier of the application with multiple instances, so that the web tier is no longer a single point of failure.

Databasen är inte längre beroende av åldrande SQL Server 2008 R2.The database will no longer depend on the aging SQL Server 2008 R2.

SQL Managed Instance har stöd för Contosos tekniska krav och mål.SQL Managed Instance supports Contoso's technical requirements and goals.

Den hanterade instansen ger 100 procents kompatibilitet med sin nuvarande distribution, samtidigt som du flyttar dem bort från SQL Server 2008 R2.Their managed instance will provide 100 percent compatibility with their current deployment, while moving them away from SQL Server 2008 R2.

Contoso kan dra nytta av sina investeringar i Software Assurance och använda Azure Hybrid-förmån för SQL Server och Windows Server.Contoso can take advantage of their investment in Software Assurance and using the Azure Hybrid Benefit for SQL Server and Windows Server.

De kan återanvända Azure Database Migration Service för ytterligare framtida migreringar.They can reuse Azure Database Migration Service for additional future migrations.

Den hanterade instansen har inbyggd fel tolerans som contoso inte behöver konfigurera.Their managed instance has built-in fault tolerance that Contoso doesn't need to configure. Detta säkerställer att datanivån inte längre är en felkritisk systemdel.This ensures that the data tier is no longer a single point of failover.
NackdelarCons Azure App Service stöder endast en program distribution för varje webbapp.Azure App Service supports only one application deployment for each web app. Det innebär att två webb program måste vara etablerade, en för webbplatsen och en för WCF-tjänsten.This means that two web apps must be provisioned, one for the website and one for the WCF service.

SQL-hanterad instans kanske inte är den bästa lösningen för data nivån om Contoso vill anpassa operativ systemet eller databas servern, eller om de vill köra program från tredje part tillsammans med SQL Server.For the data tier, SQL Managed Instance might not be the best solution if Contoso wants to customize the operating system or the database server, or if they want to run third-party applications along with SQL Server. Att köra SQL Server på en virtuell IaaS-dator skulle kunna ge den här flexibiliteten.Running SQL Server on an IaaS VM could provide this flexibility.

Föreslagen arkitekturProposed architecture

Diagram över den föreslagna arkitekturen.

MigreringsprocessenMigration process

  1. Contoso etablerar en Azure SQL-hanterad instans och migrerar sedan SmartHotel360-databasen till den med hjälp av Azure Database Migration Service.Contoso provisions an Azure SQL managed instance and then migrates the SmartHotel360 database to it by using Azure Database Migration Service.

  2. Contoso tillhandahåller och konfigurerar webbappar och distribuerar SmartHotel360-programmet till dem.Contoso provisions and configures web apps and deploys the SmartHotel360 application to them.

    Diagram över migreringsprocessen.

Azure-tjänsterAzure services

TjänstService BeskrivningDescription KostnadCost
Azure App Service Migration AssistantAzure App Service Migration Assistant En kostnads fri och enkel sökväg för att sömlöst migrera .NET-webbappar från lokalt till molnet med minimala ändringar i koden.A free and simple path to seamlessly migrate .NET web applications from on-premises to the cloud with minimal to no code changes. Det är ett nedladdnings Bart verktyg, utan kostnad.It's a downloadable tool, free of charge.
Azure Database Migration ServiceAzure Database Migration Service Azure Database Migration Service möjliggör sömlös migrering från flera databas källor till Azure-dataplattformar med minimal stillestånds tid.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Lär dig mer om regioner som stöds och Azure Database migration service prissättning.Learn about supported regions and Azure Database Migration Service pricing.
Hanterad Azure SQL-instansAzure SQL Managed Instance SQL-hanterad instans är en hanterad databas tjänst som representerar en fullständigt hanterad SQL Server-instans i Azure.SQL Managed Instance is a managed database service that represents a fully managed SQL Server instance in Azure. Den använder samma kod som den senaste versionen av SQL Server Database Engine och innehåller de senaste funktionerna, prestandaförbättringar och säkerhetskorrigeringar.It uses the same code as the latest version of SQL Server Database Engine, and has the latest features, performance improvements, and security patches. Om du använder en SQL-hanterad instans som körs i Azure debiteras avgifter baserat på kapacitet.Using a SQL managed instance that runs in Azure incurs charges based on capacity. Läs mer om priser för SQL-hanterad instans.Learn more about SQL Managed Instance pricing.
Azure App ServiceAzure App Service Hjälper dig att skapa kraftfulla moln program som använder en fullständigt hanterad plattform.Helps create powerful cloud applications that use a fully managed platform. Prissättningen baseras på storlek, plats och användnings tid.Pricing is based on size, location, and usage duration. Läs mer.Learn more.
Azure PipelinesAzure Pipelines Tillhandahåller en pipeline för kontinuerlig integrering och kontinuerlig distribution (CI/CD) för program utveckling.Provides a continuous integration and continuous deployment (CI/CD) pipeline for application development. Pipelinen börjar med en git-lagringsplats för att hantera program kod, ett build-system för att skapa paket och andra Bygg artefakter och ett versions hanterings system för att distribuera ändringar i utvecklings-, test-och produktions miljöer.The pipeline starts with a Git repository for managing application code, a build system for producing packages and other build artifacts, and a release management system to deploy changes in dev, test, and production environments.

FörutsättningarPrerequisites

Contoso måste uppfylla följande krav för att kunna köra det här scenariot:To run this scenario, Contoso must meet the following prerequisites:

KravRequirements InformationDetails
Azure-prenumerationAzure subscription Contoso skapade prenumerationer i en tidigare i den här artikelserien.Contoso created subscriptions earlier in this article series. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.If you don't have an Azure subscription, create a free account.

Om du skapar ett kostnadsfritt konto är du administratör för din prenumeration och kan utföra alla åtgärder.If you create a free account, you're the administrator of your subscription and can perform all actions.

Om du använder en befintlig prenumeration och inte är administratör måste du be administratören att ge dig ägar- eller deltagarbehörighet.If you use an existing subscription and you're not the administrator, you need to work with the admin to assign you Owner or Contributor permissions.
Azure-infrastrukturAzure infrastructure Contoso konfigurerar Azure-infrastrukturen enligt beskrivningen i Azure-infrastrukturen för migrering.Contoso set up their Azure infrastructure as described in Azure infrastructure for migration.

ScenariostegScenario steps

Contoso genomför migreringen på följande sätt:Here's how Contoso will run the migration:

  • Steg 1: utvärdera och migrera webbapparna..Step 1: Assess and migrate the web apps.. Contoso använder Azure App Service Migration Assistant -verktyget för att köra Kompatibilitetskontroll för för migrering och migrera sina webbappar till Azure App Service.Contoso uses the Azure App Service Migration Assistant tool to run pre-migration compatibility checks and migrate their web apps to Azure App Service.
  • Steg 2: Konfigurera en SQL-hanterad instans.Step 2: Set up a SQL managed instance. Contoso behöver en befintlig hanterad instans som den lokala SQL Server-databasen ska migreras till.Contoso needs an existing managed instance to which the on-premises SQL Server database will migrate.
  • Steg 3: Migrera via Azure Database migration service.Step 3: Migrate via Azure Database Migration Service. Contoso migrerar program databasen via Azure Database Migration Service.Contoso migrates the application database via Azure Database Migration Service.
  • Steg 4: Konfigurera Azure-DevOps.Step 4: Set up Azure DevOps. Contoso skapar ett nytt Azure DevOps-projekt och importerar Git-lagringsplatsen.Contoso creates a new Azure DevOps project, and imports the Git repo.
  • Steg 5: Konfigurera anslutnings strängar.Step 5: Configure connection strings. Contoso konfigurerar anslutnings strängar så att webbappens webbapp, WCF-tjänstens webbapp och den SQL-hanterade instansen kan kommunicera.Contoso configures connection strings so that the web tier web app, the WCF service web app, and the SQL managed instance can communicate.
  • Steg 6: Konfigurera en pipeline för build och release i Azure DevOps.Step 6: Set up build and release pipelines in Azure DevOps. Som ett sista steg ställer contoso in build-och release-pipelines i Azure DevOps för att skapa programmet.As a final step, Contoso sets up build and release pipelines in Azure DevOps to create the application. -Teamet distribuerar sedan pipelines till två separata webbappar.The team then deploys the pipelines to two separate web apps.

Steg 1: utvärdera och migrera webbapparnaStep 1: Assess and migrate the web apps

Contoso-administratörer bedömer och migrerar sina webbappar med hjälp av Azure App Service Migration Assistant -verktyget.Contoso admins assess and migrate their web app using the Azure App Service Migration Assistant tool. De använder Microsoft Learning-sökvägen som en guide under processen.They use the Microsoft Learning Path as a guide during the process. I korthet utför administratörerna följande åtgärder:In brief, the admins perform the following actions:

  • De använder Azure App Service Migration Assessment -verktyget för att utvärdera eventuella beroenden mellan sina webbappar och för att fastställa om det finns några inkompatibiliteter mellan sina lokala webbappar och vad som stöds på Azure App Service.They use the Azure App Service Migration Assessment tool to evaluate any dependencies between their web apps and to determine if there are any incompatibilities between their on-premises web apps and what's supported on Azure App Service.

  • De hämtar Azure App Service Migration Assistant och loggar in på sitt Azure-konto.They download the Azure App Service Migration Assistant and sign in to their Azure account.

  • De väljer en prenumeration, en resurs grupp och webbplatsens domän namn.They choose a subscription, a resource group, and the website's domain name.

Steg 2: Konfigurera en SQL-hanterad instansStep 2: Set up a SQL managed instance

Contoso behöver ett undernät som uppfyller följande krav för att konfigurera en hanterad Azure SQL-instans:To set up an Azure SQL managed instance, Contoso needs a subnet that meets the following requirements:

  • Undernätet måste vara dedikerat.The subnet must be dedicated. Det måste vara tomt och får inte innehålla någon annan molntjänst.It must be empty, and it can't contain any other cloud service. Undernätet får inte vara ett gatewayundernät.The subnet can't be a gateway subnet.
  • När den hanterade instansen har skapats bör contoso inte lägga till resurser i under nätet.After the managed instance is created, Contoso should not add resources to the subnet.
  • Undernätet får inte ha någon associerad nätverkssäkerhetsgrupp.The subnet can't have a network security group associated with it.
  • Undernätet måste ha en användardefinierad routningstabell.The subnet must have a user-defined route table. Den enda vägen som tilldelas ska vara 0.0.0.0/0 nästa hopp Internet.The only route assigned should be 0.0.0.0/0 next-hop internet.
  • Om en valfri anpassad DNS-adress har angetts för det virtuella nätverket måste den virtuella IP-adressen 168.63.129.16 för de rekursiva matcharna i Azure läggas till i listan.If an optional custom DNS is specified for the virtual network, the virtual IP address 168.63.129.16 for the recursive resolvers in Azure must be added to the list. Lär dig hur du konfigurerar en anpassad DNS för en Azure SQL-hanterad instans.Learn how to configure a custom DNS for an Azure SQL managed instance.
  • Undernätet får inte ha någon associerad tjänstslutpunkt (lagring eller SQL).The subnet must not have a service endpoint (storage or SQL) associated with it. Tjänstens slutpunkter ska vara inaktiverade i det virtuella nätverket.Service endpoints should be disabled on the virtual network.
  • Undernätet måste ha minst 16 IP-adresser.The subnet must have a minimum of 16 IP addresses. Lär dig hur du ändrar storlek på under nätet för hanterade instanser.Learn how to size the managed instance subnet.
  • I Contosos hybridmiljö krävs anpassade DNS-inställningar.In Contoso's hybrid environment, custom DNS settings are required. Contoso konfigurerar DNS-inställningarna till att använda en eller flera av företagets Azure DNS-servrar.Contoso configures DNS settings to use one or more of the company's Azure DNS servers. Läs mer om DNS-anpassning.Learn more about DNS customization.

Konfigurera ett virtuellt nätverk för den hanterade instansenSet up a virtual network for the managed instance

Contosos administratörer konfigurerar det virtuella nätverket på följande sätt:Contoso admins set up the virtual network as follows:

  1. De skapar ett nytt virtuellt nätverk (VNET-SQLMI-EU2) i den primära regionen (USA, östra 2).They create a new virtual network (VNET-SQLMI-EU2) in the primary region (East US 2). De lägger till det virtuella nätverket i resursgruppen ContosoNetworkingRG.It adds the virtual network to the ContosoNetworkingRG resource group.

  2. De tilldelar ett adress utrymme på 10.235.0.0/24.They assign an address space of 10.235.0.0/24. De säkerställer att intervallet inte överlappar andra nätverk i företaget.They ensure that the range doesn't overlap with any other networks in its enterprise.

  3. De lägger till två undernät i nätverket:They add two subnets to the network:

    • SQLMI-DS-EUS2 (10.235.0.0/25).SQLMI-DS-EUS2 (10.235.0.0/25).

    • SQLMI-SAW-EUS2 (10.235.0.128/29).SQLMI-SAW-EUS2 (10.235.0.128/29). Det här under nätet används för att koppla en katalog till den hanterade instansen.This subnet is used to attach a directory to the managed instance.

      Skärm bild av fönstret "Skapa virtuellt nätverk" för den hanterade instansen.

  4. När det virtuella nätverket och undernäten har distribuerats utför de peering för nätverken enligt följande:After the virtual network and subnets are deployed, they peer networks as follows:

    • Peer VNET-SQLMI-EUS2 -datorer med VNET-HUB-EUS2 (hubb virtuellt nätverk för East US 2 ).Peers VNET-SQLMI-EUS2 with VNET-HUB-EUS2 (the hub virtual network for East US 2).

    • Peer-datorer VNET-SQLMI-EUS2 med VNET-PROD-EUS2 (produktions nätverket).Peers VNET-SQLMI-EUS2 with VNET-PROD-EUS2 (the production network).

      Skärm bild av peer-nätverk.

  5. De anger anpassade DNS-inställningar.They set custom DNS settings. DNS-inställningarna pekar först på Contosos Azure-domänkontrollanter.The DNS settings point first to Contoso's Azure domain controllers. Azure DNS är sekundär.Azure DNS is secondary. Contosos Azure-domänkontrollanter finns på följande platser:The Contoso Azure domain controllers are located as follows:

    • Finns i under nätet produktion-DC-EUS2 i produktions nätverket (VNET-PROD-EUS2) i regionen USA, östra 2.Located in the PROD-DC-EUS2 subnet of the production network (VNET-PROD-EUS2) in the East US 2 region.

    • CONTOSODC3 adresspool 10.245.42.4CONTOSODC3 address: 10.245.42.4

    • CONTOSODC4 adresspool 10.245.42.5CONTOSODC4 address: 10.245.42.5

    • Azure DNS lösare: 168.63.129.16Azure DNS resolver: 168.63.129.16

    Skärm bild av listan över nätverks-DNS-servrar.

Behöver du mer hjälp?Need more help?

Konfigurera routningSet up routing

Den hanterade instansen placeras i ett privat virtuellt nätverk.The managed instance is placed in a private virtual network. Contoso behöver en routningstabell för det virtuella nätverket för att kommunicera med Azure-hanteringsportalen.Contoso needs a route table for the virtual network to communicate with the Azure management service. Om det virtuella nätverket inte kan kommunicera med den tjänst som hanterar det, går det virtuella nätverket inte att nå.If the virtual network can't communicate with the service that manages it, the virtual network becomes inaccessible.

Contoso överväger följande faktorer:Contoso considers these factors:

  • Routningstabellen innehåller en uppsättning regler (vägar) som anger hur paket som skickas från den hanterade instansen ska dirigeras i det virtuella nätverket.The route table contains a set of rules (routes) that specify how packets that are sent from the managed instance should be routed in the virtual network.
  • Routningstabellen är associerad med undernät där hanterade instanser distribueras.The route table is associated with subnets where managed instances are deployed. Hanteringen av de paket som lämnar ett undernät baseras på den tillhörande routningstabellen.Each packet that leaves a subnet is handled based on the associated route table.
  • Ett undernät kan bara associeras med en routningstabell.A subnet can be associated with only one route table.
  • Det finns inga ytterligare avgifter för att skapa routningstabeller i Microsoft Azure.There are no additional charges for creating route tables in Microsoft Azure.

Contoso-administratörer gör följande för att konfigurera routning:To set up routing, Contoso admins do the following:

  1. De skapar en användardefinierad routningstabell i resursgruppen ContosoNetworkingRG.They create a user-defined route table in the ContosoNetworkingRG resource group.

    Skärm bild av fönstret "skapa väg tabell".

  2. Om du vill följa kraven för SQL-hanterad instans efter att routningstabellen (MIRouteTable) har distribuerats lägger administratörerna till en väg med adressprefixet 0.0.0.0/0.To comply with SQL Managed Instance requirements, after the route table (MIRouteTable) is deployed, the admins add a route with an address prefix of 0.0.0.0/0. Alternativet Nästa hopptyp är inställt på Internet.The Next hop type option is set to Internet.

    Skärm bild av fönstret Lägg till väg för att lägga till ett adressprefix.

  3. De kopplar routningstabellen till undernätet SQLMI-DB-EUS2 (i nätverket VNET-SQLMI-EUS2).They associate the route table with the SQLMI-DB-EUS2 subnet (in the VNET-SQLMI-EUS2 network).

    Skärm bild av fönstret associera undernät för att dirigera tabell under nätet.

Behöver du mer hjälp?Need more help?

Lär dig hur du konfigurerar vägar för en hanterad instans.Learn how to set up routes for a managed instance.

Skapa en hanterad instansCreate a managed instance

Contoso-administratörer etablerar nu en SQL-hanterad instans genom att göra följande:Now, Contoso admins provision a SQL managed instance by doing the following:

  1. Eftersom den hanterade instansen hanterar ett affärs program, distribuerar administratörer den hanterade instansen i företagets primära region (USA, östra 2).Because the managed instance serves a business application, the admins deploy the managed instance in the company's primary region (East US 2). De lägger till den hanterade instansen i resurs gruppen conto sorg.They add the managed instance to the ContosoRG resource group.

  2. De väljer en prisnivå, storleksberäkning och lagring för instansen.They select a pricing tier, size compute, and storage for the instance. Läs mer om priser för SQL-hanterad instans.Learn more about SQL Managed Instance pricing.

    Skärm bild av fönstret "SQL-hanterad instans".

    När den hanterade instansen har distribuerats visas två nya resurser i resurs gruppen conto sorg:After the managed instance is deployed, two new resources appear in the ContosoRG resource group:

    • Den nya SQL-hanterade instansen.The new SQL managed instance.

    • Ett virtuellt kluster, om contoso har flera hanterade instanser.A virtual cluster, in case Contoso has multiple managed instances.

      Skärm bild av nya resurser i resurs gruppen conto sorg.

Behöver du mer hjälp?Need more help?

Lär dig hur du etablerar en hanterad instans.Learn how to provision a managed instance.

Steg 3: Migrera via Azure Database Migration ServiceStep 3: Migrate via Azure Database Migration Service

Contoso-administratörer migrerar den hanterade instansen via Azure Database Migration Service genom att följa anvisningarna i själv studie kursen för steg-för-steg-migrering.Contoso admins migrate the managed instance via Azure Database Migration Service by following the instructions in the step-by-step migration tutorial. De kan utföra migrering online, offline och hybrid (för hands version).They can perform online, offline, and hybrid (preview) migrations.

I korthet gör contoso-administratörer följande:In brief, Contoso admins do the following:

  • De skapar en Azure Database Migration Service-instans med en Premium-SKU som är ansluten till det virtuella nätverket.They create an Azure Database Migration Service instance with a Premium SKU that's connected to the virtual network.
  • De säkerställer att Database Migration Service kan komma åt fjär SQL Server via det virtuella nätverket.They ensure that Database Migration Service can access the remote SQL Server via the virtual network. Detta innebär att du kan se till att alla inkommande portar är tillåtna från Azure för att SQL Server på den virtuella nätverks nivån, nätverkets VPN och den dator som är värd för SQL Server.This would entail ensuring that all incoming ports are allowed from Azure to SQL Server at the virtual network level, the network VPN, and the machine that hosts SQL Server.
  • De konfigurerar Azure Database Migration Service:They configure Azure Database Migration Service:
    • Skapa ett migreringsjobb.Create a migration project.
    • Lägg till en källa (lokal databas).Add a source (on-premises database).
    • Välj ett mål.Select a target.
    • Välj de databaser som ska migreras.Select the databases to migrate.
    • Konfigurera avancerade inställningar.Configure advanced settings.
    • Starta replikeringen.Start the replication.
    • Åtgärda eventuella fel.Resolve any errors.
    • Utför den slutliga start punkt.Perform the final cutover.

Steg 4: Konfigurera Azure-DevOpsStep 4: Set up Azure DevOps

Contoso måste bygga DevOps-infrastrukturen och pipelines för programmet.Contoso needs to build the DevOps infrastructure and pipelines for the application. Det gör du genom att skapa ett nytt DevOps-projekt i Contoso-administratörer, importera koden och sedan ställa in pipeliner för build och release.To do this, the Contoso admins create a new DevOps project, import the code, and then set up build and release pipelines.

  1. I Contoso Azure DevOps-kontot skapar de ett nytt projekt, ContosoSmartHotelRefactor och väljer git för versions kontroll.In the Contoso Azure DevOps account, they create a new project, ContosoSmartHotelRefactor, and then select Git for version control.

    Skärm bild av fönstret nytt projekt.

  2. De importerar git-lagrings platsen som för närvarande innehåller sin program kod.They import the Git repo that currently holds their application code. De laddar ned dem från den offentliga GitHub-lagringsplatsen.They download it from the public GitHub repository.

    Skärm bild av fönstret "Importera en git-lagringsplats" där du anger typ av källa och klon-URL.

  3. De ansluter Visual Studio till lagrings platsen och klonar sedan koden till Developer-datorn med hjälp av team Explorer.They connect Visual Studio to the repo and then clone the code to the developer machine by using Team Explorer.

    Skärm bild av fönstret "Anslut till ett projekt".

  4. De öppnar lösnings filen för programmet.They open the solution file for the application. Webbappen och WCF-tjänsten har separata projekt i filen.The web app and WCF service have separate projects within the file.

    Skärm bild av Solution Explorer, som visar webbappen och WCF Service-projekt.

Steg 5: Konfigurera anslutnings strängarStep 5: Configure connection strings

Contoso-administratörerna ser till att webbappar och databas kan kommunicera med varandra.The Contoso admins make sure that the web apps and database can communicate with each other. Det gör de genom att konfigurera anslutningssträngar i koden och i webbapparna.To do this, they configure connection strings in the code and in the web apps.

  1. I Web App för WCF-tjänsten, SHWCF-EUS2, under Inställningar > program inställningar, lägger de till en ny anslutnings sträng med namnet DefaultConnection.In the web app for the WCF service, SHWCF-EUS2, under Settings > Application settings, they add a new connection string named DefaultConnection.

  2. De hämtar anslutnings strängen från SmartHotel-Registration databasen och uppdaterar den sedan med rätt autentiseringsuppgifter.They pull the connection string from the SmartHotel-Registration database and then update it with the correct credentials.

    Skärm bild av fönstret inställningar för anslutnings sträng.

  3. I Visual Studio öppnar administratörer SmartHotel.Registration.wcf projektet från lösnings filen.In Visual Studio, the admins open the SmartHotel.Registration.wcf project from the solution file. I projektet uppdaterar de connectionStrings avsnittet i web.config -filen med anslutnings strängen.In the project, they update the connectionStrings section of the web.config file with the connection string.

    Skärm bild av avsnittet connectionStrings i web.config-filen i SmartHotel. registration. WCF-projektet.

  4. De ändrar client avsnittet i web.config filen för SmartHotel. registration. Web så att de pekar på den nya platsen för WCF-tjänsten.They change the client section of the web.config file for SmartHotel.Registration.Web to point to the new location of the WCF service. Det här är URL: en för WCF-webbappen som är värd för tjänst slut punkten.This is the URL of the WCF web app that hosts the service endpoint.

    Skärm bild av klient avsnittet i web.config-filen i SmartHotel. registration. WCF-projektet.

  5. När kod ändringarna nu är på plats kan administratörerna genomföra och synkronisera dem med hjälp av team Explorer i Visual Studio.With the code changes now in place, the admins commit and sync them by using Team Explorer in Visual Studio.

Steg 6: Konfigurera en pipeline för build och release i Azure DevOpsStep 6: Set up build and release pipelines in Azure DevOps

Contoso-administratörer konfigurerar nu Azure-DevOps för att utföra build-och Release-processen.The Contoso admins now configure Azure DevOps to perform the build and release process.

  1. I Azure DevOps väljer de build och release > ny pipeline.In Azure DevOps, they select Build and release > New pipeline.

    Skärm bild av länken "ny pipeline" i Azure DevOps.

  2. De väljer Azure Repos Git och den relevanta lagringsplatsen.They select Azure Repos Git and the relevant repo.

    Skärm bild av knappen "Azure databaser git" och den valda lagrings platsen.

  3. Under Välj en mall väljer de ASP.NET-mallen för sin version.In Select a template, they select the ASP.NET template for their build.

    Skärm bild av fönstret "Välj en mall" för att välja ASP.NET-mallen.

  4. De använder namnet ContosoSmartHotelRefactor-ASP.net-CI för build och väljer sedan Spara & kö, som slår av den första versionen.They use the name ContosoSmartHotelRefactor-ASP.NET-CI for the build and then select Save & Queue, which kicks off the first build.

    Skärm bild av knappen "Spara och Queue" för bygget.

  5. De väljer build-numret för att se processen.They select the build number to watch the process. När det är klart kan administratörerna se processens feedback och de väljer artefakter för att granska build-resultaten.After it's finished, the admins can see the process feedback, and they select Artifacts to review the build results.

    Skärm bild av sidan Bygg och artefakter för att granska build-resultaten.

    Fönstret artefakter Utforskaren öppnas och den släpp mappen visar build-resultaten.The Artifacts explorer pane opens, and the drop folder displays the build results.

    • De två. zip-filerna är de paket som innehåller programmen.The two .zip files are the packages that contain the applications.
    • Dessa. zip-filer används i versions pipelinen för distribution till Azure App Service.These .zip files are used in the release pipeline for deployment to Azure App Service.

    Skärm bild av fönstret "artefakter Utforskaren".

  6. De väljer att lansera > + ny pipeline.They select Releases > + New pipeline.

    Skärm bild som visar länken "ny pipeline".

  7. De väljer distributionsmallen för Azure App Service.They select the deployment template for Azure App Service.

    Skärm bild av mallen för Azure App Service distribution.

  8. De namnger versions pipelinen ContosoSmartHotel360Refactor och anger SHWCF-EUS2 som namn på WCF-webbappen i rutan scen namn .They name the release pipeline ContosoSmartHotel360Refactor and, in the Stage name box, specify SHWCF-EUS2 as the name of the WCF web app.

    Skärm bild av WCF-webbappens scen namn.

  9. Under stegen väljer de 1 jobb, 1 uppgift för att konfigurera distributionen av WCF-tjänsten.Under the stages, they select 1 job, 1 task to configure deployment of the WCF service.

    Skärm bild av alternativet "1 jobb, 1 aktivitet".

  10. De kontrollerar att prenumerationen är markerad och auktoriserad och väljer sedan App Service-namnet.They verify that the subscription is selected and authorized, and then they select the app service name.

    Skärm bild av valet av App Service-namn.

  11. I pipeline väljer du artefakter, väljer + Lägg till en artefakt, väljer skapa som källtyp och skapar sedan med ContosoSmarthotel360Refactor pipelinen.On the pipeline, they select Artifacts, select + Add an artifact, select Build as the source type, and then build with the ContosoSmarthotel360Refactor pipeline.

    Skärm bild av knappen Skapa i fönstret Lägg till en artefakt.

  12. Om du vill aktivera den kontinuerliga distributions utlösaren väljer administratörer blixt ikonen på artefakten.To enable the continuous deployment trigger, the admins select the lightning bolt icon on the artifact.

    Skärm bild av blixt ikonen på artefakten.

  13. De ställer in den kontinuerliga distributions utlösaren på aktive rad.They set the continuous deployment trigger to Enabled.

    Skärm bild som visar den kontinuerliga distributions utlösaren aktive rad.

  14. Administratörerna går tillbaka till steg 1-jobbet, 1 uppgift och väljer sedan Distribuera Azure App Service.The admins go back to the stage 1 job, 1 task and then select Deploy Azure App Service.

    Skärm bild av alternativet att välja "Distribuera Azure App Service".

  15. I Välj en fil eller mapp expanderar de avlämningsmappen , väljer den SmartHotel.Registration.Wcf.zip fil som skapades under versionen och väljer sedan Spara.In Select a file or folder, they expand the drop folder, select the SmartHotel.Registration.Wcf.zip file that was created during the build, and then select Save.

    Skärm bild av fönstret "Välj en fil eller mapp" där du väljer WCF-fil.

  16. De väljer pipeline > -faser och väljer sedan + Lägg till för att lägga till en miljö för SHWEB-EUS2 .They select Pipeline > Stages, and then select + Add to add an environment for SHWEB-EUS2. De väljer en annan Azure App Service-distribution.They select another Azure App Service deployment.

    Skärm bild av länken "1 jobb, 1 uppgift" för att lägga till en miljö.

  17. De upprepar processen för att publicera webbappen SmartHotel.Registration.Web.zip -filen till rätt webbapp och väljer sedan Spara.They repeat the process to publish the web app SmartHotel.Registration.Web.zip file to the correct web app, and then select Save.

    Skärm bild av fönstret "Välj en fil eller mapp" där du väljer webb filen.

    Versions pipelinen visas, som du ser här:The release pipeline is displayed, as shown here:

    Skärm bild av sammanfattningen av lanserings pipelinen.

  18. De går tillbaka till bygge, väljer utlösare och markerar sedan kryss rutan aktivera kontinuerlig integrering .They go back to Build, select Triggers, and then select the Enable continuous integration check box. Den här åtgärden aktiverar pipelinen så att när ändringar görs i koden sker en fullständig version och publicering.This action enables the pipeline so that when changes are committed to the code, the full build and release occur.

    Skärm bild som markerar kryss rutan aktivera kontinuerlig integrering.

  19. De väljer spara & kö för att köra hela pipelinen.They select Save & queue to run the full pipeline. En ny version utlöses, vilket i sin tur skapar den första versionen av programmet till Azure App Service.A new build is triggered, which in turn creates the first release of the application to the Azure App Service.

    Skärm bild av knappen "Spara & kö".

  20. Contoso-administratörerna kan följa processen för att kompilera och lansera pipelinen från Azure DevOps.Contoso admins can follow the build and release pipeline process from Azure DevOps. När bygget är klart startar lanseringen.After the build finishes, the release starts.

    Skärm bild av appen build och release.

  21. När pipelinen är klar har båda platserna distribuerats och programmet är igång online.After the pipeline finishes, both sites have been deployed and the application is up and running online.

    Skärm bild som visar att programmet är igång och körs.

    Programmet har migrerats till Azure.The application has been successfully migrated to Azure.

Rensa efter migreringenClean up after the migration

Efter migreringen slutförs följande rensnings steg i Contoso-teamet:After the migration, the Contoso team completes the following cleanup steps:

  • De tar bort de lokala virtuella datorerna från vCenter-lagret.They remove the on-premises VMs from the vCenter inventory.
  • De tar bort de virtuella datorerna från de lokala säkerhets kopierings jobben.They remove the VMs from the local backup jobs.
  • De uppdaterar sin interna dokumentation för att visa de nya platserna för SmartHotel360-programmet.They update their internal documentation to show the new locations for the SmartHotel360 application. Dokumentationen visar databasen som körs i SQL-hanterad instans och klient delen som körs i två webbappar.The documentation shows the database as running in the SQL managed instance, and the front end as running in two web apps.
  • De granskar alla resurser som interagerar med de inaktiverade virtuella datorerna och de uppdaterar relevanta inställningar eller dokumentation för att avspegla den nya konfigurationen.They review any resources that interact with the decommissioned VMs, and they update any relevant settings or documentation to reflect the new configuration.

Granska distributionenReview the deployment

Med resurserna som nu har migrerats till Azure måste contoso fullständigt operationalisera och hjälpa till att skydda den nya infrastrukturen.With the resources now migrated to Azure, Contoso needs to fully operationalize and help secure their new infrastructure.

SäkerhetSecurity

  • Contoso hjälper till att säkerställa att deras nya SmartHotel-Registration databas är säker.Contoso helps ensure that their new SmartHotel-Registration database is secure. Läs mer.Learn more.
  • I synnerhet uppdaterar contoso webbapparna för att använda SSL med certifikat.In particular, Contoso updates the web apps to use SSL with certificates.

SäkerhetskopiorBackups

  • Contoso-teamet granskar säkerhets kopierings kraven för databasen i den hanterade Azure SQL-instansen.The Contoso team reviews the backup requirements for the database in Azure SQL Managed Instance. Läs mer.Learn more.
  • De lär sig också att hantera SQL Database säkerhets kopiering och återställning.They also learn about managing SQL Database backups and restores. Läs mer om automatisk säkerhetskopiering.Learn more about automatic backups.
  • De kan implementera redundanskluster för att tillhandahålla regional redundans för-databasen.They consider implementing failover groups to provide regional failover for the database. Läs mer.Learn more.
  • De funderar på att distribuera webbappen i huvud regionen ( East US 2 ) och den sekundära regionen ( Central US ) för återhämtning.They consider deploying the web app in the main region (East US 2) and the secondary region (Central US) for resilience. Teamet kan konfigurera Traffic Manager för att säkerställa redundans under regionala avbrott.The team could configure Traffic Manager to ensure failover during regional outages.

Licensierings- och kostnadsoptimeringLicensing and cost optimization

  • När alla resurser har distribuerats tilldelar contoso Azure-Taggar baserat på deras infrastruktur planering.After all resources are deployed, Contoso assigns Azure tags based on their infrastructure planning.
  • All licensiering är inbyggd i kostnaden för de PaaS-tjänster som Contoso använder.All licensing is built into the cost of the PaaS services that Contoso is consuming. Kostnaden dras från Enterprise-avtal.This cost is deducted from the Enterprise Agreement.
  • Contoso använder Azure Cost Management och fakturering för att se till att de ligger inom de budgetar som fastställs av deras ledarskap.Contoso will use Azure Cost Management and Billing to ensure that they stay within the budgets established by their IT leadership.

SlutsatsConclusion

I den här artikeln omstrukturerade contoso SmartHotel360-programmet i Azure genom att migrera programmets frontend-VM till två Azure App Service webbappar.In this article, Contoso refactored the SmartHotel360 application in Azure by migrating the application front-end VM to two Azure App Service web apps. Program databasen migrerades till en hanterad Azure SQL-instans.The application database was migrated to an Azure SQL managed instance.