Ouvrir le menu principal

Chaîne d'outils Devops

Une chaîne d'outils Devops est une combinaison d’outils participant au développement, à la distribution et plus généralement à la gestion d’applications logicielles tout au long de leur cycle de développement. Chaque entreprise qui utilise la méthode DevOps la coordonne[1]. En général, les outils DevOps conviennent chacun à une ou plusieurs activités qui traitent les initiatives spécifiques au DevOps : Plan (planifier), Create (créer), Verify (vérifier), Package (emballer), Release (livrer), Configure (configurer) et Monitor (surveiller)[2],[3].

Sommaire

La chaîne d’outilsModifier

Dans l'industrie logicielle, une chaîne d’outils est un ensemble d’outils de programmation utilisés pour réaliser une tâche complexe en développement de logiciel pour créer un logiciel, typiquement un autre programme informatique ou un ensemble de programmes reliés. Généralement, les outils qui forment une chaîne sont exécutés successivement pour que le produit ou l’environnement résultant d'un outil devienne la donnée ou l’environnement d’entrée du suivant. Ce n’est cependant pas forcément toujours le cas, et le terme est aussi utilisé quand on parle d’un ensemble d’outils qui ne sont pas exécutés consécutivement.

Le DevOps étant un ensemble de méthodes qui insistent sur la collaboration et la communication entre les développeurs et les autres professionnels de l'informatique, tout en automatisant les processus de livraison des logiciels et les changements d’infrastructure, sa mise en œuvre peut inclure la série d’outils utilisés à différentes étapes du cycle. La mise en place de DevOps est un changement culturel qui exige la collaboration entre le développement (Dev) et l'exploitation (Ops), il ne peut pas y avoir un produit considéré, seul, comme l’outil de DevOps. C’est plutôt une collection d’outils, venant le cas échéant de plusieurs fournisseurs, qui sont utilisés en combinaison dans une ou plusieurs étapes du cycle[4],[5],[6].

Les étapes de DevOpsModifier

Plan : PlanifierModifier

Planifier est composé en fait en deux parties : « définir » et « planifier[1] ». Cette étape concerne la valeur commerciale et les exigences des applications. Plus précisément, les activités de la planification comprennent la définition de :

  • Indicateurs, objets, et retours d’expérience de production
  • Exigences
  • Mesures commerciales
  • Métriques de mise à jour et de mise en production
  • Plan, timing et analyse de rentabilisation des releases
  • Politique de sécurité

Plusieurs catégories d'informaticies sont impliqués dans ces procédures : le propriétaire des applications de l’entreprise, les développeurs de logiciel, l'architecte logiciel, le gestionnaire des mises en production continue, l'agent de sécurité et les geestionnaires de l'infrastructure. Parmi les sociétés qui offrent des solutions automatisant l’étape Plan, l'on trouve Atlassian, CA Technologies, iRise et Jama Software.

Create : CréerModifier

L’étape Create comprend la construction, le codage et la configuration du processus de développement de logiciel. Les activités associées sont :

  • La conception et la configuration du logiciel,
  • Le codage, y compris les contrôles de qualité et de performance,
  • Le build du logiciel (assemblage des différentes parties), et sa performance,
  • La préparation de la livraison.

Les outils et sociétés fournisseurs dans cette catégorie se chevauchent souvent avec ceux des autres étapes, ce qui est normal car le DevOps consiste à décloisonner les équipes. Quelques solutions et fournisseurs notables sont Bitbucket, GitLab CE, GitHub, Electric Cloud et CFEngine.

Verify : VérifierModifier

L’étape Verify est directement liée à la garantie de qualité de la livraison du logiciel : il comporte des activités conçues pour assurer que la qualité logicielle est assurée et que la plus haute qualité est déployée à la production. Les activités principales sont :

Les fournisseurs qui offrent des solutions pour cette étape rentrent dans quatre catégories principales : automatisation des tests (ThoughtWorks, IBM, HP), analyse statique (Parasoft, Microsoft, SonarSource), laboratoire de test (Skytap, Microsoft, Delphix), et sécurité (HP, IBM, Trustwave, FlawCheck).

Package : EmpaqueterModifier

L'étape Package concerne les activités impliquées une fois la livraison prête pour le déploiement. Elle est parfois aussi appelée « Préproduction » (ou « Préprod ») et comprend notamment :

  • L’approbation et l’approbation préalable
  • La configuration de livraison
  • Les livraisons déclenchables
  • Le regroupement et l'emballage des livraisons

Les outils qui traitent cette étape sont les gestionnaires universels de paquets comme : Artifactory (JFrog), Nexus (SonaType) et ProGet (Inedo)[7].

Release : LivrerModifier

Les activités de programmation, d’orchestration, de provisionnement et de déploiement de logiciel en production et en environnement ciblé sont toutes incluses dans l’étape Release[8]. Plus spécifiquement :

  • La coordination des livraisons
  • Le déploiement et la promotion des applications
  • Le repli et la récupération
  • Les livraisons planifiées/programmées

Les solutions qui couvrent ces aspects de la chaîne d’outils sont l’ARA (Application Release Automation), l’automatisation du déploiement et la gestion des mises en production (release management). Les fournisseurs concernés sont Automic, Clarive, Inedo, BMC Software, IBM, VMware, and XebiaLabs[9].

Configure : ConfigurerModifier

L'étape Configure se trouve du côté Ops (exploitation) de DevOps. Une fois le logiciel déployé, il peut y avoir d’autres activités de configuration et en préparation de l’infrastructure, comme :

  • L'infrastructure de stocage, la mise en place et la configuration de la base de données et du réseau
  • La mise en place et la configuration de l’application

Les solutions pour faciliter ces activités sont les outils de Continuous Configuration Automation, gestion de configuration et Infrastructure as Code. Par exemple : Ansible, Chef, Puppet, Otter et Salt.

Monitor : SurveillerModifier

Monitor est un lien important dans la chaîne d’outils DevOps. Il permet à l’organisation informatique d’identifier un problème précis d’une livraison particulière et d'en comprendre l’impact sur l’utilisateur final. Ses activités sont :

  • Performances de l'infrastructure
  • L’expérience et la réaction de l’utilisateur final
  • Les métriques et les statistiques de production

Les informations venant des activités Monitor on souvent un impact sur les activités Plan requises pour les changements et pour les nouveaux cycles de livraison. Les fournisseurs, dans cette étape, sont BigPanda, Ganglia, New Relic et Wireshark.

RéférencesModifier

  1. a et b Avoid Failure by Developing a Toolchain that Enables DevOps, Gartner,
  2. Damon Edwards, « Integrating DevOps tools into a Service Delivery Platform », sur dev2ops.org
  3. Richard Seroter, « Exploring the ENTIRE DevOps Toolchain for (Cloud) Teams », sur infoq.com
  4. « Toolchain Overview », sur nongnu.org, (consulté le 21 octobre 2013)
  5. « Toolchains », sur elinux.org, (consulté le 21 octobre 2013)
  6. « Tool Chains in Agile ALM Environments: A Short Introduction », Lecture Notes in Computer Science,‎ , p. 371–380 (DOI 10.1007/978-3-319-26138-6_40, lire en ligne)
  7. Xavier Decoster, « An Overview of the NuGet Ecosystem », sur CodeProject.com,
  8. Best Practices in Change, Configuration and Release Management, Gartner,
  9. Market Overview: Application Release Automation Tools, Forrester,