Migrer une application vers Azure App Service et SQL DatabaseMigrate an application to Azure App Service and SQL Database

Cet article explique comment la société fictive Contoso refactorise une application Windows .NET à deux niveaux exécutée sur des machines virtuelles VMware dans le cadre d'une migration vers Azure.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. Contoso migre la machine virtuelle frontale de l'application vers une application web Azure App Service, et la base de données de l'application vers Azure SQL Database.They migrate the application front-end VM to an Azure App Service web app and the application database to Azure SQL Database.

L'application SmartHotel360 utilisée dans cet exemple est fournie en open source.The SmartHotel360 application used in this example is provided as open source. Si vous souhaitez l’utiliser à des fins de test, vous pouvez la télécharger à partir de GitHub.If you'd like to use it for your own testing purposes, you can download it from GitHub.

Axes stratégiquesBusiness drivers

L’équipe informatique a travaillé en étroite collaboration avec des partenaires commerciaux pour comprendre le résultat qu’ils souhaitent obtenir avec cette migration :The IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Répondre à la croissance de l’entreprise.Address business growth. Contoso étant en croissance, son infrastructure et ses systèmes locaux sont soumis à une charge importante.Contoso is growing, and there is pressure on on-premises systems and infrastructure.
  • Gagner en efficacité.Increase efficiency. Contoso doit supprimer les procédures inutiles et rationaliser les processus pour les développeurs et les utilisateurs.Contoso needs to remove unnecessary procedures, and streamline processes for developers and users. L’entreprise a besoin d’une informatique rapide et doit éviter de perdre du temps ou d’argent en répondant plus rapidement aux exigences des clients.The business needs IT to be fast and not waste time or money, thus delivering faster on customer requirements.
  • Gagner en agilité.Increase agility. le service informatique de Contoso doit être plus réactif face aux besoins de l’entreprise.Contoso IT needs to be more responsive to the needs of the business. Elle doit être en mesure de réagir plus rapidement que l’évolution du marché pour réussir dans une économie mondiale.It must be able to react faster than the changes in the marketplace, to enable the success in a global economy. L’informatique ne doit pas devenir une entrave à l’activité.It mustn't get in the way, or become a business blocker.
  • Mise à l’échelleScale. Le service informatique de Contoso doit prévoir des systèmes capables d’évoluer au même rythme que l’entreprise.As the business grows successfully, Contoso IT must provide systems that can grow at the same pace.
  • Réduire les coûts.Reduce costs. Contoso souhaite réduire les coûts de licence.Contoso wants to minimize licensing costs.

Objectifs de la migrationMigration goals

L’équipe cloud de Contoso a épinglé les objectifs de cette migration.The Contoso cloud team has pinned down goals for this migration. Ces objectifs ont été utilisés pour déterminer la meilleure méthode de migration.These goals were used to determine the best migration method.

SpécificationsRequirements DétailsDetails
ApplicationApplication L'application migrée vers Azure restera aussi critique qu'aujourd’hui.The application in Azure will remain as critical as it is today.

Elle doit offrir le même niveau de performance qu’actuellement dans VMware.It should have the same performance capabilities as it currently does in VMware.

L'équipe ne souhaite pas investir dans l'application.The team doesn't want to invest in the application. Pour l'instant, les administrateurs souhaitent déplacer l'application de façon sécurisée vers le cloud.For now, admins will move the application safely to the cloud.

L'équipe veut cesser de prendre en charge Windows Server 2008 R2, sur lequel l'application est actuellement exécutée.The team want to stop supporting Windows Server 2008 R2, on which the application currently runs.

L'équipe souhaite également passer de SQL Server 2008 R2 à une plateforme de base de données PaaS moderne, de façon à réduire les tâches de gestion.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.

Contoso souhaite tirer parti autant que possible de son investissement dans les licences SQL Server et dans Software Assurance.Contoso wants to take advantage of its investment in SQL Server licensing and Software Assurance where possible.

En outre, Contoso veut limiter les risques liés à un point de défaillance unique sur le niveau web.In addition, Contoso wants to mitigate the single point of failure on the web tier.
LimitationsLimitations L'application se compose d'une application ASP.NET et d'un service WCF (Windows Communication Foundation) exécuté sur la même machine virtuelle.The application consists of an ASP.NET application and a WCF service running on the same VM. Ils veulent répartir ces composants dans deux applications web avec Azure App Service.They want to spread these components across two web apps using the Azure App Service.
Microsoft AzureAzure Contoso souhaite déplacer l'application vers Azure, mais pas l'exécuter sur des machines virtuelles.Contoso wants to move the application to Azure, but doesn't want to run it on VMs. Contoso veut utiliser des services PaaS d’Azure pour les couches Web et Données.Contoso wants to use Azure PaaS services for both the web and data tiers.
DevOpsDevOps Contoso veut passer à un modèle DevOps, en utilisant Azure DevOps pour les builds et les pipelines de mise en production.Contoso wants to move to a DevOps model, using Azure DevOps for their builds and release pipelines.

