Le mouvement DevOps se présente comme une culture impliquant les process, l’outillage et l’organisation. Si les deux premiers axes semblent couverts par des démarches méthodologiques et techniques éprouvées (lean, agilité, automatisation, craft …etc), l’axe organisationnel manque – quant à lui – d’abaques fiables.
De ce fait il devient primordial avant d’entamer une transition inspirée par la culture DevOps, d’identifier le modèle organisationnel en place et ainsi cibler le pattern le plus adapté au mode de fonctionnement de notre structure de sorte à réduire la résistance au changement et d’effectuer une migration fluide et pragmatique.
Dans ce qui suit, nous allons exposer quelques modèles usuellement rencontrés, les évaluer et tenter de donner une appréciation de leur adaptabilité dans une démarche de transformation DevOps
Modèle historique où une équipe dédiée - généralement connue comme l’équipe d’intégration - représente une entité de liaison entre les développeurs et les opérationnels. Son rôle consiste à connaitre et maitriser les offres mises à disposition par les opérationnels en matière d’infrastructure et d’outillage, et sont la garants du bon déroulement des livraisons des projets, et doivent - par conséquent - se maintenir à jour par rapport aux nouvelles fonctionnalités développées.
L’intégrateur a ainsi un rôle de release manager, qu’il soit dédié à un projet ou mutualisé pour un domaine fonctionnel ou un ensemble de projets.
Classification : DevOps Anti Pattern
Dans cette approche, une équipe DevOps transverse est mise en place afin de répondre aux besoins des projets sur des problématiques de provisionning ou de delivery. L’objectif stratégique consiste à réaliser l’apport de valeur DevOps sans pour autant perturber l’organisation en place ou effectuer des changements de fond
Classification : DevOps Compatible
Recommandation : Ce modèle est un bon déclencheur qui permet de tester l’organisation et fournir des abaques pour un processus de transformation a plus grande échelle
Ce pattern est assimilé à une organisation où les développeurs prennent à leur charge partie voire l’ensemble des tâches de provisionning, configuration et gestion des environnements techniques, ainsi que d’autres tâches habituellement prises en charge par des opérationnels
Il est également question de ce type de modèles lorsque les opérationnels sont complétement intégrés dans l’équipe de développement
Ce modèle peut être observé aussi bien dans des petites structures (type startups) que chez de grands acteurs IT comme Facebook ou encore Netflix. Le point commun étant le focus sur un (ou peu) de produits / services
Classification : Pattern ou Anti Pattern en fonction du contexte
Recommandation : Dans une approche orientée produit, ce pattern fait ressortir la symbiose entre développeurs ou opérationnels qui partagent les mêmes problématiques. Cependant il vaut mieux éviter ce pattern si on est dans un modèle d’équipes gérant plusieurs produits
Survient lorsqu'une équipe OPS traditionnelle souhaite surfer sur la vague DevOps en espérant en tirer bénéfice en termes d’amélioration de l’automatisation et réduction du TTM
Cette équipe – rebaptisée DevOps pour le coup – reste néanmoins dans un silos organisationnel qui ne respecte pas l’esprit de collaboration transversale et de partage des responsabilités inhérents à la culture DevOps
Classification : DevOps Anti Pattern
Ce modèle présente une communauté de personnes motivées qui prennent à leur charge la tâche d’évangélisation et de promotion de la démarche DevOps et des outils techniques et méthodologiques qui l’accompagnent.
De manière générale, cela peut être issu d’une émulation collective (communauté spontanée) ou d’une décision stratégique qui conduit à identifier les évangélistes et les positionner dans les différentes équipes concernées.
Classification : DevOps Compatible
Certaines organisations font le choix d’externaliser leurs tâches opérationnelles, soit par le biais d’un prestataire de service, ou bien en exploitant des offres de cloud public (Amazon EC2, Azure …etc.)
Une variante de ce modèle consiste à s’appuyer sur une équipe OPS interne, transverse à la structure et qui propose ses service sous forme d’infrastructure as a service
L’ensemble ou partie des équipes de DEV doit, dans ce cas de figure, acquérir la maîtrise des offres IAAS afin de pouvoir piloter son delivery. Les tâches de support et de maintenance étant prises en charge de manière transparente par le fournisseur de l’offre IAAS
Classification : DevOps Compatible
Il est possible de se trouver dans une organisation où une démarche de rapprochement des équipes opérant dans un même objectif fonctionnel a déjà eu lieu sans pour autant s’inscrire dans une stratégie de transformation stratégique.
Il est donc commun de voir des rapprochements entre Développeurs applicatifs et les équipes de support et d’optimisation des middlewares ou des DBA.
Ces équipes peuvent être partie ou totalement identifiées dans l’organisation comme des équipes OPS, même si au final, ils sont souvent sollicités pendant le cycle de développement.
Classification : DevOps Compatible
Recommandation : Cette démarche peut être une entrée en matière pour diffuser une culture DevOps au sein de l’organisation. Il s’agit néanmoins à ne pas tomber dans le piège des silos d’activité