J3: Deploying ASP.NET Core applications
Session par Daniel Roth sur la mise en place du déploiement d’applications ASP.NET Core sur des serveurs on-premise, sur Windows Azure et dans Docker.
Il y a 3 étapes pour déployer ce type d’applications:
- Restaurer les dépendances des packages
- Publier l’application afin de récupérer tous les artefacts nécessaires
- Déployer l’application dans un environnement de production
La publication “classique” (afin de préparer votre application pour le déploiement) nécessite les étapes suivantes:
- dotnet restore
- dotnet publish
- Il suffit de faire un “dotnet votre-app.dll” pour exécuter l’application
La démonstration de la publication a été réalisée en quelques minutes et nous avons bien vu que cela peut se faire de manière vraiment très simple grâce à 2 lignes de commande. Il s’agissait ici de démontrer comment déployer l’application de manière classique en montrant qu’un simple “dotnet votre-app.dll” permet de l’exécuter, quelle que soit la plateforme sur laquelle vous êtes.
Une autre solution de déploiement, les applications “self-contained” a été démontrée. L’idée, ici, est de vous permettre de déployer votre application ainsi que l’ensemble des éléments dont elle a besoin, telles que les briques importantes du framework .NET (coreclr.dll, etc.). Au final, la procédure est la même que précédemment et il suffit simplement de modifier le fichier “project.json” pour profiter de cette fonctionnalité.
Le déploiement en production repose sur le serveur Web intégré, Kestrel. Cependant, celui-ci n’est pas prévu pour supporter les sites à fort trafic: il faut donc utiliser un proxy (IIS, Nginx, HAProxy, etc.)
Pour la publication sur IIS, il faut:
- Installer le ASP.NET Core Module
- Configurer ce module dans le web.config (l’outil “publish-iis” fera cela de manière automatique)
- Faire pointer IIS sur le répertoire wwwroot de votre application
En ce qui concerne la publication sur Azure, il faut la faire depuis Visual Studio (qui s’appuie sur Web Deploy). Il est possible d’automatiser les déploiements avec des scripts Powershell (généré lors de la première publication via Visual Studio).
Pour le déploiement Docker, il ya des images ASP.NET Core sur le Hub Docker. De plus, une preview de Visual Studio Tools for Docker est disponible pour créer et déployer des images dans un hôte Docker.
En conclusion, on a pu voir que le déploiement d’applications ASP.NET Core était relativement simple, quelle que soit la cible que l’on souhaite utiliser!
Happy coding!
Commentaires