Migrieren einer App zu Azure App Service und SQL-DatenbankMigrate an application to Azure App Service and SQL Database

Dieser Artikel zeigt, wie das fiktive Unternehmen Contoso eine Windows .NET-App mit zwei Ebenen, die auf VMware-VMs ausgeführt wird, als Teil einer Migration zu Azure umgestaltet.This article demonstrates how the fictional company Contoso refactors a two-tier Windows .NET application running on VMware VMs as part of a migration to Azure. Das Unternehmen migriert die App-Front-End-VM zu einer Azure App Service-Web-App und die App-Datenbank zu einer Azure SQL-Datenbank-Instanz.They migrate the application front-end VM to an Azure App Service web app and the application database to Azure SQL Database.

Die in diesem Beispiel verwendete SmartHotel360-Anwendung wird quelloffen bereitgestellt.The SmartHotel360 application used in this example is provided as open source. Wenn Sie diese App für Ihre eigenen Tests verwenden möchten, können Sie sie von GitHub herunterladen.If you'd like to use it for your own testing purposes, you can download it from GitHub.

Business-TreiberBusiness drivers

Das IT Leadership-Team hat eng mit den Geschäftspartnern zusammengearbeitet, um zu verstehen, was das Unternehmen mit dieser Migration erreichen möchte:The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Unternehmenswachstum.Address business growth. Contoso wächst, und damit steigt die Last auf den lokalen Systeme und Infrastrukturen.Contoso is growing, and there is pressure on on-premises systems and infrastructure.
  • Effizienzsteigerung.Increase efficiency. Contoso muss unnötige Verfahren beseitigen und Prozesse für Entwickler und Benutzer optimieren.Contoso needs to remove unnecessary procedures, and streamline processes for developers and users. Die IT-Abteilung muss schnell sein, weder Geld noch Zeit verschwenden, und Kundenanforderungen schneller bearbeiten.The business needs IT to be fast and not waste time or money, thus delivering faster on customer requirements.
  • Steigerung der Flexibilität.Increase agility. Die Contoso-IT-Abteilung muss schneller auf die Unternehmensanforderungen reagieren.Contoso IT needs to be more responsive to the needs of the business. Die IT-Experten müssen schneller reagieren als die Änderungen im Marketplace geschehen, um den Erfolg in einer globalen Wirtschaft zu garantieren.It must be able to react faster than the changes in the marketplace, to enable the success in a global economy. Es darf nicht im Weg stehen oder zum Geschäftshindernis werden.It mustn't get in the way, or become a business blocker.
  • Skalierung.Scale. Da das Unternehmen erfolgreich wächst, muss die IT-Abteilung von Contoso Systeme bereitstellen, die mit der gleichen Geschwindigkeit mitwachsen können.As the business grows successfully, Contoso IT must provide systems that can grow at the same pace.
  • Senken Sie Kosten.Reduce costs. Contoso möchte die Lizenzierungskosten minimieren.Contoso wants to minimize licensing costs.

MigrationszieleMigration goals

Das Cloudteam von Contoso hat sich folgende Ziele für die Migration gesetzt.The Contoso cloud team has pinned down goals for this migration. Anhand dieser Ziele wird die beste Migrationsmethode bestimmt.These goals were used to determine the best migration method.

Requirements (Anforderungen)Requirements DetailsDetails
AnwendungApplication Die App wird in Azure so wichtig bleiben wie heute.The application in Azure will remain as critical as it is today.

Sie sollte die gleichen Leistungsmerkmale wie aktuell in VMware aufweisen.It should have the same performance capabilities as it currently does in VMware.

Das Team möchte nicht in die App investieren.The team doesn't want to invest in the application. Im Moment möchten die Administratoren die App sicher in die Cloud verschieben.For now, admins will move the application safely to the cloud.

Die Unterstützung für Windows Server 2008 R2, die Version, unter der die App derzeit ausgeführt wird, möchte das Team einstellen.The team want to stop supporting Windows Server 2008 R2, on which the application currently runs.

Das Team möchte SQL Server 2008 R2 generell nicht mehr verwenden und zu einer modernen PaaS-Datenbankplattform wechseln, die den Verwaltungsaufwand minimiert.The team also wants to move away from SQL Server 2008 R2 to a modern PaaS database platform, which will minimize the need for management.

Seine Investitionen in die SQL Server-Lizenzierung und in die Software Assurance möchte Contoso nutzen, wo immer dies möglich ist.Contoso wants to take advantage of its investment in SQL Server licensing and Software Assurance where possible.

Darüber hinaus möchte Contoso die Auswirkungen des Single Point of Failure in der Webebene abschwächen.In addition, Contoso wants to mitigate the single point of failure on the web tier.
EinschränkungenLimitations Die App besteht aus einer ASP.NET-App und einem WCF-Dienst, die auf derselben VM ausgeführt werden.The application consists of an ASP.NET application and a WCF service running on the same VM. Sie möchten diese Komponenten mithilfe von Azure App Service auf zwei Web-Apps verteilen.They want to spread these components across two web apps using the Azure App Service.
AzureAzure Contoso möchte die App zu Azure migrieren, jedoch nicht auf VMs ausführen.Contoso wants to move the application to Azure, but doesn't want to run it on VMs. Sowohl in der Web- als auch in der Datenschicht soll auf Azure-PaaS-Dienste zurückgegriffen werden.Contoso wants to use Azure PaaS services for both the web and data tiers.
DevOpsDevOps Contoso möchte auf ein DevOps-Modell umsteigen und Azure DevOps für Builds und Releasepipelines verwenden.Contoso wants to move to a DevOps model, using Azure DevOps for their builds and release pipelines.