Conception de la solutionSolution design

Après avoir défini précisément les objectifs et exigences, Contoso conçoit et examine une solution de déploiement, et identifie le processus de migration, notamment les services Azure à utiliser pour la migration.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.

Application actuelleCurrent application

  • L'application SmartHotel360 locale est hiérarchisée sur deux machines virtuelles (WEBVM et SQLVM).The SmartHotel360 on-premises application is tiered across two VMs (WEBVM and SQLVM).
  • Les machines virtuelles sont situées sur un hôte VMware ESXi contosohost1.contoso.com (version 6.5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • L’environnement VMware est géré par vCenter Server 6.5 (vcenter.contoso.com) s’exécutant sur une machine virtuelle.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • Contoso dispose d’un centre de données local (contoso-datacenter), avec un contrôleur de domaine local (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • Les machines virtuelles locales dans le centre de données Contoso seront désaffectées une fois la migration terminée.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Solution proposéeProposed solution

  • Pour la couche Base de données de l'application, Contoso a comparé Azure SQL Database à SQL Server en se basant sur cet article.For the database tier of the application, Contoso compared Azure SQL Database with SQL Server using this article. Contoso a choisi d'utiliser Azure SQL Database pour plusieurs raisons :Contoso decided to use Azure SQL Database for a few reasons:
    • Azure SQL Database est un service de base de données relationnelle managé.Azure SQL Database is a managed relational database service. Il offre des performances prévisibles à plusieurs niveaux de service, et ne nécessite pratiquement aucune administration.It delivers predictable performance at multiple service levels, with near-zero administration. Ses avantages sont une extensibilité dynamique sans aucun temps d’arrêt, une optimisation intelligente intégrée, ainsi qu’une scalabilité et une disponibilité globales.Advantages include dynamic scalability with no downtime, built-in intelligent optimization, and global scalability and availability.
    • Contoso peut utiliser l’Assistant Migration de données (DMA) facile d’utilisation pour évaluer la base de données locale vers SQL Azure.Contoso can use the lightweight Data Migration Assistant (DMA) to assess the on-premises database to Azure SQL.
    • Contoso peut utiliser Azure Database Migration Service pour migrer la base de données locale vers Azure SQL.Contoso can use Azure Database Migration Service to migrate the on-premises database to Azure SQL.
    • Grâce à Software Assurance, Contoso peut échanger les licences existantes contre des réductions de tarif sur SQL Database, en utilisant Azure Hybrid Benefit pour SQL Server.With Software Assurance, Contoso can exchange existing licenses for discounted rates on a SQL Database, using the Azure Hybrid Benefit for SQL Server. Cela pourrait leur permettre de réaliser 30 % d'économies.This could provide savings of up to 30 percent.
    • Azure SQL Database fournit des fonctionnalités de sécurité, comme Always Encrypted, le masquage dynamique des données, la sécurité au niveau des lignes et la détection des menaces SQL.SQL Database provides security features such as Always Encrypted, dynamic data masking, row-level security, and SQL threat detection.
  • Pour le niveau web de l'application, Contoso a décidé d'utiliser Azure App Service.For the application web tier, Contoso has decided to use Azure App Service. Ce service PaaS permet de déployer l'application en procédant seulement à quelques changements de configuration.This PaaS service enables that to deploy the application with just a few configuration changes. Contoso utilisera Visual Studio pour apporter les modifications et déployer deux applications web.Contoso will use Visual Studio to make the change, and deploy two web apps. L’une pour le site web, et l’autre pour le service WCF.One for the website, and one for the WCF service.
  • Pour satisfaire aux exigences d'un pipeline DevOps, Contoso a décidé d'utiliser Azure DevOps pour la gestion du code source avec des référentiels Git.To meet requirements for a DevOps pipeline, Contoso has selected to use Azure DevOps for source code management (SCM) with Git repos. Des builds et la mise en production automatisées seront utilisées pour générer le code et le déployer sur Azure App Service.Automated builds and release will be used to build the code, and deploy it to the Azure App Service.

Examen de la solutionSolution review

Contoso évalue la conception proposée en dressant une liste des avantages et des inconvénients.Contoso evaluates their proposed design by putting together a pros and cons list.

ConsidérationConsideration DétailsDetails
AvantagesPros Le code de l'application SmartHotel360 ne nécessite aucune modification avant sa migration vers Azure.The SmartHotel360 application code doesn't require changes for migration to Azure.

Contoso peut tirer parti de son investissement dans Software Assurance en utilisant Azure Hybrid Benefit tant pour SQL Server que pour Windows Server.Contoso can take advantage of their investment in Software Assurance using the Azure Hybrid Benefit for both SQL Server and Windows Server.

Après la migration, Windows Server 2008 R2 ne devra plus être pris en charge.After the migration, Windows Server 2008 R2 won't need to be supported. Pour plus d’informations, consultez Stratégie de cycle de vie Microsoft.For more information, see the Microsoft Lifecycle Policy.

Contoso peut configurer le niveau web de l'application avec plusieurs instances, pour qu'elle ne constitue plus un point de défaillance unique.Contoso can configure the web tier of the application with multiple instances, so that it's no longer a single point of failure.

La base de données ne dépendra plus de SQL Server 2008 R2, qui est une version déjà ancienne.The database will no longer depend on the aging SQL Server 2008 R2.

SQL Database répond aux exigences techniques.SQL Database supports the technical requirements. Contoso a évalué la base de données locale à l'aide de l'Assistant Migration de données et a établit qu'elle était compatible.Contoso assessed the on-premises database using Data Migration Assistant and found that it's compatible.

Azure SQL Database intègre une tolérance de panne que Contoso n’a pas besoin de configurer.Azure SQL Database has built-in fault tolerance that Contoso doesn't have to set up. Cela signifie que la couche Données n’est plus un point de basculement unique.This ensures that the data tier is no longer a single point of failover.

Si Contoso utilise Azure Database Migration Service pour migrer sa base de données, l'entreprise disposera d'une infrastructure prête pour la migration de bases de données à grande échelle.If Contoso uses Azure Database Migration Service to migrate their database, it will have the infrastructure ready for migrating databases at scale.
InconvénientsCons Azure App Service ne prend en charge qu'un seul déploiement d'application pour chaque application web.Azure App Service only supports one application deployment for each web app. Cela signifie que deux applications web doivent être approvisionnées (l’une pour le site web et l’autre pour le service WCF).This means that two web apps must be provisioned (one for the website and one for the WCF service).

Architecture proposéeProposed architecture

Architecture du scénario

Processus de migrationMigration process

  1. Contoso approvisionne une instance de SQL Azure et migre la base de données SmartHotel360 vers celle-ci à l'aide d'Azure Database Migration Service.Contoso provisions an Azure SQL instance, and migrates the SmartHotel360 database to it using Azure Database Migration Service.

  2. Contoso approvisionne et configure des applications web et y déploie l'application SmartHotel360.Contoso provisions and configures web apps, and deploys the SmartHotel360 application to them.

    Processus de migration

Services AzureAzure services

ServiceService DescriptionDescription CoûtCost
Assistant Migration de données (DMA)Data Migration Assistant (DMA) Contoso utilisera DMA pour évaluer et détecter les problèmes de compatibilité susceptibles de perturber les fonctionnalités de sa base de données dans Azure.Contoso will use DMA to assess and detect compatibility issues that might affect their database functionality in Azure. DMA évalue la parité des fonctionnalités entre SQL sources et cibles, et recommande des améliorations des performances et de la fiabilité.DMA assesses feature parity between SQL sources and targets, and recommends performance and reliability improvements. Cet outil est téléchargeable gratuitement.It's a downloadable tool free of charge.
Azure Database Migration ServiceAzure Database Migration Service Azure Database Migration Service permet une migration fluide entre différentes sources de base de données et des plateformes de données Azure, avec un temps d'arrêt minimal.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Apprenez-en davantage sur les régions prises en charge et sur la tarification de Database Migration Service.Learn about supported regions and Database Migration Service pricing.
Azure SQL DatabaseAzure SQL Database Service de base de données cloud relationnelle entièrement managé et intelligent.An intelligent, fully managed relational cloud database service. Coût en fonction des fonctionnalités, du débit et de la taille.Cost based on features, throughput, and size. Plus d’informationsLearn more.
Azure App ServiceAzure App Service Créez des applications cloud performantes à l'aide d'une plateforme complètement managéeCreate powerful cloud applications using a fully managed platform Coût en fonction de la taille, de l’emplacement et de la durée d’utilisation.Cost based on size, location, and usage duration. Plus d’informationsLearn more.
Azure DevOpsAzure DevOps Fournit un pipeline d'intégration et de déploiement continus (CI/CD) pour le développement d'applications.Provides a continuous integration and continuous deployment (CI/CD) pipeline for application development. Le pipeline démarre avec un référentiel Git pour la gestion du code de l'application, un système de build pour la production de packages et autres artefacts de build, et un système gestion des mises en production pour le déploiement des modifications dans les environnements de production, de test et de développement.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.

PrérequisPrerequisites

Voici ce dont Contoso a besoin pour exécuter ce scénario :Here's Contoso needs to run this scenario:

SpécificationsRequirements DétailsDetails
Abonnement AzureAzure subscription Contoso a créé des abonnements dans un article précédent.Contoso created subscriptions during an early article. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.If you don't have an Azure subscription, create a free account.

Si vous créez un compte gratuit, vous êtes l’administrateur de votre abonnement et pouvez effectuer toutes les actions.If you create a free account, you're the administrator of your subscription and can perform all actions.

Si vous utilisez un abonnement existant et que vous n’êtes pas l’administrateur, vous devez collaborer avec l’administrateur pour qu’il vous donne les autorisations Propriétaire ou Contributeur.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.
Infrastructure AzureAzure infrastructure Découvrez comment Contoso configure une infrastructure Azure.Learn how Contoso set up an Azure infrastructure.

Étapes du scénarioScenario steps

Voici comment Contoso exécutera la migration :Here's how Contoso will run the migration:

  • Étape 1 : Approvisionner une instance SQL Database dans Azure.Step 1: Provision a SQL Database instance in Azure. Contoso approvisionne une instance SQL dans Azure.Contoso provisions a SQL instance in Azure. Une fois le site web de l'application migré vers Azure, l'application web du service WCF pointe vers cette instance.After the application website is migrated to Azure, the WCF service web app will point to this instance.
  • Étape 2 : Évaluer la base de données à l'aide de l'Assistant Migration de données Azure (DMA) et la migrer via Azure Database Migration ServiceStep 2: Assess the database using Azure Data Migration Assistant (DMA) and migrate it via Azure Database Migration Service. Contoso évalue la base de données pour la migration, puis migre la base de données d'application via Azure Database Migration Service.Contoso assesses the database for migration then migrates the application database via Azure Database Migration Service.
  • Étape 3 : Approvisionner des applications web.Step 3: Provision web apps. Contoso provisionne les deux applications web.Contoso provisions the two web apps.
  • Étape 4 : Configurer Azure DevOps.Step 4: Set up Azure DevOps. Contoso crée un projet Azure DevOps et importe le dépôt Git.Contoso creates a new Azure DevOps project, and imports the Git repo.
  • Étape 5 : Configurer des chaînes de connexion.Step 5: Configure connection strings. Contoso configure les chaînes de connexion afin que l’application web du niveau web, l’application web du service WCF et l’instance SQL puissent communiquer.Contoso configures connection strings so that the web tier web app, the WCF service web app, and the SQL instance can communicate.
  • Étape 6 : Configurer des pipelines de build et de mise en production.Step 6: Set up build and release pipelines. Pour terminer, Contoso configure des pipelines de build et de mise en production pour créer l'application et la déployer dans deux applications web distinctes.As a final step, Contoso sets up build and release pipelines to create the application, and deploys them to two separate web apps.

Étape 1 : Provisionner Azure SQL DatabaseStep 1: Provision Azure SQL Database

  1. Les administrateurs Contoso choisissent de créer une instance d'Azure SQL Database.Contoso admins select to create an Azure SQL Database instance.

    Provisionner SQL

  2. Ils spécifient un nom de base de données correspondant à la base de données en cours d'exécution sur la machine virtuelle locale (SmartHotel.Registration).They specify a database name to match the database running on the on-premises VM (SmartHotel.Registration). Ils placent la base de données dans le groupe de ressources ContosoRG.They place the database in the ContosoRG resource group. Il s’agit du groupe de ressources qu’ils utilisent pour les ressources de production dans Azure.This is the resource group they use for production resources in Azure.

    Approvisionner une instance d'Azure SQL Database

  3. Ils configurent une nouvelle instance de SQL Server (sql-smarthotel-eus2) dans la région primaire.They set up a new SQL Server instance (sql-smarthotel-eus2) in the primary region.

    Provisionner SQL

  4. Ils définissent le niveau tarifaire pour qu’il corresponde à leurs besoins en matière de serveur et de base de données.They set the pricing tier to match their server and database needs. Et ils choisissent d’économiser de l’argent avec Azure Hybrid Benefit, car ils ont déjà une licence SQL Server.And they select to save money with Azure Hybrid Benefit because they already have a SQL Server license.

  5. Pour le dimensionnement, ils utilisent un achat basé sur vCore, et définissent les limites de leurs exigences attendues.For sizing, they use vCore-based purchasing and set the limits for their expected requirements.

    Provisionner SQL

  6. Ils créent ensuite l’instance de base de données.Then they create the database instance.

    Provisionner SQL

  7. Une fois l'instance créée, ils ouvrent la base de données et notent les informations dont ils auront besoin lorsqu'ils utiliseront l'Assistant Migration de données pour la migration.After the instance is created, they open the database, and note details they need when they use Data Migration Assistant for migration.

    Provisionner SQL

Besoin de plus d’aide ?Need more help?

Étape 2 : Évaluer la base de données à l’aide de l'Assistant Migration de données (DMA) et la migrer à l'aide d'Azure Database Migration ServiceStep 2: Assess the database using Data Migration Assistant (DMA) and migrate it using Azure Database Migration Service

Les administrateurs de Contoso évaluent la base de données à l'aide de l'Assistant Migration de données (DMA), puis la migrent via Azure Database Migration Service, conformément au tutoriel de migration pas à pas.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. Ils peuvent effectuer des migrations en ligne, hors connexion et hybrides (préversion).They can perform online, offline, and hybrid (preview) migrations.

En résumé, vous devez effectuer les opérations suivantes :As a summary, you must perform the following:

  • Utiliser l'Assistant Migration de données (DMA) pour détecter et résoudre les problèmes de migration de la base de données.Use Data Migration Assistant (DMA) to discover and resolve any database migration issues.
  • Créer une instance Azure Database Migration Service avec une référence (SKU) Premium connectée au réseau virtuel.Create an Azure Database Migration Service instance with a Premium SKU that is connected to the VNet.
  • Vérifier que l'instance peut accéder à l'instance distante de SQL Server via le réseau virtuel.Ensure that the instance can access the remote SQL Server via the virtual network. Cela implique de s’assurer que tous les ports entrants sont autorisés entre Azure et SQL Server au niveau du réseau virtuel, du VPN réseau et de la machine qui héberge 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.
  • Configurer l'instance :Configure the instance:
    • Créez un projet de migration.Create a migration project.
    • Ajoutez une source (base de données locale).Add a source (on-premises database).
    • Sélectionnez une cible.Select a target.
    • Sélectionnez les bases de données à migrer.Select the databases to migrate.
    • Configurez les paramètres avancés.Configure advanced settings.
    • Démarrez la réplication.Start the replication.
    • Résolvez les erreurs.Resolve any errors.
    • Effectuez le dernier basculement.Perform the final cutover.

Étape 3 : Approvisionner des applications webStep 3: Provision web apps

La base de données étant migrée, les administrateurs Contoso peuvent maintenant provisionner les deux applications web.With the database migrated, Contoso admins can now provision the two web apps.

  1. Ils sélectionnent Application web dans le portail.They select Web App in the portal.

    Application web

  2. Ils fournissent un nom pour l'application (SHWEB-EUS2), exécutent celle-ci sous Windows, puis la placent dans le groupe de ressources de production ContosoRG.They provide a name for the web app (SHWEB-EUS2), run it on Windows, and place it un the production resource group ContosoRG. Ils créent une application web et un plan Azure App Service.They create a new web app and Azure App Service plan.

    Application web

  3. Une fois l'application web approvisionnée, ils répètent le processus afin de créer une application web pour le service WCF (SHWCF-EUS2).After the web app is provisioned, they repeat the process to create a web app for the WCF service (SHWCF-EUS2)

    Application web

  4. Lorsqu'ils ont terminé, ils accèdent à l'adresse des applications pour vérifier que celles-ci ont été correctement créées.After they're done, they browse to the address of the applications to check they've been created successfully.

Étape 4 : Configurer Azure DevOpsStep 4: Set up Azure DevOps

Contoso doit générer l’infrastructure et les pipelines DevOps pour l’application.Contoso needs to build the DevOps infrastructure and pipelines for the application. Pour cela, les administrateurs Contoso créent un projet DevOps, importent le code, puis configurent les pipelines de build et de mise en production.To do this, Contoso admins create a new DevOps project, import the code, and then set up build and release pipelines.

  1. Dans l'organisation Azure DevOps de Contoso, ils créent un projet (ContosoSmartHotelRefactor), puis sélectionnent Git pour la gestion de version.In the Contoso Azure DevOps organization, they create a new project (ContosoSmartHotelRefactor), then select Git for version control.

    Nouveau projet

  2. Ils importent le référentiel Git qui détient actuellement leur code d'application.They import the Git repo that currently holds their application code. Il se trouve dans un référentiel GitHub public que vous pouvez télécharger.It's in a public GitHub repository and you can download it.

    Télécharger le code d’application

  3. Une fois le code importé, ils connectent Visual Studio au dépôt et clonent le code à l’aide de Team Explorer.After the code is imported, they connect Visual Studio to the repo, and clone the code using Team Explorer.

    Se connecter à un projet

  4. Une fois le référentiel cloné sur la machine du développeur, ils ouvrent le fichier solution de l'application.After the repository is cloned to the developer machine, they open the solution file for the application. L'application web et le service WCF ont chacun un projet distinct dans le fichier.The web app and WCF service each have separate project within the file.

    Fichier solution

Étape 5 : Configuration des chaînes de connexionStep 5: Configure connection strings

Les administrateurs Contoso doivent faire en sorte que les applications web et la base de données puissent communiquer.Contoso admins need to make sure the web apps and database can all communicate. Pour ce faire, ils configurent des chaînes de connexion dans le code et dans les applications web.To do this, they configure connection strings in the code and in the web apps.

  1. Dans l'application web du service WCF (SHWCF-EUS2) > Paramètres > Paramètres de l'application, ils ajoutent une nouvelle chaîne de connexion nommée DefaultConnection.In the web app for the WCF service (SHWCF-EUS2) > Settings > Application settings, they add a new connection string named DefaultConnection.

  2. La chaîne de connexion est extraite de la base de données SmartHotel-Registration, et doit être mise à jour avec les informations d'identification qui conviennent.The connection string is pulled from the SmartHotel-Registration database, and should be updated with the correct credentials.

    Chaîne de connexion

  3. Dans Visual Studio, ils ouvrent le projet SmartHotel.Registration.wcf à partir du fichier solution.Using Visual Studio, they open the SmartHotel.Registration.wcf project from the solution file. La section connectionStrings du fichier web.config correspondant au service WCF SmartHotel.Registration.wcf doit être mise à jour avec la chaîne de connexion.The connectionStrings section of the web.config file for the WCF service SmartHotel.Registration.wcf should be updated with the connection string.

    Chaîne de connexion

  4. La section client du fichier web.config correspondant à SmartHotel.registration.web doit être modifiée pour pointer vers le nouvel emplacement du service WCF.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. Il s’agit de l’URL de l’application web WCF qui héberge le point de terminaison de service.This is the URL of the WCF web app hosting the service endpoint.

    Chaîne de connexion

  5. Une fois les modifications apportées au code, les administrateurs doivent valider les modifications.After the changes are in the code, admins need to commit the changes. À l’aide de Team Explorer dans Visual Studio, ils effectuent la validation et la synchronisation.Using Team Explorer in Visual Studio, they commit and sync.

Étape 6 : Configurer les pipelines de build et de mise en production dans Azure DevOpsStep 6: Set up build and release pipelines in Azure DevOps

Les administrateurs de Contoso configurent maintenant Azure DevOps pour lancer le processus de build et mise en production.Contoso admins now configure Azure DevOps to perform build and release process.

  1. Dans Azure DevOps, ils sélectionnent Build et mise en production > Nouveau pipeline.In Azure DevOps, they select Build and release > New pipeline.

    Nouveau pipeline

  2. Ils sélectionnent Azure Repos Git et le dépôt pertinent.They select Azure Repos Git and the relevant repo.

    Git et dépôt

  3. Dans Sélectionner un modèle, ils sélectionnent le modèle ASP.NET pour leur build.In Select a template, they select the ASP.NET template for their build.

    Modèle ASP.NET

  4. Le nom ContosoSmartHotelRefactor-ASP.NET-CI est utilisé pour le build.The name ContosoSmartHotelRefactor-ASP.NET-CI is used for the build. Ils sélectionnent Enregistrer et mettre en file d’attente.They select Save & Queue.

    Enregistrer et mettre en file d’attente

  5. La première build est alors lancée.This kicks off the first build. Ils sélectionnent le numéro de build pour surveiller le processus.They select the build number to watch the process. Une fois le processus terminé, ils peuvent voir les commentaires associés à ce dernier, puis sélectionner Artifacts pour passer en revue les résultats de la build.After it's finished they can see the process feedback, then select Artifacts to review the build results.

    Révision

  6. Le dossier drop contient les résultats de la build.The folder Drop contains the build results.

    • Les deux fichiers zip sont les packages qui contiennent les applications.The two zip files are the packages that contain the applications.
    • Ces fichiers sont utilisés dans le pipeline de mise en production pour le déploiement sur Azure App Service.These files are used in the release pipeline for deployment to Azure App Service.

    Artefact

  7. Ils sélectionnent Mises en production > + Nouveau pipeline.They select Releases > + New pipeline.

    Nouveau pipeline

  8. Ils sélectionnent le modèle de déploiement pour Azure App Service.They select the deployment template for Azure App Service.

    Modèle de déploiement Azure App Service

  9. Ils nomment le pipeline de mise en production ContosoSmartHotel360Refactor et spécifient le nom de l'application web WCF (SHWCF-EUS2) pour le nom Phase.They name the release pipeline ContosoSmartHotel360Refactor, and specify the name of the WCF web app (SHWCF-EUS2) for the Stage name.

    Environnement

  10. Sous les phases, ils sélectionnent 1 travail, 1 tâche pour configurer le déploiement du service WCF.Under the stages, they select 1 job, 1 task to configure deployment of the WCF service.

    Déployer WCF

  11. Ils vérifient que l'abonnement est sélectionné et autorisé, puis sélectionnent le Nom de l'App Service.They verify the subscription is selected and authorized, and select the app service name.

    Sélectionner le nom du service de l’application

  12. Dans le pipeline > Artefacts, ils sélectionnent +Ajouter un artefact, puis ils choisissent de générer avec le pipeline ContosoSmarthotel360Refactor.On the pipeline > Artifacts, they select + Add an artifact, then select to build with the ContosoSmarthotel360Refactor pipeline.

    Build

  13. Ils vérifient que l’éclair qui se trouve sur l’artefact est coché pour activer le déclencheur de déploiement continu.They verify the lightning bolt on the artifact is checked to enable the continuous deployment trigger.

    Éclair

  14. Le déclencheur de déploiement continu doit être défini sur Activé.The continuous deployment trigger should be set to Enabled.

    Déploiement continu activé

  15. À présent, ils reviennent à la phase 1 travail, 1 tâche, puis sélectionnent Déployer Azure App Service.Now, they move back to the stage 1 job, 1 task, then select Deploy Azure App Service.

    Déployer Azure App Service

  16. Sous Sélectionner un fichier ou dossier, ils recherchent le fichier SmartHotel.Registration.Wcf.zip qui a été créé lors de la génération, puis ils sélectionnent Enregistrer.In Select a file or folder, they locate the SmartHotel.Registration.Wcf.zip file that was creating during the build, then select Save.

    Enregistrer WCF

  17. Ils sélectionnent Pipeline > Phases, + Ajouter afin d'ajouter un environnement pour SHWEB-EUS2.They select Pipeline > Stages, + Add to add an environment for SHWEB-EUS2. Ils sélectionnent un autre déploiement Azure App Service.They select another Azure App Service deployment.

    Ajouter un environnement

  18. Ils répètent ensuite le processus pour publier le fichier de l'application web (SmartHotel.Registration.Web.zip) sur l'application web qui convient.They repeat the process to publish the web app (SmartHotel.Registration.Web.zip) file to the correct web app.

    Publier l’application web

  19. Une fois qu’il est enregistré, le pipeline de mise en production apparaît comme suit.After it's saved, the release pipeline will show as follows.

    Résumé du pipeline de mise en production

  20. Ils reviennent à Build, puis sélectionnent Déclencheurs > Activer l’intégration continue.They move back to Build, then select Triggers > Enable continuous integration. Ceci active le pipeline pour que, quand des modifications sont validées dans le code, une build complète et une mise en production soient effectuées.This enables the pipeline so that when changes are committed to the code, and full build and release occurs.

    Activer l’intégration continue

  21. Ils sélectionnent Enregistrer et mettre en file d’attente pour exécuter le pipeline complet.They select Save & Queue to run the full pipeline. Une nouvelle build est déclenchée, qui à son tour crée la première mise en production de l'application sur Azure App Service.A new build is triggered that in turn creates the first release of the application to the Azure App Service.

    Enregistrer le pipeline

  22. Les administrateurs Contoso peuvent suivre le processus du pipeline de build et de mise en production depuis Azure DevOps.Contoso admins can follow the build and release pipeline process from Azure DevOps. Une fois la build terminée, la mise en production commence.After the build completes, the release will start.

    Générer et mettre en production l’application

  23. Une fois le pipeline terminé, les deux sites ont été déployés et l'application est opérationnelle en ligne.After the pipeline finishes, both sites have been deployed and the application is up and running online.

    Terminer la mise en production

À ce stade, la migration de l’application vers Azure a réussi.At this point, the application is successfully migrated to Azure.

Nettoyer après la migrationClean up after migration

Après la migration, Contoso doit effectuer les étapes de nettoyage suivantes :After migration, Contoso needs to complete these cleanup steps:

  • Supprimer les machines virtuelles locales de l’inventaire vCenter.Remove the on-premises VMs from the vCenter inventory.
  • Supprimer les machines virtuelles des travaux de sauvegarde locale.Remove the VMs from local backup jobs.
  • Mettre à jour la documentation interne afin qu'elle indique les nouveaux emplacements pour l'application SmartHotel360.Update internal documentation to show the new locations for the SmartHotel360 application. Afficher que la base de données est en cours d'exécution dans Azure SQL Database, et que le front-end est en cours d'exécution dans les deux applications web.Show the database as running in Azure SQL Database, and the front end as running in two web apps.
  • Passer en revue toutes les ressources qui interagissent avec les machines virtuelles désactivées, et mettre à jour les paramètres ou la documentation appropriés afin de refléter la nouvelle configuration.Review any resources that interact with the decommissioned VMs, and update any relevant settings or documentation to reflect the new configuration.

Examiner le déploiementReview the deployment

Avec les ressources migrées dans Azure, Contoso doit rendre sa nouvelle infrastructure entièrement opérationnelle et la sécuriser.With the migrated resources in Azure, Contoso needs to fully operationalize and secure their new infrastructure.

SécuritéSecurity

  • Contoso doit s'assurer que sa nouvelle base de données SmartHotel-Registration est sécurisée.Contoso needs to ensure that their new SmartHotel-Registration database is secure. Plus d’informationsLearn more.
  • En particulier, Contoso doit mettre à jour les applications web pour qu’elles utilisent SSL avec des certificats.In particular, Contoso should update the web apps to use SSL with certificates.

SauvegardesBackups

  • Contoso doit examiner les besoins de sauvegarde de la base de données Azure SQL.Contoso needs to review backup requirements for the Azure SQL Database. Plus d’informationsLearn more.
  • Contoso doit aussi découvrir comment gérer les sauvegardes et les restaurations de SQL Database.Contoso also needs to learn about managing SQL Database backups and restores. Découvrez plus d’informations sur les sauvegardes automatiques.Learn more about automatic backups.
  • Contoso doit envisager d’implémenter des groupes de basculement afin de fournir un basculement régional pour la base de données.Contoso should consider implementing failover groups to provide regional failover for the database. Plus d’informationsLearn more.
  • Pour la résilience de l'application web, Contoso doit envisager son déploiement dans la région principale (East US 2) et dans la région secondaire (Central US).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 peut configurer Traffic Manager pour garantir le basculement pendant les pannes régionales.Contoso could configure Traffic Manager to ensure failover during regional outages.

Gestion des licences et optimisation des coûtsLicensing and cost optimization

  • Une fois toutes les ressources déployées, Contoso doit affecter des balises Azure en fonction de la planification de son infrastructure.After all resources are deployed, Contoso should assign Azure tags based on their infrastructure planning.
  • Toutes les licences sont intégrées dans le coût des services PaaS que Contoso consomme.All licensing is built into the cost of the PaaS services that Contoso is consuming. Cela sera déduit de l’Accord Entreprise.This will be deducted from the EA.
  • L'entreprise Contoso utilise Azure Cost Management and Billing pour s'assurer qu'elle respecte les budgets établis par sa direction informatique.Contoso will use Azure Cost Management and Billing to ensure they stay within budgets established by their IT leadership.

ConclusionConclusion

Cet article explique comment Contoso a refactorisé l'application SmartHotel360 dans Azure en migrant la machine virtuelle frontale de l'application vers deux applications web Azure App Service.In this article, Contoso refactored the SmartHotel360 application in Azure by migrating the application front-end VM to two Azure App Service web apps. La base de données d'application a été migrée vers Azure SQL Database.The application database was migrated to Azure SQL Database.