Cloud
Vers du DevOps « as a Service »
Par Laurent Delattre, publié le 11 septembre 2018
Microsoft lance une offre originale de « déploiement continu as a service » permettant la création d’un pipeline CI/CD complet et compatible avec tous les clouds. La solution est ouverte aux pipelines internes des entreprises et sera même déclinée « On Prem » via une offre serveur.
On a beau dire et répéter que DevOps est avant tout une philosophie et non une technologie, il faut bien à un moment ou un autre s’appuyer sur des outils pour la concrétiser et mettre en place ses concepts clés qui vont de la collaboration entre les développeurs au déploiement continu, en passant par la suppression des silos Devs & Ops, l’automatisation des tests et celle des déploiements.
Dans l’univers Microsoft, l’essentiel des processus d’implémentation DevOps reposait en bonne partie sur Visual Studio ainsi que sur Team Foundation Server (TFS) et son pendant cloud « Visual Studio Team Services » (plus communément appelé VSTS).
Du DevOps à la sauce Services
L’éditeur a annoncé hier un changement de direction qui se traduit par un changement de nom de VSTS, mais bien au-delà par un réalignement de la stratégie DevOps autour d’Azure et de sa récente acquisition GitHub.
Ainsi, le service VSTS se voit renommé « Azure DevOps Services ». Mais il s’agit là d’un peu plus qu’un simple renommage. D’abord parce que l’appellation « Azure DevOps » n’est pas nouvelle, ensuite parce que l’offre s’enrichit au passage de nouveaux services et redessine les contours de la stratégie de Microsoft en la matière.
En effet, l’éditeur avait déjà lancé l’an dernier « Azure DevOps Projects », un service Azure cherchant à simplifier et fluidifier l’expérience des développeurs pour mettre en place de l’intégration continue au-dessus du Pipeline Azure (et ceci quels que soient les frameworks d’exécution utilisés : VM, Azure Web Apps, Service Fabric, Azure Kubernetes Service ou Azure Functions). Pour faire simple, tout le pipeline qui lie une application déposée dans un repository Git jusqu’à son déploiement au bon endroit dans la galaxie Azure est totalement automatisé et prédéfini par DevOps Projects pour se concrétiser en quelques clics.
Un pipeline CD/CI dans le Cloud et OnPrem’
L’annonce de la semaine, si elle en reprend l’appellation ouvre de nouvelles perspectives. Rappelons que Microsoft a annoncé en juin dernier sa volonté d’acquérir GitHub (pour la bagatelle de 7,5 milliards de dollars), un rachat encore en attente d’approbation des autorités de régulation américaine. Et Microsoft réoriente nécessairement sa stratégie pour donner de la cohérence à l’ensemble. La transformation de VSTS en Azure DevOps Services s’accompagne d’une refonte de l’interface graphique, mais aussi d’une refonte fonctionnelle avec une volonté d’aider les entreprises à mettre en place une vraie politique de collaboration entre les développeurs et entre les devs et les ops et à assembler des pipelines de Déploiement Continu (CD) et d’Intégration Continue (CI), pas nécessairement au-dessus d’Azure.
L’offre s’articule autour de cinq services complémentaires et formant un pipeline cohérent :
– Azure Repos : pour créer un nombre illimité de repository Git privés (avec fils de discussion, intégration aux Workflows InnerSource, et une gestion avancée des fourches).
– Azure Artifacts : pour partager aisément du code entre équipes DevOps et gérer les flux de packages Maven, npm ou NuGet qu’ils proviennent de sources publiques ou privées.
– Azure Test Plans : une solution automatisée de tests (sur applications Web, mais aussi de bureau) exploratoires et planifiés afin d’éviter les régressions et de contrôler la qualité du code.
– Azure Boards : un ensemble d’outils de planification via des tableaux Kanban, de rédaction de roadmaps et de publications de rapports et tableaux de bord.
– Azure Pipelines : le cœur de l’offre qui unifie le tout pour permettre aux entreprises de mettre en œuvre plus simplement un pipeline d’intégration continue, autrement dit de créer, tester, et déployer en continu leurs applications, et ceci quelle que soit leur plateforme de prédilection (Linux, Windows, MacOS), mais aussi et surtout quel que soit leur cloud préféré (privé ou public). Azure Pipelines s’alimente d’artefacts (les éléments issus de la compilation du code source) en provenance d’Azure Artifacts, mais aussi de système d’intégration continue telle que Jenkins.
Une solution cloud agnostique
Ensemble, ces différents service Azure offrent un pipeline DevOps complet sous forme de service Cloud, histoire d’éviter aux entreprises de bâtir le leur, généralement en combinant plusieurs technologies open source telles que Puppets, Jenkins, Spinnaker, etc. Cependant chacun de ces services peut aussi s’intégrer facilement (et indépendamment des autres) dans vos pipelines de CI/CD par le biais de leurs APIs. Ils semblent déjà afficher une bonne maturité puisqu’ils sont utilisés depuis plusieurs mois par plus de 80.000 développeurs et chefs de projets internes chez Microsoft (ainsi que chez plusieurs clients triés sur le volet).
L’une des solutions « Devops as a Service » qui s’en rapprochent le plus dans l’esprit est sans doute Cycloid.io (hébergée sur AWS). En outre, des services comme AWS CodeStar, AWS Worskpaces, IBM UrbanCode Deploy en sont également des concurrents directs même s’ils se montrent moins complets que l’offre Azure DevOps prise dans sa globalité.
Et contrairement à Azure DevOps Projects (ou à AWS CodeDeploy dans l’univers Amazon ou encore IBM Cloud Continuous Delivery Service chez IBM Cloud), le pipeline créé conduit indifféremment à un déploiement sur votre propre infrastructure Kubernetes ou sur n’importe quel Cloud (ce pipeline n’est donc pas dédié à Azure, mais s’étend à AWS et GCP notamment). Par exemple, une équipe peut récupérer via Azure Pipelines un service Web en Node.JS ou en C# (ou tous les autres langages supportés) depuis un repository GitHub et le déployer automatiquement sur AWS. Et ceci en un claquement de doigts (ou presque, la réalité n’est jamais aussi simple).
Héritant de l’historique VSTS, les services Azure DevOps s’enrichissent déjà de multiples extensions pour les piloter et les exploiter depuis des outils existants à commencer par Slack, Teams, SonarCloud et plus de 1000 autres applications et services.
Microsoft migrera au fur et à mesure durant les prochains mois tous les comptes VSTS vers Azure DevOps.
On notera au passage que les services et tout particulièrement Azure Pipelines sont gratuits à l’usage (limités à 10 travaux parallèles, mais minutage illimité) pour les projets en Open Source, histoire de donner un peu de cohérence et de vision à long terme au rachat de GitHub.
Dernière précision, Microsoft a également pensé aux entreprises qui souhaitent conserver un pipeline DevOps intégralement en interne et lancera prochainement le pendant « On Premises » d’Azure DevOps au travers d’une solution dénommée Azure DevOps Server qui succèdera à Team Foundation Server !