Ouvrir le menu principal

Chaîne d'outils Devops

La chaîne d'outils Devops est une collection ou une combinaison d’outils qui aide dans la distribution, le développement et la gestion d’applications tout au long du cycle de développement (logiciel). 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 supportent 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

Par rapport aux logiciels, une chaîne d’outils est la collection d’outils de programmation qui sont utilisés pour réaliser une tâche complexe en développement de logiciel, soit pour créer un produit 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 de chaque outil devienne la donnée ou l’environnement d’entrée pour le prochain. Par contre, ce n’est pas forcément toujours le cas, et le terme sert aussi quand on parle d’un ensemble d’outils qui ne sont pas exécutés consécutivement. Étant donné que DevOps est un ensemble de méthodes qui insistent sur la collaboration et la communication entre les développeurs et autres professionnels IT, 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. Puisque DevOps est un changement culturel qui exige la collaboration entre développement (Dev) et exploitation (Ops), il ne peut pas y avoir un seul produit considéré comme l’outil de DevOps. C’est plutôt une collection d’outils, éventuellement venant d’une variété de fournisseurs, qui servent 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 "Plan" comprennent :

  • 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é

Une combinaison de personnel IT est impliquée dans ces procédures : propriétaire des applications de l’entreprise, développement de logiciel, architecte logiciel, gestion des mises en production continue, agent de sécurité et infrastructure IT. Parmi les vendeurs qui offrent des solutions pour faciliter l’étape Plan se trouvent Atlassian, CA Technologies, iRise et Jama Software.

Create : CréerModifier

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

  • Design et configuration du logiciel
  • Codage, y compris contrôles de qualité et de performance
  • Build du logiciel, et sa performance
  • Release candidate

Les outils et vendeurs dans cette catégorie se chevauchent souvent avec ceux des autres étapes. Puisque DevOps consiste à démanteler des silos, ils sont représentés à la fois dans les activités et les solutions.
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 release du logiciel : des activités conçues pour assurer que la Qualité logicielle est entretenue et que la plus haute qualité est déployée à la production. Les activités principales sont :

Les vendeurs 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 release prête pour le déploiement. Elle est parfois aussi appelée ‘’Preproduction’’ ou ‘’Preprod’’ et comprend les tâches telles que :

  • L’approbation et l’approbation préalable
  • Package configuration
  • Releases déclenchables
  • Rassembler et contenir les releases

Les outils qui adressent 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 envers la production et un environnement ciblé sont toutes incluses dans l’étape Release[8]. Plus spécifiquement :

  • La coordination des releases
  • Le déploiement et la promotion des applications
  • Le repli et la récupération
  • Les releases 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 vendeurs concernés sont Automic, Clarive, Inedo, BMC Software, IBM, VMware, and XebiaLabs[9].

Configure : ConfigurerModifier

L'étape Configure se trouve sur le côté Ops (exploitation) de DevOps. Une fois que le logiciel est déployé, il y aura parfois d’autres activités en configuration et en provisionnement d’infrastructure IT, comme :

  • Stockage d’infrastructure, provisionnement et configuration de la base de données et du réseau
  • Provisionnement et 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 IT d’identifier un problème précis d’une release particulière et de comprendre l’impact sur l’utilisateur final. Ses activités sont :

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

Les informations venues des activités Monitor impactent souvent les activités Plan requises pour les changements et pour les nouvelles release cycles. Les vendeurs 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,