La seconde partie de cet atelier consiste à basculer la base de données SQL vers Azure. Il s’agit donc de l’exercice 2.
Nous aurions pu migrer la machine virtuelle contenant le serveur SQL vers Azure en utilisant une machine virtuelle Azure (IaaS). Mais l’atelier se veut innovant et vous propose une migration vers le service PaaS, Azure SQL Database.
Il existe de nombreux avantages à l’utilisation d’un service managé par Microsoft, comme
- Réduction possible de certains coûts.
- Gestion par Microsoft des mises à jour du serveur SQL.
Par contre, certaines fonctionnalités sont inaccessibles dans un service PaaS. Prenez le temps de comparer les solutions disponibles avec vos besoins.
Pour réaliser la migration de données vers Azure, nous allons utiliser le service Azure Database Migration Service. Celui-ci propose deux niveaux de tarification :
- Standard : prend en charge les migrations hors connexion (également appelées « migrations uniques »). Le niveau tarifaire Standard, qui offre des options à 1, 2 et 4 vCores, est généralement disponible gratuitement pour les clients.
- Premium : prend en charge les migrations hors connexion et en ligne (également appelées « migrations continues ») pour les charges de travail critiques pour l’entreprise nécessitant un temps d’arrêt minimal.
Tâche 1 : Enregistrez le fournisseur de ressources Microsoft.DataMigration
Avant de pouvoir effectuer la migration de la base de données, il est nécessaire de vérifier l’enregistrement du fournisseur de ressources adéquat.
En effet, Azure Database Migration Service fonctionne avec le fournisseur de services Microsoft.DataMigration.
Allez sur la page de votre souscription Azure, recherchez le menu Fournisseurs de ressources et enregistrez Microsoft.DataMigration si cela n’est pas déjà fait :
Note : Cela peut également être fait par une commande Power Shell via Azure Cloud Shell :
Register-AzResourceProvider -ProviderNamespace Microsoft.DataMigration
Attendez quelques minutes, puis réactualisez la page :
Tâche 2 – Créez le service Database Migration Service :
Les fournisseurs de services sont eux aussi divisés en plusieurs ressources. L’activation antérieure d’un fournisseur de ressources n’active pas systématiquement tous leurs nouveaux services. C’est pour cela que les fonctions Désenregistrer / Enregistrer existent.
Dans le doute, vous pouvez le Désenregistrer :
Puis l’Enregistrer à nouveau :
Ce contrôle d’enregistrement des services d’un fournisseur de ressources est possible via une commande PowerShell :
Get-AzResourceProvider -ProviderNamespace Microsoft.DataMigration | Select-Object ProviderNamespace, RegistrationState, ResourceTypes
Ensuite, utilisez la base de recherche du portail Azure pour retrouver le service Azure Database Migration Service :
Cliquez sur Créer :
Pour cet atelier, utilisez le Service de migration de base de données classique :
Remplissez les champs suivants en lui donnant le nom SmartHotelDBMigration, puis allez sur l’onglet Réseaux :
Sélectionnez le réseau / sous réseau suivant, puis pour lancer la création :
Attendez quelques minutes que la création se termine :
Une fois le service créé sous Azure, nous allons avoir besoin d’un outil pour gérer la partie migration au niveau des serveurs on-premise. La tâche 3 va vous montrer cela.
Tâche 3 – Evaluez la base de données à l’aide de Data Migration Assistant :
Data Migration Assistant (DMA) est lui aussi un outil d’estimation, mais dédié aux bases de données.
Retournez sur le service Azure Migrate, puis cliquez-ici pour ajouter l’outil DMA :
Sélectionnez-le, puis cliquez sur Ajoutez l’outil :
Celui-ci apparaît alors dans la section base de données sous votre projet Azure Migrate :
Faites-en de même pour l’outil DMA dans la partie Migration :
Retournez sur la connexion RDP de la machine virtuelle Hyper-V on-premise SmartHotelHost, puis ouvrez le menu Démarrer pour lancer Google Chrome :
Allez sur la page web suivante, puis téléchargez la version Runtime .NET v4.8 :
Ouvrez l’exécutable d’installation :
Attendez que la décompression se termine :
Acceptez les Termes et Conditions, puis lancez l’installation :
Attendez quelques minutes :
Terminez l’installation, puis acceptez le redémarrage de la machine Hyper-V :
Retournez dans le menu Bases de données d’Azure Migrate, puis cliquez sur Estimer :
Copiez l’URL de téléchargement de DMA :
Attendez deux minutes environ, puis reconnectez-vous à la machine Hyper-V en RDP :
Réouvrez Google Chrome, puis rentrez l’URL de DMA précédemment copiée pour lancer son téléchargement :
Lancez l’installation de DMA, puis cliquez sur Suivant :
Acceptez les Termes et conditions :
Lancez l’installation de DMA :
Terminez l’installation sans cocher la case de lancement de DMA :
Toujours depuis la machine virtuelle Hyper-V, ouvrez l’explorateur de fichiers, puis rendez-vous dans le dossier suivant :
C:\Program Files\Microsoft Data Migration Assistant
Ouvrez le fichier Dma.exe.config avec Notepad :
Recherchez la chaîne de texte Azure Migrate :
Retirez les commentaires sur la clef EnableAssessmentUploadToAzureMigrate comme ceci, puis sauvegardez le fichier Dma.exe.config :
Avant :
<!-- <add key="EnableAssessmentUploadToAzureMigrate" value="true"/> -->
Après :
<add key="EnableAssessmentUploadToAzureMigrate" value="true"/>
Toujours sur votre session RDP de la machine Hyper-V, lancez le programme DMA depuis l’icône ajouté automatiquement sur le bureau :
Cliquez-ici pour démarrer un nouveau projet DMA :
Nommez le projet SmartHotelAssessment, puis configurez-le comme ceci :
Cliquez sur Suivant :
Créez une connexion au serveur SQL avec le mot de passe demo!pass123 :
Cochez les deux cases, puis cliquez sur Ajouter :
Démarrez l’estimation de la base de données SQL on-premise :
Attendez que le traitement se termine :
Quelques secondes plus tard, car la base de données de l’atelier est très petite, l’estimation est terminée, cliquez sur Téléverser dans Azure Migrate :
Cliquez sur Connecter dans la section Azure :
Renseignez votre identifiant Azure utilisé pour cet atelier :
Remplissez les champs, puis cliquez sur Téléverser :
Retournez sur Azure Migrate, puis lancez un rafraîchissement de la page :
Constatez l’apparition de l’estimation de la base de données SQL :
L’estimation de la base de données SQL est bien incorporé à notre projet Azure Migrate. Fort de ce résultat, il nous est maintenant possible de la migrer grâce à DMS.
Tâche 4 : Créez un projet de migration DMS
Ayant créé le service Azure Database Migration Service (DMS) en Tâche 2, nous allons pouvoir migrer notre base de données SQL grâce à lui. Avant cela, nous avons besoin d’établir une connexion réseau entre le futur serveur SQL (Azure SQL) et Azure DMS.
Pour cela, depuis le portail Azure, rendez-vous dans le groupe de ressources SmartHotelRG, puis sélectionnez votre serveur SQL :
Dans la section Réseaux, cliquez sur Accès privé pour en ajouter un nouveau :
Donnez-lui le nom SmartHotel-DB-for-DMS, puis cliquez sur l’onglet Ressource :
Remplissez les champs comme ci-dessous, puis cliquez sur l’onglet Réseau virtuel :
Sélectionnez le réseau virtuel DMSvnet, puis cliquez sur l’onglet DNS :
Créez une nouvelle Zone DNS privée, puis continuez :
Lancez la création :
Une fois la création terminée, vérifiez dans la zone DNS privée que le serveur de la base de données Azure SQL a bien l’adresse IP privée 10.1.0.5 :
Pour des questions de sécurité, retirez l’accès publique au serveur Azure SQL, que l’on n’utilisera pas dans notre atelier :
Retournez sur le service Azure Database Migration Service (DMS), puis cliquez sur Nouveau projet de migration :
Renseignez les champs du projet comme ceci, puis cliquez sur Créer :
Renseignez les informations sur la source SQL avec le mot de mot de passe demo!pass123 :
Choisissez la seule base de données disponible :
Renseignez le nom unique votre serveur Azure SQL avec le mot de passe demo!pass123 :
Cliquez sur Sauvegarder le projet :
La création du projet dans DMS est maintenant terminée, il nous reste plus qu’à passer à l’action pour la migration de données.
Cette opération va s’effectuer sur deux tâches :
- migration du schéma des tables de la base de données, puis migration des données en elles-mêmes.
Il est donc bien possible d’effectuer les deux actions en une, ou aussi d’espacer ces deux tâches dans le temps, pour migrer les données définitive le jour J.
Tâche 5 – Migrez le schéma de la base de données SQL :
Comme indiqué précédemment, cette étape est nécessaire pour le transfert de données. Pour cela, cliquez-ici pour créer et démarrer cette nouvelle activité :
La configuration étant déjà faite lors de la création du projet, il ne vous reste qu’à remettre le mot de passe de l’utilisateur sa du serveur SQL demo!pass123, puis cliquez sur Suivant :
Pour la base de données cible, même mot de passe de l’utilisateur sa du serveur SQL demo!pass123, puis cliquez sur Suivant :
Sélectionnez la base de données cible et reprenez le schéma de la source, puis cliquez sur Suivant :
Nommez l’activité SchemaMigration, puis lancez le démarrage de celle-ci :
Suivrez l’évolution de celle-ci, cliquez sur Rafraîchir :
Environ une minute plus tard, vérifiez que le statut de l’activité change en Complété :
Sur la base de données Azure SQL Database, vous pouvez voir le tout petit pic provoqué par cette activité :
Il nous reste maintenant qu’à migrer les données vers la base de données Azure SQL Database. Comme rappelé plus haut, la version gratuite d’Azure Database Migration Service ne nous autorise que des migrations à froid. Ce qui ira très bien dans le cadre de notre atelier.
Tâche 6 – Migrez les données sur site :
Toujours dans Azure Database Migration Service, cliquez-ici pour démarrer la seconde activité de migration des données :
De la même façon que lors de la première activité, la configuration est déjà faite, il ne vous reste qu’à remettre le mot de passe de l’utilisateur sa du serveur SQL demo!pass123, puis cliquez sur Suivant :
Pour la base de données cible, toujours le même mot de passe de l’utilisateur sa du serveur SQL demo!pass123, puis cliquez sur Suivant :
Vérifiez que la base de données de notre application d’hôtellerie est bien cochée, puis cliquez sur Suivant :
Pour la base de données cible, même mot de passe que pour l’utilisateur sa : demo!pass123, puis cliquez sur Suivant :
Sélectionnez la base de données cible, puis cliquez sur Suivant :
Ne cochez qu’une seule table sur deux car seule celle-ci contient les réservations d’hôtels :
Nommez l’activité DataMigration, puis lancez le démarrage de celle-ci :
Environ une minute plus tard, vérifiez que le statut de l’activité change en Complété :
Si tout s’est bien passé, les données de notre application sont maintenant chargées dans Azure SQL Database. Il ne nous reste qu’à retirer la connection privée établie entre DMS et Azure SQL Database.
Retournez sur le serveur Azure SQL et retirer cette liaison comme ceci :
La migration des données est la première véritable étape de transfert de notre architecture dans Azure.
Pourquoi avoir transféré les données avant les autres serveurs ?
Car le transfert de serveur sera directement précédé de la bascule de notre application. Et comme l’application a besoin des données pour fonctionner, c’est pour cela que les opérations sont ordonnées dans cet ordre.
Nous voilà dans la dernière ligne droite de cet atelier. Il ne nous reste qu’à migrer les machines virtuelles restantes vers Azure, toujours grâce à Azure Migrate : Exercice 3.
Pour rappel, voici un rappel des liens de cet atelier pour ne pas vous perdre :
- Atelier Azure Migrate :
- Articles du blog sur l’atelier d’Azure Migrate :