Migrez la base de données vers Azure
Il existe plusieurs façons de migrer une base de données locale vers Azure. La méthode choisie peut dépendre de la nécessité d'inclure ou non le schéma de la base de données dans la migration. Par exemple, si tout ce dont vous avez besoin est une nouvelle base de données vide avec un schéma qui correspond à votre modèle de données MVC, les migrations code first sont une excellente solution. En revanche, si vous avez déjà des données dans votre base et que vous devez les préserver lors de la migration vers Azure, vous devrez peut-être envisager une autre option.
Vous trouverez diverses méthodes en ligne, dont la plupart sont longues et compliquées. La plus simple que je connaisse est celle de SQL Server Management Studio (SSMS). Nous allons l'utiliser ici pour vous apprendre à migrer votre base de données locale vers Azure. Vous pouvez télécharger SSMS si vous ne l'avez pas encore installé. Une fois cette opération effectuée, vous n'aurez plus qu'à déplacer votre base de données. La suite de ce chapitre vous guidera étape par étape.
Connectez-vous à votre serveur local
Lorsque vous lancez SSMS, la fenêtre de connexion à SQL Server s'affiche :
Pour sélectionner un serveur, cliquez sur la liste déroulante Nom du serveur. Vous verrez toutes les instances SQL Server détectées par SSMS. Vous pouvez en sélectionner une si vous voyez celle qui vous intéresse. Toutefois, si rien n'apparaît ou si vous devez vous connecter à un autre serveur, vous pouvez cliquer sur <Parcourir...>. Vous pouvez également saisir (ou coller) le nom du serveur auquel vous souhaitez vous connecter, comme celui qui figure dans la chaîne de connexion de votre application :
À ce stade, vous pouvez modifier le type d'authentification si nécessaire. Pour les installations locales, votre type d'authentification sera très probablement l'authentification Windows, qui correspondra par défaut à votre nom d'utilisateur de connexion Windows. Vous pouvez donc cliquer sur Connexion pour établir la connexion au serveur. Si vous vous connectez à un serveur en ligne ou en réseau, sélectionnez Authentication SQL Server dans la liste déroulante. Vous le ferez plus tard, lorsque vous configurerez votre serveur Azure. Pour l'instant, restons-en à l'installation de votre serveur local et à l'authentification Windows.
Localisez et exportez votre base de données locale
Après vous être connecté à votre serveur local dans SSMS, vous verrez le contenu du serveur listé dans le volet de l'Explorateur d'objets de SSMS. Développez le dossier Bases de données pour voir la liste des bases de données sur le serveur. Vous verrez une base de données qui commence par aspnet-Watchlist.
Faites un clic droit sur la base de données Watchlist, puis choisissez Tâches > Exporter une application de la couche Données...
Dans la fenêtre suivante, choisissez Enregistrer sur le disque local et cliquez sur Parcourir.
Choisissez l'emplacement dans lequel vous souhaitez enregistrer le fichier, donnez-lui un nom et cliquez sur Enregistrer.
Cliquez sur Suivant, puis sur Terminer. Votre base de données est maintenant exportée vers le fichier .bacpac que vous avez nommé dans la fenêtre Parcourir. Cliquez sur Fermer à la fin de l'exportation.
Créez une nouvelle instance SQL Server sur votre compte Azure
Il est temps de configurer un endroit pour héberger votre base de données sur Azure. Connectez-vous à votre compte Azure et cliquez sur Tous les services dans la liste des options à gauche de votre tableau de bord.
Sélectionnez Bases de données, puis Serveurs SQL.
Si vous avez déjà configuré un serveur, il sera répertorié ici et vous pourrez l'utiliser pour héberger votre base de données. Sinon, cliquez sur le bouton Créer en haut de la page.
Remplissez le formulaire, en créant un nouveau Groupe de ressources si nécessaire, puis cliquez sur Créer.
Lorsque le serveur a été déployé avec succès, un message de réussite s'affiche en haut à droite de l'écran. Vous pouvez alors cliquer sur le bouton Actualiser pour voir apparaître votre nouveau serveur.
Cliquez sur le nom du nouveau serveur, puis cherchez l'option Mise en réseau et cliquez dessus.
Dans le nouveau volet, cliquez sur Ajouter une adresse IP cliente, puis sur Enregistrer.
Cela ajoutera l'adresse IP de votre ordinateur à la liste des adresses IP autorisées à accéder au serveur et vous permettra de vous y connecter en utilisant SSMS.
Maintenant, dans la liste des options du serveur, cherchez Propriétés et cliquez dessus.
Copiez le nom du serveur figurant dans le volet des propriétés, puis ouvrez SSMS.
Connectez-vous à votre instance Azure SQL Server
Dans l'Explorateur d'objets de SSMS, cliquez sur Connecter > Moteur de base de données.
Dans la fenêtre Se Connecter au serveur :
Collez le nom du serveur que vous avez copié depuis Azure dans le champ Nom du serveur ;
Choisissez Authentification SQL Server dans la liste déroulante Authentification ;
Saisissez le nom d'utilisateur et le mot de passe que vous avez créés dans Azure lorsque vous avez configuré le serveur ;
Cliquez sur Connexion.
Votre serveur Azure devrait maintenant apparaître dans l'Explorateur d'objets.
Créez une nouvelle base de données à partir du fichier .bacpac exporté
Développez votre nouveau serveur Azure dans l'Explorateur d'objets, puis cliquez avec le bouton droit de la souris sur le dossier Bases de données et choisissez Importer des données de la couche Applications.
Dans la fenêtre Introduction, cliquez sur Suivant.
Dans la fenêtre Paramètres d'importation, cliquez sur le bouton Parcourir à côté de la case Importer à partir du disque local et cherchez le fichier .bacpac que vous avez créé plus tôt dans le chapitre. Sélectionnez le fichier et cliquez sur Ouvrir, puis cliquez sur Suivant.
Dans l'écran Paramètres de la base de données, vous devez configurer les ressources de performance que vous souhaitez utiliser pour votre base de données. Par défaut, il s'agit d'une base de données SQL Azure standard, avec une taille de 250 Go et un objectif de service S2. Il s'agit d'une option coûteuse, surtout pour un projet de tutorat, et nous allons donc apporter quelques modifications. L'option Basic est la moins chère, alors choisissez-la dans la liste déroulante Édition de la base de données Microsoft Azure SQL. La taille de la base de données passera à 2 Go et l'objet de service à Basic.
Cliquez sur Suivant, puis sur Terminer. Lorsque le processus d'importation est terminé, cliquez sur Fermer. Votre base de données Watchlist se trouve maintenant sous le dossier Bases de données de l'Explorateur d'objets.
Ajoutez la nouvelle chaîne de connexion à votre projet
Vous devez maintenant indiquer à votre application d'utiliser la nouvelle base de données Azure au lieu de votre base de données locale. Pour ce faire, vous devez ajouter une nouvelle chaîne de connexion. Revenez à votre projet dans Visual Studio et ouvrez le fichier appsettings.json.
Vous pouvez ajouter plusieurs chaînes de connexion dans ce fichier, séparées par des virgules. Ajoutez une virgule à la fin de la ligne correspondant à "DefaultConnection", puis ajoutez une nouvelle chaîne de connexion pour votre base de données Azure avec les informations suivantes :
"AzureConnection": "Server=[nom du nouveau serveur];Database=[nom de la nouvelle base de données];
User ID=[nom d'utilisateur];Password=[mot de passe];MultipleActiveResultSets=true"
Notez que le paramètre Trusted_Connection=True;
n'apparaît pas dans la nouvelle chaîne de connexion. Ce paramètre permet aux connexions locales (à des fins de développement) de contourner la sécurité par nom d'utilisateur/mot de passe pour une installation locale de SQL Server. Il ne fonctionnera pas sur Azure.
Ouvrez maintenant le fichier Startup.cs. Localisez le code qui contient la chaîne de connexion (vers la ligne 40) et remplacez "DefaultConnection"
par "AzureConnection"
.
Recompilez votre solution. Il est temps de publier votre application sur Azure.
Publiez votre application
Maintenant que vous avez migré votre base de données Watchlist locale vers votre serveur SQL Azure, il est temps de publier votre application. Cette opération peut être réalisée entièrement dans Visual Studio. Pour commencer, cliquez avec le bouton droit de la souris sur le nom du projet dans l'Explorateur de solutions, puis choisissez Publier. L'écran suivant s'affiche :
Un App Service Azure est une version publiée et active de votre application. Puisque vous n'en avez pas encore créé, assurez-vous que la case d'option Créer un nouveau est sélectionnée, puis choisissez Créer un profil dans le bouton de liste déroulante en bas de la fenêtre. Lorsque vous cliquez sur Créer un profil, la fenêtre suivante s'affiche :
Ensuite, sélectionnez le type d'abonnement. Vous utiliserez probablement l'option Paiement à l'utilisation. Choisissez alors le groupe de ressources et le plan d'hébergement. Si vous ne les avez pas encore créés, vous pouvez le faire en cliquant sur le lien Nouveau à côté de chaque élément. Enfin, installez Application Insights si vous souhaitez disposer d'outils de diagnostic d'application pour votre application en ligne. Je m'en passerai pour mon application.
Une fois que vous avez indiqué toutes les options requises, cliquez sur Créer.
Votre application sera alors déployée sur Azure en tant qu'App Service, mais il vous reste une dernière étape à effectuer. Vous verrez la fenêtre suivante dans Visual Studio lorsque l'application sera prête à être publiée :
Vous avez maintenant une configuration de publication pour votre application, mais il vous reste encore quelques points à voir. Sous la liste déroulante de publication, quatre liens sont proposés. Cliquez sur Modifier.
Dans la fenêtre qui s'affiche, cliquez sur Valider la connexion pour vous assurer que l'App Service et votre configuration sont liés correctement. Lorsque la connexion est validée, cliquez sur Suivant.
Dans la fenêtre Paramètres, sélectionnez l'option Débogage dans le menu déroulant Configuration, puis cliquez sur la flèche pointant vers le bas à côté de Bases de données pour développer les options de base de données. Cochez la case sous AzureConnection pour indiquer à l'application d'utiliser cette chaîne de connexion. Assurez-vous que la case DefaultConnection n'est pas cochée. Cliquez sur Enregistrer.
Cliquez maintenant sur Publier. Une fois le processus terminé, votre nouvelle application s'ouvrira dans votre navigateur par défaut.
Configurez un domaine personnalisé
L'attribution d'un domaine personnalisé à votre application est une bonne chose, et vous pouvez le faire pour n'importe quel Azure App Service. Cette opération est coûteuse et n'est donc pas requise pour ce cours. Toutefois, vous savez comment la réaliser si vous le souhaitez. Voici les éléments que vous devez prendre en compte avant d'obtenir un domaine personnalisé :
Mettez à niveau le niveau de tarification de votre App Service sur Azure. Le niveau de prix le plus bas qui autorise les domaines personnalisés est S1, qui coûte environ 74,40 $ par mois.
Achetez le domaine souhaité auprès de votre fournisseur de domaines préféré. Le coût peut varier de quelques dollars à plusieurs milliers, en fonction du domaine.
Achetez un certificat SSL (Secure Sockets Layer) auprès de votre fournisseur de domaine ou d'un autre vendeur. L'option la moins chère coûte généralement entre 5 et 6 $ par mois, ou entre 65 et 70 $ par an.
Téléversez votre certificat SSL sur votre compte Azure et liez-le à votre App Service. Vous trouverez des instructions spécifiques dans la documentation de Microsoft Azure ici.
Assignez et configurez le(s) domaine(s) souhaité(s) dans les propriétés de votre App Service.
Dans le but de limiter les dépenses des étudiants, nous n'irons pas plus loin pour ce cours. Cela vous donne au moins une idée de ce que vous devrez faire lorsque vous serez prêt à attribuer un domaine personnalisé à l'une de vos applications.
En résumé
Votre application Watchlist est en ligne !
Dans ce chapitre, vous avez appris à utiliser SQL Server Management Studio (SSMS) pour migrer une base de données locale vers Azure et l'utiliser en ligne.
Vous avez appris à publier une application web sur Azure.
Vous avez découvert ce dont vous aviez besoin pour affecter un domaine personnalisé à un App Service Azure.
Ensuite, nous allons tester votre application dans son nouvel environnement en ligne pour nous assurer que tout fonctionne toujours comme prévu et, si nécessaire, apporter des corrections de dernière minute.