[Actualité] DevOps avec Azure - partie 9 : à la découverte d’Azure DevOps Projects
par
, 25/03/2018 à 14h27 (5079 Affichages)
Ce billet est le neuvième de ma série consacrée à DevOps avec la plateforme Cloud Microsoft Azure.
DevOps sur Microsoft Azure – Partie 1 : Introduction à DevOps
DevOps avec Azure – partie 2 : Infrastructure as Code (IaC) avec Azure ARM
DevOps avec Azure – Partie 3 : Création et déploiement des ressources avec Visual Studio et ARM Template
DevOPS avec Azure – Partie 4 : ARM Template CI & CD avec VSTS
DevOps avec Azure – Partie 5 : stratégie de CI & CD pour l’infrastructure et le Code, 1re approche
DevOps avec Azure – Partie 6 : stratégie de CI & CD pour l’infrastructure et le Code, approche 2
DevOps avec Azure - partie 7 : à la découverte de l’extension « Continuous Delivery Tools for Visual Studio »
DevOPS avec Azure - partie 8 : App Service Continuous Delivery
La mise en place d’un pipeline d’intégration et livraison continues peut être une tâche assez fastidieuse. Prenons, par exemple, une application Web ASP.NET Core qui s’exécute dans un conteneur Docker. Nous voulons publier cette dernière dans un service Azure (Web App For Container) en utilisant les fonctionnalités de CI & CD offertes par VSTS.
Pour y parvenir, nous devons :
- créer dans un premier temps un groupe de ressources Azure (Azure Resource Group) ;
- créer un Azure Registry qui servira de repository privé pour les images docker de notre application ;
- créer un Azure App Service ;
- configurer notre application pour utiliser un repository Git sur VSTS ;
- configurer la connexion entre VSTS et Azure ;
- configurer le pipeline d’intégration continue pour une application ASP.NET Core qui s’exécute dans un conteneur Docker ;
- configurer le pipeline de déploiement continu ;
- etc.
Toutes ces configurations demandent une bonne connaissance de l’ensemble de ces outils/services. En dehors de quelques petites spécificités liées aux besoins du projet, la configuration restera la même d’un projet à l’autre. Microsoft a donc décidé d’automatiser le processus en offrant Azure DevOps Projetcs.
Avec Azure DevOps Projects, vous pouvez en cinq minutes procéder à la mise en place d’un pipeline d’intégration et déploiement continus pour un tel projet. Les services adéquats seront créés et les configurations nécessaires seront automatiquement effectuées dans Azure et VSTS.
Le service est encore en préversion actuellement, mais supporte déjà un large éventail de scénario. Le service offre :
- un support intégré des infrastructures d’application populaires, notamment .NET, Java, PHP, Node.js ou encore Python ;
- la mise en place rapide et automatique d’un pipeline d’intégration et de déploiement continus ;
- du monitoring intégré avec Application Insights ;
- la possibilité de démarrer à partir de zéro avec une nouvelle application ou utiliser une application existante.
La création d’un pipeline de CD & CI avec DevOps Projects se fait en trois étapes et, selon Microsoft, se ferait en moins de cinq minutes.
Sans plus tarder, nous allons tester le service pour voir concrètement ce qu’il en est. Nous allons donc commencer par ouvrir le portail Azure en utilisant notre abonnement et créer une nouvelle ressource DevOps Projetcs.
Étape 1 : Choix du Runtime
La première chose à faire sera la sélection de la plateforme d’exécution de votre application, si vous partez de zéro. Vous avez le choix entre .NET, Java, PHP, Python, etc.
Si vous avez une application existante, vous devez cliquer sur « Bring your own code ». Ensuite, vous devez renseigner le repository distant sur lequel votre projet est archivé. Pour un repository GitHub, en quelques clics, vous êtes en mesure de lier votre compte GitHub avec Azure. Pour un autre fournisseur, vous devez fournir les renseignements nécessaires pour récupérer votre code : URL du repository, nom de branche, nom d’utilisateur et mot de passe pour un repository privé. Pour l’instant seul Git est supporté. TFSVC de Microsoft n’est pas encore pris en charge.
Pour notre test, nous allons sélectionner .NET.
Étape 2 : Choix du Framework
Pour .NET, vous avez le choix entre le Framework ASP.NET ou ASP.NET Core. Pour un projet Java, le choix sera entre Spring et JSF. Pour NodeJS, vous devez choisir entre NodeJS uniquement, Express.js et Sails.js
Pour notre cas, nous allons choisir ASP.NET Core.
Étape 3 : Choix du service Azure
A l’étape trois, vous devez sélectionner le service Azure dans lequel votre application va s’exécuter. Les choix offerts pour l’instant sont Web App (Windows et Linux), Web App For Containers et Virtual Machine (Windows pour l’instant). Plusieurs autres services Azure seront supportés avant la sortie de la version stable.
Pour notre test, nous allons sélectionner Web App for Containers.
Étape 4 : Création du pipeline
La dernière étape sera la spécification du compte VSTS, l’abonnement Azure et le nom de projet qui seront utilisés.
Un clic sur Done et tout le processus est enclenché.
À partir d’un Template qui sera chargé depuis Azure, les services nécessaires pour le déploiement de votre application seront créés. Il s’agit d’un App service plan, un registre privé de conteneurs, un App Service et Application Insights pour le monitoring.
Dans un groupe de ressources différent, deux autres services sont créés pour le suivi. Il s’agit d’un service DevOps Projects et d’un Team Services account :
Le Team Service Account permet d’accéder aux informations sur votre compte VSTS.
Le service DevOps Project est en quelque sorte un tableau de bord qui agrège un certain nombre d’informations pertinentes de VSTS, nécessaires à la gestion de votre projet. En un coup d’œil, vous saurez quand a eu lieu le dernier commit, la dernière Build et le denier déploiement. Les différents liens permettent d’accéder à VSTS pour plus de détails, Application Insights et Azure App Service.
Si vous cliquez sur le lien en dessous d’Application endpoint, vous serez redirigé vers la page d’accueil de votre application :
Du côté de VSTS, le projet d’équipe a été créé. Ensuite, un repository Git a été créé pour l’application. Les configurations pour permettre la communication entre VSTS et Azure sont automatiquement effectuées. La configuration des tâches pour la Build Definition et la Release Definiton en fonction des caractéristiques de l’application est également effectuée. Enfin, un commit du code source est effectué pour démarrer le processus de CI et CD.
Vous n’avez plus qu’à cloner votre code source et procéder aux modifications en utilisant votre EDI favori. Une fois vos modifications poussées vers le repository distant, la build et le déploiement sur Azure se feront automatiquement.
Si vous avez des besoins particuliers, vous pouvez ajuster les configurations faites par défaut.
Azure Devops Projects est un excellent moyen pour mettre en place un pipeline de CI et CD, créer les ressources adéquates pour son application, etc. rapidement, sans avoir besoin de connaissances avancées.