LösungsentwurfSolution design

Nachdem die Ziele und Anforderungen formuliert wurden, entwirft und überprüft Contoso eine Bereitstellungslösung und identifiziert den Migrationsprozess sowie die für die Migration genutzten Azure-Dienste.After pinning down goals and requirements, Contoso designs and review a deployment solution, and identifies the migration process, including the Azure services that will be used for migration.

Aktuelle AnwendungCurrent application

  • Die lokale App SmartHotel360 ist auf zwei VMs aufgeteilt (WEBVM und SQLVM).The SmartHotel360 on-premises application is tiered across two VMs (WEBVM and SQLVM).
  • Die VMs befinden sich auf dem VMware ESXi-Host contosohost1.contoso.com (Version 6.5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • Die VMware-Umgebung wird von der vCenter Server 6.5-Software (vcenter.contoso.com) auf einer VM verwaltet.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • Contoso verfügt über ein lokales Rechenzentrum (contoso-datacenter) mit einem lokalen Domänencontroller (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • Die lokalen VMs im Rechenzentrum von Contoso werden nach Abschluss der Migration außer Betrieb gesetzt.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Vorgeschlagene LösungProposed solution

  • Für die Datenbankebene der App verglich Contoso mithilfe dieses Artikels Azure SQL-Datenbank mit SQL Server.For the database tier of the application, Contoso compared Azure SQL Database with SQL Server using this article. Die Entscheidung für Azure SQL-Datenbank hat für Contoso verschiedene Gründe:Contoso decided to use Azure SQL Database for a few reasons:
    • Azure SQL-Datenbank ist ein verwalteter relationaler Datenbankdienst.Azure SQL Database is a managed relational database service. Er bietet eine vorhersagbare Leistung auf mehreren Serviceleveln bei nahezu keinem Administrationsaufwand.It delivers predictable performance at multiple service levels, with near-zero administration. Zu den Vorteilen gehören dynamische Skalierbarkeit ohne Ausfallzeiten, integrierte intelligente Optimierung sowie globale Skalierbarkeit und Verfügbarkeit.Advantages include dynamic scalability with no downtime, built-in intelligent optimization, and global scalability and availability.
    • Contoso kann den einfachen Datenmigrations-Assistenten (DMA) nutzen, um die Migration der lokalen Datenbank zu Azure SQL-Datenbank zu bewerten.Contoso can use the lightweight Data Migration Assistant (DMA) to assess the on-premises database to Azure SQL.
    • Contoso kann Azure Database Migration Service verwenden, um lokale Datenbanken zu Azure SQL zu migrieren.Contoso can use Azure Database Migration Service to migrate the on-premises database to Azure SQL.
    • Mit der Software Assurance kann Contoso seine vorhandenen Lizenzen mit dem Azure-Hybridvorteil für SQL Server zu ermäßigten Preisen für eine SQL-Datenbank-Instanz austauschen.With Software Assurance, Contoso can exchange existing licenses for discounted rates on a SQL Database, using the Azure Hybrid Benefit for SQL Server. So sind Einsparungen von bis zu 30 Prozent möglich.This could provide savings of up to 30 percent.
    • SQL-Datenbank bietet verschiedene Sicherheitsfeatures, darunter Always Encrypted, dynamische Datenmaskierung und Sicherheit bzw. SQL-Bedrohungserkennung auf Zeilenebene.SQL Database provides security features such as Always Encrypted, dynamic data masking, row-level security, and SQL threat detection.
  • Für die Webebene der App hat sich Contoso dazu entschieden, Azure App Service zu verwenden.For the application web tier, Contoso has decided to use Azure App Service. Über diesen PaaS-Dienst kann die App mit nur wenigen Konfigurationsänderungen bereitgestellt werden.This PaaS service enables that to deploy the application with just a few configuration changes. Contoso führt die Änderung mit Visual Studio durch und stellt zwei Web-Apps bereit.Contoso will use Visual Studio to make the change, and deploy two web apps. Eine für die Website, und eine für den WCF-Dienst.One for the website, and one for the WCF service.
  • Contoso hat sich dazu entschieden, Azure DevOps für die Quellcodeverwaltung mit Git-Repositorys zu verwenden, um die Anforderungen einer DevOps-Pipeline zu erfüllen.To meet requirements for a DevOps pipeline, Contoso has selected to use Azure DevOps for source code management (SCM) with Git repos. Mithilfe automatisierter Builds und Releases wird der Code erstellt und in Azure App Service bereitgestellt.Automated builds and release will be used to build the code, and deploy it to the Azure App Service.

Überprüfung der LösungSolution review

Contoso wertet den vorgeschlagen Entwurf durch Erstellen einer Liste mit Vor- und Nachteilen aus.Contoso evaluates their proposed design by putting together a pros and cons list.

AspektConsideration DetailsDetails
VorteilePros Der Code der SmartHotel360-App erfordert für die Migration zu Azure keine Änderungen.The SmartHotel360 application code doesn't require changes for migration to Azure.

Contoso kann seine Investition in die Software Assurance mit dem Azure-Hybridvorteil für SQL Server und Windows Server nutzen.Contoso can take advantage of their investment in Software Assurance using the Azure Hybrid Benefit for both SQL Server and Windows Server.

Nach der Migration muss Windows Server 2008 R2 nicht unterstützt werden.After the migration, Windows Server 2008 R2 won't need to be supported. Weitere Informationen finden Sie in der Microsoft Lifecycle-Richtlinie.For more information, see the Microsoft Lifecycle Policy.

Contoso kann die Webebene der App mit mehreren Instanzen konfigurieren, sodass sie kein Single Point of Failure mehr ist.Contoso can configure the web tier of the application with multiple instances, so that it's no longer a single point of failure.

Die Datenbank ist nicht mehr auf das veraltete SQL Server 2008 R2 angewiesen.The database will no longer depend on the aging SQL Server 2008 R2.

SQL-Datenbank unterstützt die technischen Anforderungen.SQL Database supports the technical requirements. Contoso bewertete die lokale Datenbank mithilfe des Datenmigrations-Assistenten und stellte fest, dass sie kompatibel ist.Contoso assessed the on-premises database using Data Migration Assistant and found that it's compatible.

Azure SQL-Datenbank verfügt über eine integrierte Fehlertoleranz, die Contoso nicht einrichten muss.Azure SQL Database has built-in fault tolerance that Contoso doesn't have to set up. Dadurch wird sichergestellt, dass die Datenschicht kein Single Point of Failover mehr ist.This ensures that the data tier is no longer a single point of failover.

Wenn Contoso Azure Database Migration Service für die Migration der Datenbank verwendet, verfügt das Unternehmen über die entsprechende Infrastruktur für die Migration umfangreicher Datenbanken.If Contoso uses Azure Database Migration Service to migrate their database, it will have the infrastructure ready for migrating databases at scale.
NachteileCons Azure App Service unterstützt nur eine App-Bereitstellung für jede Web-App.Azure App Service only supports one application deployment for each web app. Dies bedeutet, dass zwei Web-Apps bereitgestellt werden müssen (eine für die Website und eine für den WCF-Dienst).This means that two web apps must be provisioned (one for the website and one for the WCF service).

Vorgeschlagene ArchitekturProposed architecture

Szenarioarchitektur

MigrationsprozessMigration process

  1. Contoso stellt eine Azure SQL-Instanz bereit und migriert mithilfe von Azure Database Migration Service die Datenbank von SmartHotel360 dorthin.Contoso provisions an Azure SQL instance, and migrates the SmartHotel360 database to it using Azure Database Migration Service.

  2. Nach der Bereitstellung und Konfiguration von Web-Apps stellt Contoso die App SmartHotel360 in diesen bereit.Contoso provisions and configures web apps, and deploys the SmartHotel360 application to them.

    Migrationsprozess

Azure-DiensteAzure services

DienstService BESCHREIBUNGDescription KostenCost
Datenmigrations-Assistent (DMA)Data Migration Assistant (DMA) Contoso verwendet den DMA zum Bewerten und Erkennen von Kompatibilitätsproblemen, die sich auf die Funktionalität ihrer Datenbank in Azure auswirken könnten.Contoso will use DMA to assess and detect compatibility issues that might affect their database functionality in Azure. Der DMA bewertet die Featureparität zwischen SQL-Quellen und -Zielen, und empfiehlt Verbesserungen der Leistung und Zuverlässigkeit.DMA assesses feature parity between SQL sources and targets, and recommends performance and reliability improvements. Sie können das Tool kostenlos herunterladen.It's a downloadable tool free of charge.
Azure Database Migration ServiceAzure Database Migration Service Azure Database Migration Service ermöglicht die nahtlose Migration von mehreren Datenbankquellen zu Azure-Datenplattformen bei minimaler Ausfallzeit.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Informieren Sie sich über die unterstützten Regionen und die Preise für den Database Migration Service.Learn about supported regions and Database Migration Service pricing.
Azure SQL-DatenbankAzure SQL Database Ein intelligenter, vollständig verwalteter Dienst für relationale Clouddatenbanken.An intelligent, fully managed relational cloud database service. Die Kosten ergeben sich durch Features, Durchsatz und Größe.Cost based on features, throughput, and size. Weitere InformationenLearn more.
Azure App ServiceAzure App Service Es wird gezeigt, wie leistungsstarke Cloud-Apps auf einer vollständig verwalteten Plattform erstellt werden können.Create powerful cloud applications using a fully managed platform Die Kosten basieren auf Größe, Standort und Nutzungsdauer.Cost based on size, location, and usage duration. Weitere InformationenLearn more.
Azure DevOpsAzure DevOps Stellt die Pipeline für Continuous Integration und Continuous Deployment (CI/CD) für die App-Entwicklung bereit.Provides a continuous integration and continuous deployment (CI/CD) pipeline for application development. Die Pipeline beginnt bei einem Git-Repository für die Verwaltung von App-Code, einem Buildsystem zum Erstellen von Paketen und anderen Buildartefakten sowie einem Releaseverwaltungssystem zum Bereitstellen von Änderungen in Entwicklungs-, Test- und Produktionsumgebungen.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.

VoraussetzungenPrerequisites

Für die Ausführung dieses Szenarios benötigt Contoso Folgendes:Here's Contoso needs to run this scenario:

Requirements (Anforderungen)Requirements DetailsDetails
Azure-AbonnementAzure subscription Contoso hat in einem früheren Artikel Abonnements erstellt.Contoso created subscriptions during an early article. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.If you don't have an Azure subscription, create a free account.

Wenn Sie ein kostenloses Konto erstellen, sind Sie der Administrator Ihres Abonnements und können alle Aktionen durchführen.If you create a free account, you're the administrator of your subscription and can perform all actions.

Falls Sie ein vorhandenes Abonnement verwenden und nicht der Administrator sind, müssen Sie mit dem Administrator zusammenarbeiten, damit er Ihnen Berechtigungen vom Typ „Besitzer“ oder „Mitwirkender“ zuweist.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 Weitere Informationen zur Vorgehensweise von Contoso beim Einrichten einer Azure-Infrastruktur.Learn how Contoso set up an Azure infrastructure.

SzenarioschritteScenario steps

Contoso geht bei der Ausführung der Migration wie folgt vor:Here's how Contoso will run the migration:

  • Schritt 1: Bereitstellen einer SQL-Datenbankinstanz in Azure.Step 1: Provision a SQL Database instance in Azure. Contoso stellt eine SQL-Instanz in Azure bereit.Contoso provisions a SQL instance in Azure. Nachdem die App-Website zu Azure migriert wurde, verweist die Web-App für den WCF-Dienst auf diese Instanz.After the application website is migrated to Azure, the WCF service web app will point to this instance.
  • Schritt 2: Bewerten der Datenbank mit dem Datenmigrations-Assistenten (DMA) von Azure und Migration mit Azure Database Migration ServiceStep 2: Assess the database using Azure Data Migration Assistant (DMA) and migrate it via Azure Database Migration Service. Contoso bewertet die Datenbank für die Migration und migriert dann die Anwendungsdatenbank mit Azure Database Migration Service.Contoso assesses the database for migration then migrates the application database via Azure Database Migration Service.
  • Schritt 3: Bereitstellen von Web-Apps.Step 3: Provision web apps. Contoso stellt die beiden Web-Apps bereit.Contoso provisions the two web apps.
  • Schritt 4: Einrichten von Azure DevOps.Step 4: Set up Azure DevOps. Contoso erstellt ein neues Azure DevOps-Projekt und importiert das Git-Repository.Contoso creates a new Azure DevOps project, and imports the Git repo.
  • Schritt 5: Konfigurieren von Verbindungszeichenfolgen.Step 5: Configure connection strings. Contoso konfiguriert Verbindungszeichenfolgen, damit die Web-App auf Webebene, die Web-App für den WCF-Dienst und die SQL-Instanz kommunizieren können.Contoso configures connection strings so that the web tier web app, the WCF service web app, and the SQL instance can communicate.
  • Schritt 6: Einrichten von Build- und Releasepipelines.Step 6: Set up build and release pipelines. Als letzten Schritt richtet Contoso Build- und Releasepipelines zum Erstellen der App ein und stellt sie in zwei separaten Web-Apps bereit.As a final step, Contoso sets up build and release pipelines to create the application, and deploys them to two separate web apps.

Schritt 1: Bereitstellen einer Azure SQL-DatenbankStep 1: Provision Azure SQL Database

  1. Die Administratoren von Contoso entscheiden sich dafür, eine Azure SQL-Datenbank-Instanz zu erstellen.Contoso admins select to create an Azure SQL Database instance.

    Bereitstellen von SQL

  2. Das Unternehmen gibt einen Datenbanknamen an, der mit der Datenbank übereinstimmt, die auf der lokalen VM (SmartHotel.Registration) ausgeführt wird.They specify a database name to match the database running on the on-premises VM (SmartHotel.Registration). Die Datenbank wird dann in der ContosoRG-Ressourcengruppe platziert.They place the database in the ContosoRG resource group. Dies ist die Ressourcengruppe, die das Unternehmen für die Produktionsressourcen in Azure verwendet.This is the resource group they use for production resources in Azure.

    Bereitstellen einer Azure SQL-Datenbank-Instanz

  3. Das Unternehmen richtet eine neue SQL Server-Instanz (sql-smarthotel-eus2) in der primären Region ein.They set up a new SQL Server instance (sql-smarthotel-eus2) in the primary region.

    Bereitstellen von SQL

  4. Den Tarif legt das Unternehmen entsprechend seiner Server- und Datenbankanforderungen fest.They set the pricing tier to match their server and database needs. Zudem entscheidet es sich, Geld mit dem Azure-Hybridvorteil zu sparen, da es bereits über eine SQL Server-Lizenz verfügen.And they select to save money with Azure Hybrid Benefit because they already have a SQL Server license.

  5. Zur Größenanpassung nutzt es das auf virtuellen Kernen basierende Kaufmodell und legt die Grenzwerte für seine erwarteten Anforderungen fest.For sizing, they use vCore-based purchasing and set the limits for their expected requirements.

    Bereitstellen von SQL

  6. Dann erstellt Contoso die Datenbankinstanz.Then they create the database instance.

    Bereitstellen von SQL

  7. Nach dem Erstellen der Instanz öffnet ein Unternehmensmitarbeiter die Datenbank und notiert sich Details, die für die Migration mit dem Datenmigrations-Assistenten benötigt werden.After the instance is created, they open the database, and note details they need when they use Data Migration Assistant for migration.

    Bereitstellen von SQL

Benötigen Sie weitere Hilfe?Need more help?

Schritt 2: Bewerten der Datenbank mit dem Datenmigrations-Assistenten (DMA) und Migration mit Azure Database Migration ServiceStep 2: Assess the database using Data Migration Assistant (DMA) and migrate it using Azure Database Migration Service

Contoso-Administratoren bewerten die Datenbank mithilfe des Datenbankmigrations-Assistenten (DMA) und migrieren sie anschließend anhand des Tutorials: Onlinemigration von SQL Server zu einer Einzel- oder Pooldatenbank in Azure SQL-Datenbank mit DMS mithilfe von Azure Database Migration Service.Contoso admins assess the database using Data Migration Assistant (DMA) and then migrate it using Azure Database Migration Service using the step-by-step migration tutorial. Sie können Online-, Offline- und Hybridmigrationen (Vorschauversion) ausführen.They can perform online, offline, and hybrid (preview) migrations.

Zusammenfassend müssen Sie die folgenden Schritte ausführen:As a summary, you must perform the following:

  • Nutzen Sie den Datenmigrations-Assistenten (DMA) zum Ermitteln und Beheben aller Probleme bei der Datenbankmigration.Use Data Migration Assistant (DMA) to discover and resolve any database migration issues.
  • Erstellen Sie eine Azure Database Migration Service-Instanz mit einer Premium-SKU, die mit dem VNet verbunden ist.Create an Azure Database Migration Service instance with a Premium SKU that is connected to the VNet.
  • Vergewissern Sie sich, dass die Instanz über das virtuelle Netzwerk auf die SQL Server-Remoteinstanz zugreifen kann.Ensure that the instance can access the remote SQL Server via the virtual network. Dazu gehört auch, sicherzustellen, dass alle eingehenden Ports von Azure zu SQL Server auf der virtuellen Netzwerkebene, dem Netzwerk-VPN und dem Computer, auf dem SQL Server gehostet ist, zugelassen werden.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.
  • Konfigurieren der Instanz:Configure the instance:
    • Erstellen Sie ein Migrationsprojekt.Create a migration project.
    • Fügen Sie eine Quelle (lokale Datenbank) hinzu.Add a source (on-premises database).
    • Wählen Sie ein Ziel aus.Select a target.
    • Wählen Sie die zu migrierenden Datenbanken aus.Select the databases to migrate.
    • Konfigurieren Sie die erweiterten Einstellungen.Configure advanced settings.
    • Starten Sie die Replikation.Start the replication.
    • Beheben Sie alle Fehler.Resolve any errors.
    • Führen Sie den abschließenden Cutover (Systemwechsel) durch.Perform the final cutover.

Schritt 3: Bereitstellen von Web-AppsStep 3: Provision web apps

Nachdem die Datenbank migriert wurde, können die Administratoren von Contoso die beiden Web-Apps bereitstellen.With the database migrated, Contoso admins can now provision the two web apps.

  1. Das Unternehmen wählt Web-App im Portal aus.They select Web App in the portal.

    Web-App

  2. Das Unternehmen gibt einen Namen für die Web-App an (SHWEB-EUS2), führt die App unter Windows aus und platziert sie in der Produktionsressourcengruppe ContosoRG.They provide a name for the web app (SHWEB-EUS2), run it on Windows, and place it un the production resource group ContosoRG. Es wird eine neue Web-App und ein Azure App Service-Plan erstellt.They create a new web app and Azure App Service plan.

    Web-App

  3. Nachdem die Web-App bereitgestellt wurde, wird der Prozess zum Erstellen einer Web-App für den WCF-Dienst (SHWCF-EUS2) wiederholt.After the web app is provisioned, they repeat the process to create a web app for the WCF service (SHWCF-EUS2)

    Web-App

  4. Anschließend navigiert Contoso zu der Adresse der Apps, um zu überprüfen, ob diese erfolgreich erstellt wurden.After they're done, they browse to the address of the applications to check they've been created successfully.

Schritt 4: Einrichten von Azure DevOpsStep 4: Set up Azure DevOps

Contoso muss die DevOps-Infrastruktur und die Pipelines für die Anwendung erstellen.Contoso needs to build the DevOps infrastructure and pipelines for the application. Hierzu erstellen die Administratoren von Contoso ein neues DevOps-Projekt, importieren ihren Code und richten anschließend die Build- und Releasepipelines ein.To do this, Contoso admins create a new DevOps project, import the code, and then set up build and release pipelines.

  1. In der Azure DevOps-Organisation von Contoso erstellen sie ein neues Projekt (ContosoSmartHotelRefactor) und wählen anschließend Git für die Versionskontrolle aus.In the Contoso Azure DevOps organization, they create a new project (ContosoSmartHotelRefactor), then select Git for version control.

    Neues Projekt

  2. Sie importieren das Git-Repository, das derzeit ihren App-Code enthält.They import the Git repo that currently holds their application code. Der Code befindet sich in einem öffentlichen GitHub-Repository und kann heruntergeladen werden.It's in a public GitHub repository and you can download it.

    Herunterladen des App-Codes

  3. Nach dem Importieren des Codes verknüpfen sie Visual Studio mit dem Repository und klonen den Code mithilfe von Team Explorer.After the code is imported, they connect Visual Studio to the repo, and clone the code using Team Explorer.

    Herstellen einer Verbindung mit dem Projekt

  4. Nachdem das Repository auf dem Entwicklercomputer geklont wurde, öffnen sie die Projektmappendatei für die App.After the repository is cloned to the developer machine, they open the solution file for the application. Die Datei enthält jeweils ein eigenes Projekt für die Web-App und den WCF-Dienst.The web app and WCF service each have separate project within the file.

    Projektmappendatei

Schritt 5: Konfigurieren von VerbindungszeichenfolgenStep 5: Configure connection strings

Die Administratoren von Contoso müssen sicherstellen, dass die Web-Apps und die Datenbank kommunizieren können.Contoso admins need to make sure the web apps and database can all communicate. Zu diesem Zweck konfiguriert das Unternehmen Verbindungszeichenfolgen im Code und in den Web-Apps.To do this, they configure connection strings in the code and in the web apps.

  1. In der Web-App für den WCF-Dienst (SHWCF-EUS2) fügt Contoso unter Einstellungen > Anwendungseinstellungen eine neue Verbindungszeichenfolge mit dem Namen DefaultConnection hinzu.In the web app for the WCF service (SHWCF-EUS2) > Settings > Application settings, they add a new connection string named DefaultConnection.

  2. Die Verbindungszeichenfolge wird von der Datenbank SmartHotel-Registration abgerufen und sollte mit den entsprechenden Anmeldeinformationen aktualisiert werden.The connection string is pulled from the SmartHotel-Registration database, and should be updated with the correct credentials.

    Verbindungszeichenfolge

  3. Sie öffnen in Visual Studio das Projekt SmartHotel.Registration.wcf in der Projektmappendatei.Using Visual Studio, they open the SmartHotel.Registration.wcf project from the solution file. Der connectionStrings-Bereich der web.config-Datei für den WCF-Dienst SmartHotel.Registration.wcf sollte mit der Verbindungszeichenfolge aktualisiert werden.The connectionStrings section of the web.config file for the WCF service SmartHotel.Registration.wcf should be updated with the connection string.

    Verbindungszeichenfolge

  4. Der Abschnitt client der Datei web.config für SmartHotel.registration.web sollte dahingehend geändert werden, dass er auf den neuen Speicherort des WCF-Diensts verweist.The client section of the web.config file for the SmartHotel.registration.web should be changed to point to the new location of the WCF service. Dies ist die URL der WCF-Web-App, die den Dienstendpunkt hostet.This is the URL of the WCF web app hosting the service endpoint.

    Verbindungszeichenfolge

  5. Nachdem die Änderungen im Code vorgenommen wurden, müssen die Administratoren die Änderungen committen.After the changes are in the code, admins need to commit the changes. Sie führen Commit und Synchronisierung mithilfe von Team Explorer in Visual Studio durch.Using Team Explorer in Visual Studio, they commit and sync.

Schritt 6: Einrichten von Build- und Releasepipelines in Azure DevOpsStep 6: Set up build and release pipelines in Azure DevOps

Als Nächstes konfigurieren die Contoso-Administratoren Azure DevOps für die Durchführung des Build- und Releasevorgangs.Contoso admins now configure Azure DevOps to perform build and release process.

  1. Dazu wählen sie in Azure DevOps Build und Release > Neue Pipeline aus.In Azure DevOps, they select Build and release > New pipeline.

    Neue Pipeline

  2. Sie wählen Azure Repos Git und das entsprechende Repository aus.They select Azure Repos Git and the relevant repo.

    Git und Repository

  3. Unter Vorlage auswählen wählen sie die ASP.NET-Vorlage für ihren Build aus.In Select a template, they select the ASP.NET template for their build.

    ASP.NET-Vorlage

  4. Der Name ContosoSmartHotelRefactor-ASP.NET-CI wird für den Build verwendet.The name ContosoSmartHotelRefactor-ASP.NET-CI is used for the build. Wählen Sie Speichern und in Warteschlange einreihen aus.They select Save & Queue.

    Speichern und in Warteschlange einreihen

  5. Dies startet den ersten Build.This kicks off the first build. Sie wählen die Buildnummer aus, um den Prozess zu überwachen.They select the build number to watch the process. Nachdem dieser abgeschlossen ist, können sie das Prozessfeedback sehen und Artefakte auswählen, um die Buildergebnisse zu überprüfen.After it's finished they can see the process feedback, then select Artifacts to review the build results.

    Überprüfung

  6. Der Ordner Drop enthält die Buildergebnisse.The folder Drop contains the build results.

    • Die beiden ZIP-Dateien sind die Pakete, die die Apps enthalten.The two zip files are the packages that contain the applications.
    • Diese Dateien werden in der Releasepipeline für die Bereitstellung in Azure App Service verwendet.These files are used in the release pipeline for deployment to Azure App Service.

    Artefakt

  7. Ein Mitarbeiter klickt auf Releases > + Neue Pipeline.They select Releases > + New pipeline.

    Neue Pipeline

  8. Sie wählen die Bereitstellungsvorlage für Azure App Service aus.They select the deployment template for Azure App Service.

    Bereitstellungsvorlage für Azure App Service

  9. Er benennt die Releasepipeline mit ContosoSmartHotel360Refactor und gibt den Namen der WCF-Web-App (SHWCF-EUS2) für den Phasennamen ein.They name the release pipeline ContosoSmartHotel360Refactor, and specify the name of the WCF web app (SHWCF-EUS2) for the Stage name.

    Environment

  10. Sie klicken unter den Phasen auf 1 Auftrag, 1 Aufgabe, um die Bereitstellung des WCF-Diensts zu konfigurieren.Under the stages, they select 1 job, 1 task to configure deployment of the WCF service.

    Bereitstellen von WCF

  11. Er überprüft, ob das Abonnement ausgewählt und autorisiert ist, und klickt dann auf den App Service-Namen.They verify the subscription is selected and authorized, and select the app service name.

    Auswählen des Namens des App-Diensts

  12. In der Pipeline klickt er dann unter Artefakte auf Artefakt hinzufügen und wählt für den Build die Pipeline ContosoSmarthotel360Refactor aus.On the pipeline > Artifacts, they select + Add an artifact, then select to build with the ContosoSmarthotel360Refactor pipeline.

    Entwickeln

  13. Sie überprüfen, ob das Blitzsymbol des ausgewählten Artefakts aktiviert ist, um den Continuous Deployment-Trigger zu aktivieren.They verify the lightning bolt on the artifact is checked to enable the continuous deployment trigger.

    Blitzsymbol

  14. Der Continuous Deployment-Trigger sollte außerdem auf Aktiviert festgelegt sein.The continuous deployment trigger should be set to Enabled.

    Continuous Deployment aktiviert

  15. Jetzt navigiert er zurück zur Phase 1 Auftrag, 1 Aufgabe und klickt anschließend auf Azure App Service bereitstellen.Now, they move back to the stage 1 job, 1 task, then select Deploy Azure App Service.

    Bereitstellen von Azure App Service

  16. Er sucht unter Datei oder Ordner suchen die Datei SmartHotel.Registration.Wcf.zip, die während der Erstellung erstellt wurde, und klickt anschließend auf Speichern.In Select a file or folder, they locate the SmartHotel.Registration.Wcf.zip file that was creating during the build, then select Save.

    Speichern von WCF

  17. Er klickt auf Pipeline > Phasen, + Hinzufügen, um eine Umgebung für SHWEB-EUS2 hinzuzufügen.They select Pipeline > Stages, + Add to add an environment for SHWEB-EUS2. Sie wählen eine weitere Azure App Service-Bereitstellung aus.They select another Azure App Service deployment.

    Hinzufügen einer Umgebung

  18. Der Prozess wird wiederholt, um die Datei der Web-App (SmartHotel.Registration.Web.zip) in der korrekten Web-App zu veröffentlichen.They repeat the process to publish the web app (SmartHotel.Registration.Web.zip) file to the correct web app.

    Veröffentlichen der Web-App

  19. Nach dem Speichern wird die Releasepipeline wie folgt angezeigt.After it's saved, the release pipeline will show as follows.

    Releasepipeline – Zusammenfassung

  20. Sie wechseln zurück zum Build und klicken auf Trigger > Continuous Integration aktivieren.They move back to Build, then select Triggers > Enable continuous integration. Dies aktiviert die Pipeline. Wenn also Änderungen am Code committet werden, erfolgt ein vollständiger Build mit Release.This enables the pipeline so that when changes are committed to the code, and full build and release occurs.

    Aktivieren von Continuous Integration

  21. Sie klicken auf Speichern und in Warteschlange einreihen, um die vollständige Pipeline auszuführen.They select Save & Queue to run the full pipeline. Es wird ein neuer Build ausgelöst, der wiederum das erste Release der App in Azure App Service erstellt.A new build is triggered that in turn creates the first release of the application to the Azure App Service.

    Speichern der Pipeline

  22. Die Administratoren von Contoso können die Verarbeitung von Build- und Releasepipeline in Azure DevOps überwachen.Contoso admins can follow the build and release pipeline process from Azure DevOps. Nachdem der Build abgeschlossen wurde, startet die Veröffentlichung.After the build completes, the release will start.

    Erstellen und veröffentlichen der App

  23. Nachdem die Pipeline abgeschlossen wurde, sind beide Websites bereitgestellt, und die App wird online ausgeführt.After the pipeline finishes, both sites have been deployed and the application is up and running online.

    Abschließen der Veröffentlichung

An dieser Stelle wurde die Anwendung erfolgreich zu Azure migriert.At this point, the application is successfully migrated to Azure.

Bereinigung nach der MigrationClean up after migration

Nach der Migration muss Contoso die folgenden Schritte zur Bereinigung ausführen:After migration, Contoso needs to complete these cleanup steps:

  • Entfernen der lokalen VMs aus dem vCenter-Bestand.Remove the on-premises VMs from the vCenter inventory.
  • Entfernen der VMs aus lokalen Sicherungsaufträgen.Remove the VMs from local backup jobs.
  • Aktualisieren der internen Dokumentation zur Anzeige der neuen Speicherorte für die App SmartHotel360.Update internal documentation to show the new locations for the SmartHotel360 application. Anzeigen, dass die Datenbank in Azure SQL-Datenbank und das Front-End in zwei Web-Apps ausgeführt wird.Show the database as running in Azure SQL Database, and the front end as running in two web apps.
  • Überprüfen sämtlicher Ressourcen, die mit den außer Betrieb genommenen VMs interagieren, und Aktualisieren sämtlicher relevanter Einstellungen oder Dokumentationen, um die neue Konfiguration widerzuspiegeln.Review any resources that interact with the decommissioned VMs, and update any relevant settings or documentation to reflect the new configuration.

Überprüfen der BereitstellungReview the deployment

Da die migrierten Ressourcen in Azure enthalten sind, muss Contoso die neue Infrastruktur vollständig operationalisieren und sichern.With the migrated resources in Azure, Contoso needs to fully operationalize and secure their new infrastructure.

SicherheitSecurity

  • Contoso muss sicherstellen, dass seine neue SmartHotel-Registration-Datenbank geschützt ist.Contoso needs to ensure that their new SmartHotel-Registration database is secure. Weitere InformationenLearn more.
  • Insbesondere sollte Contoso die Web-Apps für die Verwendung von SSL mit Zertifikaten aktualisieren.In particular, Contoso should update the web apps to use SSL with certificates.

BackupsBackups

  • Contoso muss die Sicherungsanforderungen für Azure SQL-Datenbank überprüfen.Contoso needs to review backup requirements for the Azure SQL Database. Weitere InformationenLearn more.
  • Contoso muss sich auch über die Verwaltung von Sicherungen und Wiederherstellungen in SQL-Datenbank informieren.Contoso also needs to learn about managing SQL Database backups and restores. Erfahren Sie mehr über automatische Sicherungen.Learn more about automatic backups.
  • Contoso sollte die Implementierung von Failovergruppen erwägen, um ein regionales Failover für die Datenbank bereitzustellen.Contoso should consider implementing failover groups to provide regional failover for the database. Weitere InformationenLearn more.
  • Contoso muss hinsichtlich der Resilienz die Bereitstellung der Web-App in der Hauptregion (East US 2) und der sekundären Region (Central US) in Erwägung ziehen.Contoso needs to consider deploying the web app in the main region (East US 2) and the secondary region (Central US) region for resilience. Contoso könnte den Traffic Manager konfigurieren, um ein Failover während regionaler Ausfälle sicherzustellen.Contoso could configure Traffic Manager to ensure failover during regional outages.

Lizenzierung und KostenoptimierungLicensing and cost optimization

  • Nachdem alle Ressourcen bereitgestellt wurden, sollte Contoso Azure-Tags basierend auf seiner Infrastrukturplanung zuweisen.After all resources are deployed, Contoso should assign Azure tags based on their infrastructure planning.
  • Die gesamte Lizenzierung ist in die Kosten für die PaaS-Dienste integriert, die Contoso verwendet.All licensing is built into the cost of the PaaS services that Contoso is consuming. Dies wird über EA verrechnet.This will be deducted from the EA.
  • Contoso verwendet Azure Cost Management und das Azure-Abrechnungsportal, um sicherzustellen, dass das von den IT-Führungskräften festgelegte Budget nicht überschritten wird.Contoso will use Azure Cost Management and Billing to ensure they stay within budgets established by their IT leadership.

ZusammenfassungConclusion

Im vorliegenden Artikel hat Contoso die App SmartHotel360 in Azure umgestaltet, indem das Unternehmen die Front-End-VM der App mithilfe zweier Azure App Service-Web-Apps migriert hat.In this article, Contoso refactored the SmartHotel360 application in Azure by migrating the application front-end VM to two Azure App Service web apps. Die Anwendungsdatenbank wurde zu einer Azure SQL-Datenbank-Instanz migriert.The application database was migrated to Azure SQL Database.