Selon le cabinet Forrester, 50 % des entreprises mettent actuellement en œuvre le DevOps, lequel a donc atteint sa vitesse de libération. Néanmoins, l’interprétation de sa mise en œuvre dépend de la maturité des entreprises en la matière. À ce titre, trois modèles émergent : le DevOps général, le DevOps orienté exploitation et le DevOps orienté développement.

Il est important d’évaluer le positionnement des initiatives et objectifs en termes de DevOps en tenant compte de l’importance de la transformation digitale au sein de son organisation. Si la transformation digitale est un passage obligé pour se développer rapidement, augmenter les revenus et continuer à devancer la concurrence, il faudra des pratiques, des outils et une culture DevOps bien conçus et proportionnels aux investissements dans le numérique. En revanche, si la société est encore en phase d’expérimentation pour évaluer le potentiel du DevOps, une approche différente sera nécessaire. En effet, une adoption trop large et trop rapide serait vouée à l’échec, en particulier si elle ne s’inscrit pas dans les priorités commerciales.

Le DevOps est donc une affaire de culture, d’outils, de compétences et de budget.

Une pluralité de cultures DevOps

La culture est l’un des éléments les plus importants lorsqu’une entreprise se lance dans des initiatives de DevOps. En effet, une culture DevOps implique une collaboration accrue entre les équipes chargées du développement et de l’exploitation, un sens du partage des responsabilités et un degré élevé d’autonomie.

À cet effet, les entreprises au stade du DevOps général se contentent de tâter le terrain pour déterminer si cette approche est pertinente pour elles. Elles adoptent le plus souvent une approche DevOps pour une ou deux applications présentant un risque modéré. La culture DevOps n’est généralement pas très mature dans ces entreprises : si les équipes de développement et d’exploitation impliquées dans ces applications collaborent effectivement, leurs réflexes naturels et leur approche les incitent encore à travailler de manière cloisonnée. Ces entreprises n’opèrent pas de réorganisation d’ampleur et la prise de décisions relative au déploiement et la gestion des modifications est centrée sur les processus, ce qui entrave l’autonomie des équipes.

De leur côté, les entreprises adoptant une approche DevOps orientée exploitation vont plus loin, en ceci que l’effort DevOps est soutenu par des équipes chargées de l’infrastructure et de l’exploitation (I&E) dotées de solides compétences. Ces dernières incitent les équipes de développement à partager la responsabilité du suivi d’un système tout au long de sa durée de vie. Les cloisonnements disparaissent progressivement et les équipes disposent de plus d’autonomie pour déployer de nouvelles modifications ou résoudre des problèmes très rapidement. Une culture DevOps orientée exploitation mise fortement sur l’automatisation, mais tend à considérer la fiabilité et la disponibilité des applications comme la finalité principale d’un environnement entièrement automatisé.

Enfin, au sein des entreprises DevOps orientées développement, il existe une étroite collaboration entre les équipes de développement et d’exploitation. L’équipe DevOps fait souvent partie d’une équipe plus large chargée des applications et adopte par conséquent les perspectives culturelles des développeurs. Ce modèle DevOps implique les équipes I&E dès le début du processus de développement. Celles-ci fournissent des informations concernant les exigences en lien avec le déploiement et la maintenance.

Ces entreprises optent pour la livraison en continu (CD – Continuous Delivery), une approche qui permet la mise en production des logiciels à tout moment, ainsi que pour l’intégration en continu (CI – Continuous Integration), garantissant la non-interruption d’une application lors de l’ajout de nouveau code. Les équipes de développement partagent la responsabilité de l’exploitation de leurs applications et contribuent à identifier des moyens de simplifier le déploiement et la maintenance à mesure qu’elles obtiennent plus de visibilité grâce aux applications de surveillance en production. En résumé, si le DevOps orienté développement et le DevOps orienté exploitation sont tous deux axés sur l’automatisation, le premier a tendance à privilégier le déploiement rapide des applications comme la finalité principale d’un environnement entièrement automatisé.

Une diversité d’outils et de compétences

