Ce billet fait partie d’une série visant à expliquer comment configurez, de bout en bout, un pipeline de déploiement continu sur Azure. Vous vous trouvez sur la première partie 🙂 Voici des liens vous permettant de lire les parties suivantes :

Partie 1 : Créer et déployer une application ASP.NET Core MVC dans Azure
Partie 2 : Configurer Let’s Encrypt et le renouvellement automatique
– Partie 3 : Configurer le déploiement continu depuis Azure DevOps [EN REDACTION]

Ayant eu lors de ma jeunesse un background fort orienté PHP, j’ai dû assez rapidement prendre l’habitude de configurer mon propre serveur pour y héberger mes applications. Lorsque je me suis réorienté vers le .NET, j’ai tenté de garder cette habitude. Après plusieurs mois de bataille avec mon propre serveur où je devais gérer .NET Core, Nginx, Let’s Encrypt, etc, j’ai décidé de laisser une chance à Azure ! 

Sachez que je ne regrette absolument pas cette décision. C’est pour ça qu’aujourd’hui, je vais tenter de vous aussi vous diriger vers cette solution.

Configuration sur Azure

Une très grosse partie de la configuration se fera directement depuis le portail d’Azure. Je vous invite donc à créer un compte, si ce n’est déjà fait. Maintenant, commençons ! 🙂 

Création du Resource Group

Le principe d’azure et de vous fournir une très large gamme de services pouvant subvenir à tous vos besoins. Les services sont découpés de manière à ne remplir qu’une seule et unique tâche. Il n’est donc pas étonnant d’avoir plus de 10 services différents pour une seule application. Un groupe de ressources est un moyen de facilement rassembler ces services pour vous faciliter la gestion

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview

La première étape est de créer un groupe de ressource dans lequel nous allons placer toutes nos resources.. Pour cela rien de plus simple, il vous suffit de vous rendre sur le portail Azure, de cliquer sur le lien « Resource Group » dans le menu de gauche et de remplir les champs demandés.

Fenêtre de création d’un groupe de ressource

Le nom n’a pour seule utilité que de vous permettre de facilement le reconnaître.

Création du App Service Plan

Une « App Service Plan » est un ensemble de ressources matérielles mises à disposition, sur lesquelles vous pouvez faire tourner une ou plusieurs applications. Selon l’offre que vous choisirez, vous aurez droits plus ou moins de ressources, d’instance, ou d’isolation sur le réseau.

https://docs.microsoft.com/en-us/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview

Une fois notre groupe de ressources crée il faut maintenant que l’on crée un service plan. Encore une fois, c’est très simple si l’on se contente d’utiliser le portail.

Appuyez maintenant sur le bouton « Add » et choisissez « App Service Plan ».

Fenêtre de création d’un « App Service Plan »

Encore une fois, le nom du App Service Plan vous sert purement à l’identifier. Vous remarquerez que, dans le formulaire, vous pouvez maintenant choisir dans quel groupe de ressources ajouter votre service.

Une fois les champs remplis, il vous suffit d’appuyer sur créer. Notez que la création peut prendre plus ou moins de temps, il faudra donc être un minimum patient. 🙂

Création du AppService et de la base de donnée

On approche du du vif du sujet, l’application en elle même ! 

Une fois que le « App Service Plan » est bien créé, rendez-vous sur la page « App Services » via le menu de gauche et cliquez sur le bouton « Add ». Vous vous retrouvez sur une nouvelle page sur laquelle vous pouvez choisir quel type de service créer.
Je vais créer une application possédant une base de données, je choisis donc tout naturellement le template « WebApp + SQL ». Si par contre votre application ne nécessite pas de base de données, vous pouvez vous contenter du template « WebApp ».

Création de l’App Service

En voyant la taille du formulaire, on pourrait se dire que les choses commencent à se complexifier, mais que nenni ! Voyons ensemble les différents champs à remplir :

  • AppName : il s’agit du nom de votre application, mais aussi du nom de domaine qui vous sera attribué dans le cas où vous n’auriez pas un propre à vous. Faites donc un petit peu attention à ce que vous choisissez :p
  • Resource Group : comme d’habitude, on prend celui qu’on a créé au début de ce billet.
  • AppService : Sélectionnez celui créé précédemment.
  • SQL Database : comme expliqué dans la petite définition du début, chaque service est bien découpé. Nous avons donc maintenant devoir créer un service qui sera lié à notre application. Rien de bien compliqué sur ce formulaire, il vous suffit de choisir un pseudo mot de passe et de le retenir.

Une fois ces différents champs remplis, appuyez sur le bouton créer et soyez patient. Cette opération peut prendre un petit peu de temps. 🙂

Configuration de l’application

Maintenant que notre application est bien créée, il est temps de configurer notre solution pour qu’elle puisse être déployée directement sur Azure. Une fois notre application ouverte dans Visual Studio, faites un clic droit sur votre projet contenant l’application Web et choisissez l’option « Publier ».

Fenetre des profils de publication

Vous arrivez maintenant sur une page reprenant tous les groupes de ressources créées sur le compte Microsoft lié à votre Visual Studio. Choisissez donc, dans le dossier portant le nom de votre groupe de ressources, l’app service créer précédemment.

Ensemble des groupes de ressource lié à votre compte

C’est là que la magie opère, Visual Studio a tout configurer pour vous !

Si vous n’avez pas de base de données liée à votre projet, vous pouvez vous arrêter ici et le publier. Un nouvel onglet sera ouvert dans votre navigateur par défaut et pointera directement vers votre application. Félicitations !

Dans le cas contraire, appuyez sur le lien configurer pour obtenir la pop-up suivante :

Il vous suffit, dans cette fenêtre, de cocher les deux cases liées aux bases de données et aux migrations. Une fois que c’est fait appuyer sur le bouton sauvegarder et publier votre application. La connexion String de votre application et les migrations contenues dans celle-ci seront automatiquement appliquées au serveur. Aucune modification supplémentaire à faire 🙂

Voilà Votre application est accessible directement depuis Internet ! 🙂

Conclusion

Je ne vous avais pas menti, déployer votre application sur Azure et d’une facilité déconcertante.

Le seul frein que je pourrais noter est le prix, en effet, pour des personnes commençons à développer ayant un budget très limité, le prix peut être un gros point bloquant si l’on compare à d’autres services qui vous proposent d’héberger un nombre illimité de sites pour moins de 10 € par mois.

Dans le cas contraire, l’intégration logicielle et à l’ensemble des autres services du catalogue et d’une puissance que l’on ne peut négliger et permet un gain de temps énorme dont je ne peux plus me passer. Je n’ai plus besoin de m’occuper d’un serveur, et ça, c’est beau ! 🙂