Articles
Tutoriels
Guides interactifs
Considérations relatives à votre chaîne d'outils DevOps
Faut-il opter pour une chaîne d'outils DevOps tout-en-un ou personnalisable ?
![Portrait de Robert Krohn](https://wac-cdn.atlassian.com/dam/jcr:cb7c425e-5bfd-46e0-b87f-d10337deea05/Robert_Krohn_Headshot.png?cdnVersion=2176)
Robert Krohn
Head of Engineering, DevOps
Contribution éditoriale : Chandler Harris
Une chaîne d'outils DevOps constitue un ensemble d'outils provenant souvent de différents fournisseurs et fonctionnant comme une unité intégrée pour concevoir, développer, tester, gérer, mesurer et exploiter des logiciels et des systèmes. Elle permet aux équipes de développement et opérationnelles de collaborer tout au long du cycle de vie du produit et aborde les principaux fondamentaux de DevOps, notamment l'intégration et la livraison continues, l'automatisation et la collaboration.
De la méthodologie Agile à DevOps
Les principes Agile que nous avons largement adoptés ont révolutionné nos méthodes de création des produits. Nous avons formé de petites équipes transverses et opté pour des sprints d'une à deux semaines qui ont donné des artefacts prêts pour la production. Nous appliquons des cycles de feedback serrés et l'amélioration continue. Nous livrons nos produits plus rapidement et plus sereinement.
L'évolution est si rapide que c'en est incroyable. Le cloud, le SaaS et les services disponibles en continu accélèrent considérablement le cycle de vie du développement. Plusieurs étapes de développement et de test se déroulent souvent simultanément. Bien qu'Agile s'accompagnait de sprints d'une à deux semaines, les équipes évoluant dans les environnements cloud natifs actuels itèrent et déploient plusieurs fois par jour. Les workflows et les bases de code évoluent constamment. Les équipes utilisent des feature flags, des déploiements progressifs et des tests A/B pour garantir le déploiement continu d'un code propre et de qualité.
La méthodologie Agile a donc évolué pour donner naissance à DevOps, un ensemble de pratiques visant à automatiser et intégrer les processus entre les équipes de développement et informatiques, afin de leur permettre de développer, de tester et de livrer des logiciels plus rapidement et de manière plus fiable. Les équipes DevOps sont évaluées en fonction de la rapidité avec laquelle elles pushent du code en production. Elles se caractérisent par le nombre d'itérations livrées chaque jour et le temps nécessaire pour qu'un changement de code passe du test au déploiement, puis à la production. Les projets types de mon équipe subissent jusqu'à 20 changements par jour. Certains projets plus importants subissent jusqu'à 100 changements par jour.
Ce workflow accéléré s'appuie sur de nouveaux outils qui permettent aux équipes de collaborer au développement, aux tests et au déploiement, et est rendu possible par ces outils. En particulier, une chaîne d'outils DevOps aide les équipes à aborder à vitesse grand V chaque étape du cycle de vie du développement.
Qu'est-ce qu'une chaîne d'outils DevOps ?
Une chaîne d'outils DevOps comprend les outils et la technologie qui permettent aux équipes de développement et opérationnelles de collaborer tout au long du cycle de vie logiciel. Elle aborde les principaux fondamentaux de DevOps, notamment l'intégration et la livraison continues, l'automatisation et la collaboration.
DevOps est un virage culturel dans le cadre duquel les équipes de développement et opérationnelles fonctionnent comme une unité intégrée. Il n'existe donc pas d'outil unique qui permette d'appliquer les principes et les pratiques DevOps. Au contraire, une chaîne d'outils DevOps constitue un ensemble d'outils provenant souvent de différents fournisseurs et fonctionnant comme une unité intégrée pour concevoir, développer, tester, gérer, mesurer et exploiter des logiciels et des systèmes. Souvent, les organisations et les équipes doivent expérimenter différentes combinaisons d'outils pour trouver la chaîne d'outils qui leur convient.
Si vous examinez un produit DevOps sophistiqué, la chaîne d'outils DevOps devrait pouvoir traiter très rapidement les étapes du cycle de vie du développement et proposer plusieurs perspectives pour différents utilisateurs. Elle doit inclure des outils de développement qui abordent chaque phase du cycle de vie du développement, y compris l'intégration et la livraison continues, l'automatisation des tests et le déploiement à grande vitesse. Pour ce qui est de l'aspect opérationnel de DevOps, les outils doivent inclure des fonctionnalités qui facilitent la surveillance et la gestion des incidents. De plus, ils doivent connecter les équipes de développement et opérationnelles en fournissant un feedback et une journalisation continus.
Ressource connexe
Essayez la solution gratuitement
Ressource connexe
Explorer les intégrations
![Illustration du cycle DevOps](https://wac-cdn.atlassian.com/dam/jcr:822e0c5e-438e-456b-9deb-47813da03244/updated-infinity-loop.png?cdnVersion=2176)
Si vous considérez la partie gauche de la boucle de l'infini comme l'aspect produit et la partie droite comme l'aspect opérationnel, le responsable produit qui pushe une nouvelle fonctionnalité en production s'intéresse à la façon dont le projet se décompose en tâches et en user stories. Le développeur dans la partie gauche du projet doit voir comment mettre en production la fonctionnalité, y compris les tickets de projet, les users stories et les dépendances. Si les développeurs adoptent le principe DevOps YBIYRI (you build it, you run it ou vous le concevez, vous en êtes responsable), ils s'intéressent également à la remédiation des incidents.
En ce qui concerne l'aspect opérationnel du cycle de vie, l'ingénieur chargé de la fiabilité du site (SRE) doit comprendre les services qui peuvent être mesurés et surveillés, de sorte que s'il y a un problème, il peut être résolu. Si vous ne disposez pas d'une chaîne d'outils DevOps qui relie tous ces processus, votre environnement est brouillon, désordonné et chaotique. Au contraire, si vous disposez d'une chaîne d'outils bien intégrée, vous pouvez obtenir facilement le contexte des tâches en cours.
Options de création de votre chaîne d'outils DevOps
Avant de choisir la chaîne d'outils DevOps adaptée, il convient de comprendre les bonnes pratiques DevOps fondamentales et la manière dont les outils favorisent ces pratiques. Établissez ensuite une stratégie d'outils commune qui permet aux équipes de collaborer au développement, aux tests et au déploiement.
Lorsque les organisations adoptent DevOps, deux options s'offrent généralement à elles : une chaîne d'outils DevOps « tout-en-un » ou personnalisée. Il est essentiel de choisir la bonne configuration, car elle façonne les processus DevOps d'une équipe.
Chaîne d'outils DevOps tout-en-un
Une chaîne d'outils DevOps tout-en-un fournit une solution complète qui ne s'intègre pas forcément à d'autres outils tiers. Cette option peut être utile pour les entreprises ou les groupes qui entament à peine leur parcours DevOps, ou pour une équipe qui souhaite lancer un projet rapidement. Ce type de chaîne d'outils présente plusieurs inconvénients. La plupart des équipes établies utilisent déjà un ensemble d'outils de prédilection, qui ne s'intégreront peut-être pas à une solution complète. De plus, une chaîne d'outils aussi complète risque de ne pas être suffisamment spécialisée. Un outil unique ne peut tout simplement pas s'adapter aux marchés en rapide évolution. Enfin, les entreprises ont très souvent besoin d'intégrer des outils existants à une chaîne d'outils DevOps, et une chaîne tout-en-un peut limiter cette intégration.
Chaîne d'outils DevOps personnalisable
L'autre approche consiste à utiliser une chaîne d'outils DevOps qui peut être personnalisée en fonction des besoins d'une équipe à l'aide de différents outils. Les équipes peuvent ainsi intégrer les outils existants qu'elles connaissent et apprécient dans la chaîne d'outils DevOps plus large. Par exemple, une équipe peut utiliser Jira pour la planification et le suivi des workflows, Kubernetes pour provisionner des environnements de développement individuels, GitHub pour la programmation collaborative, Jenkins pour l'intégration continue, et bien plus encore. Les organisations peuvent personnaliser leurs workflows en fonction des équipes et/ou des projets.
L'intégration est essentielle pour ces types de chaînes d'outils. Si les différents outils ne sont pas intégrés, les membres de l'équipe perdent du temps à basculer entre les écrans, à se connecter à plusieurs endroits, et le partage d'informations entre les outils peut être difficile. Ce n'est une bonne expérience ni pour les développeurs, ni pour les personnes qui essayent de comprendre ce qui se passe. Si vous répondez à un incident, vous n'avez pas le temps de consulter un mode d'emploi et d'essayer de trouver des informations clés à propos d'un nouvel outil.
Conclusion…
DevOps vise à éliminer les silos et à accélérer et automatiser largement le cycle de vie du développement pour garantir une collaboration fluide, que ce soit au sein d'une même équipe ou d'équipes transverses. Pour choisir les bons outils DevOps qui fonctionnent de concert, il convient avant tout d'examiner attentivement votre processus actuel de développement de logiciels et d'opérations informatiques et de déterminer à quel niveau vous devez vous améliorer.
Découvrez les outils adaptés à chaque phase du cycle de vie DevOps.
Partager cet article
Thème suivant
Lectures recommandées
Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.
![Illustration DevOps](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2176)
Communauté DevOps
![Illustration DevOps](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2176)
Parcours de formation DevOps
![Illustration d'une carte](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2176)