L’automatisation est essentielle à la réussite du DevOps et élimine les frictions en réduisant les envois manuels et les validations entre le développement et l’exploitation. Afin d’automatiser leurs processus, les entreprises utilisent donc des outils pour l’approvisionnement et la configuration de l’infrastructure, l’intégration des configurations, le test des logiciels et la surveillance de l’infrastructure et des applications. Elles ont également recours à des outils afin de déployer rapidement des applications pour des environnements spécifiques, notamment pour la simulation, la production et les tests.

Les entreprises au stade du DevOps général n’utilisent pas beaucoup d’outils spécifiques au DevOps. D’ailleurs, leurs collaborateurs sont généralement novices dans leur utilisation. Ces derniers s’appuient sur certains de ces outils pour profiter de leurs fonctionnalités d’automatisation / d’orchestration de base. Par exemple, ils peuvent apprécier les outils VMware existants, les outils d’exploitation d’administration informatique de prestataires tels qu’IBM et CA, ou se débrouiller avec les outils de base livrés avec Docker.

En parallèle, les entreprises DevOps orientées exploitation commencent à tirer parti de techniques d’automatisation et d’orchestration avancées, bien qu’elles s’appuient encore principalement sur des outils et technologies propriétaires pour gérer une grande variété d’applications. Elles expérimentent également les éditions Open Source afin de se familiariser rapidement avec ces outils, notamment Puppet, Chef, Ansible et tout un éventail de solutions d’automatisation et d’approvisionnement qui constituent l’épine dorsale des opérations DevOps.

Les entreprises DevOps orientées développement, quant à elles, ont recours à divers outils d’automatisation. Elles ont développé un processus itératif fiable pour la publication et le déploiement des logiciels. Elles utilisent des éditions Entreprise intégrant des fonctionnalités avancées et l’assistance premium de l’éditeur. Comme pour le modèle orienté exploitation, les acteurs du DevOps orienté développement savent utiliser des outils d’automatisation infrastructurelle tels que Puppet et Ansible, ainsi que des outils de surveillance comme Nagios. Outre ces solutions orientées configuration, ils disposent également de nombreux outils d’automatisation CI et CD tels que GitHub, GitLab et Jenkins. Ils utilisent en standard l’ensemble des outils répondant à leurs besoins spécifiques. Ils sont en mesure de développer rapidement de nouvelles applications, de les déployer tout aussi vite à l’aide d’une infrastructure correctement configurée et de s’assurer qu’elles fonctionnent en continu et conformément aux attentes.

Un niveau d’investissement variable

Découlant de la culture et des outils à disposition des équipes, le niveau d’implication et d’investissement dans le DevOps varie d’un modèle à l’autre.

Si les entreprises adeptes du DevOps général testent cette approche uniquement pour quelques applications et réutilisent les solutions existantes, elles ne disposent pas d’un budget dédié aux outils et pratiques DevOps. Elles n’en sont qu’au tout début du DevOps et lui consacrent principalement des effectifs et du temps. Elles différent donc des entreprises ayant opté pour le DevOps orienté exploitation, qui ont commencé à investir dans des techniques d’automatisation et d’orchestration avancées, en particulier dans des outils permettant aux équipes I&E d’automatiser tous les aspects des opérations infrastructurelles, notamment le déploiement, la configuration et la surveillance.

Les entreprises misant sur le DevOps orienté développement disposent d’un budget dédié aux investissements dans les processus, les outils et les structures d’équipe en place. Elles consacrent également des fonds à la formation de leurs collaborateurs afin de s’assurer qu’ils maîtrisent les dernières technologies et disposent des compétences adéquates pour exploiter un environnement DevOps efficace. Ces entreprises disposent souvent d’un budget distinct de ceux traditionnellement alloués aux applications et à l’I&E. Du point de vue du management, même si l’équipe peut dépendre (directement ou indirectement) d’une équipe d’applications plus large, sa valeur est reconnue et elle dispose pour cette raison d’un budget dédié.

Choisir son modèle DevOps en fonction de ses objectifs de transformation

Avant d’opter pour l’un de ces modèles, toute entreprise doit tenir compte des objectifs qu’elle s’est fixée à la suite d’initiatives de modernisation et de transformations digitales. Si cette dernière se révèle être un enjeu crucial pour la réussite de son activité, le modèle DevOps doit être conforme à l’ampleur et aux caractéristiques de cette transformation en termes de talents, de processus et d’outils.

________
Sidney Rabsatt est Vice President of Product Management, NGINX