La pression de la compétition incite de plus en plus d’entreprises à adopter DevOps, mais cela demande aux équipes Dev et Ops de se déplacer hors de leurs zones de confort…
Si la démarche d’adoption de DevOps est payante pour les entreprises qui veulent rester dans la course, elle est également l’objet de nombreux défis pour faite évoluer la culture du travail, plus rapide et plus innovante.
Voici les 5 principaux défis identifiés par les équipes DevOps et comment les surmonter :
Surmonter la mentalité Dev versus Ops
La pratique DevOps porte sur l'intégration des équipes et l’élimination des cloisonnements au sein des organisations informatiques. D’un côté, les Devs essayent d'innover et de faire des changements aussi rapidement que possible ; de l’autre, les opérations essayent de maintenir les niveaux de service à 100%. Les objectifs des deux équipes semblent se contrer. Ils ont besoin d'être alignés et que les priorités des deux équipes soient communs. Si cela n’est pas réalisé, les différences entre les équipes se révèleront coûteuses et une source de retard. L'intégration des différentes équipes est donc au cœur de DevOps, et c’est le premier obstacle que toute entreprise doit surmonter lorsqu'elle adopte des pratiques DevOps.
Suite à cette intégration, certaines organisations passent aux équipes fonctionnelles et aux produits alignés transversalement plutôt qu'à la gestion de projets. Une équipe interfonctionnelle doit s’aligner sur les produits, en possédant sa feuille de route, l'architecture, la conception, le développement, l’exécution et le soutien des exigences, l’ensemble réunit en un processus de collaboration. Cela peut sembler facile, mais c’est au contraire extrêmement difficile pour les entreprises, car cela implique généralement au personnel de se restructurer, de briser les services partagés et les rapports hiérarchiques. C’est souvent une bataille politique que l'unité organisationnelle propriétaire du produit doit payer.
Passer de l’infrastructure existante aux micro-services
Même si elle ont servi l’entreprise pendant des années, les anciennes infrastructures et les applications peuvent être problématiques. Rester sur l'infrastructure existante peut être synonyme de problèmes de stabilité, de manque de soutien, et de méthodes et outils laissés en arrière pendant que la concurrence progresse rapidement. L’utilisation ensemble de l’Infrastructure-as-code avec les micro-services est une nouvelle étape vers l'innovation continue. Elle nécessite de modifier le cycle de développement afin de s'adapter rapidement à l'évolution des marchés et aux besoins des clients. Si une entreprise ne reste pas innovante, elle sera rapidement remplacée par celle qui offre quelque chose de plus, peu importe la popularité passée.
Il faut remplacer ou modifier les applications monolithiques ou âgées par une architecture plus récente de micro-services, qui peut ouvrir la porte à un développement plus rapide et à l'innovation. Attention, cependant, il y a une forte barrière à l'entrée des micro-services. Ils ont leur propre ensemble de problèmes que doivent être gérés. En passant d'une infrastructure monolithe et du legacy à une architecture micro-services, il faudra disposer à la fois des bases de l'automatisation, de la gestion de la configuration, et mettre en place la livraison continue pour être en mesure de faire face aux charges de travail opérationnelles accrues qui seront apportée par les micro-services.
Ne pas trop se concentrer sur les outils
Avec la perspective de l’adoption de DevOps arrive la perspective d’utiliser de nouveaux outils qui donneront l’illusion qu’ils vont résoudre tous les problèmes. Cependant, avec l'introduction de ces nouveaux outils, vous devez également former le personnel à les utiliser, vous assurer qu'ils répondent aux exigences de sécurité, et bien sûr que les outils sont bien intégrés à l'infrastructure existante. Tout cela peut vous détourner de votre priorité : votre équipe.
Votre équipe et votre structure organisationnelle sont la clé de DevOps. Une fois que vous aurez la bonne structure en place, les processus de l'équipe suivront. Ce n’est donc qu’une fois que les processus sont définis, que vous pouvez déterminer quels sont les outils nécessaires pour répondre à ces processus. Les personnes qui composent votre équipe sont le facteur le plus important lors de la transition vers DevOps. S'ils ne sont pas formés sur les processus et les outils récemment mises en œuvre, alors il y aura confusion.
Résistance au changement
Le passage à DevOps peut sembler effrayant pour la majorité des membres de l'équipe et les intervenants clés. Pour répondre à cette inquiétude, DevOps peut être présentée comme une évolution des pratiques de développement plutôt qu'une révolution, plutôt également qu’un besoin de changer les individus eux-mêmes. Le changement DevOps ne se produit pas du jour au lendemain, il doit être progressif, afin de permettre à tous d'embrasser la culture DevOps et de se rendre compte des différentes façons dont ils peuvent contribuer au processus de développement.
Il est préférable de trouver un petit produit ou une tranche de la pile d'une application existante pour remodeler les pratiques vers DevOps. Ainsi les équipes peuvent voir les avantages à travailler dans l’action, et inciter d’autres équipes à organiquement adopter les nouvelles méthodes de travail.
Affrontement des outils Dev et Ops
C’est une autre problématique à résoudre, avant de les réunir les équipes Dev et Ops ont des outils et des métriques séparés. Aussi simple que cela puisse paraître, il est bénéfique pour réunir les deux équipes de chercher à comprendre où il est logique d'intégrer les outils qu'elles utilisent, et d'unifier les mesures qu'elles surveillent. Certaines équipes peuvent être réticentes à se séparer des outils existants, même s’ils sont technologiquement inférieurs, et qu’ils ralentissent l'ensemble de l'infrastructure en raison de problèmes de compatibilité.
Assurez-vous que les outils qui sont mis en œuvre sont alignés avec les objectifs de l'entreprise et ne distraient pas de l'objectif principal : les applications en cours d'élaboration.
Surmonter ces défis fondamentaux dès le début permettra un passage à DevOps plus lisse. Sur une période de temps réduite, chaque membre de l'équipe va s’habituer à la sensation de changement constant et à l'innovation. Une fois que Dev, Ops et d'autres équipes auront appris à coopérer, ils permettront de déterminer les moyens pour s'aider les uns les autres, et collaborer plus étroitement encore. Il vaut mieux subir l'inconfort du changement que de rester derrière la concurrence et ne pas être innovant.
Image d’entête 512295876 @ iStock mitay20