Avec la révolution digitale, les entreprises sont sous pression. Au risque de perdre leurs avantages concurrentiels historiques, elles sont invitées à opérer au plus vite leur transformation numérique. Pour rester compétitives, le délai de mise sur le marché de leurs produits ou services innovants doit être réduit de façon radicale. La réponse à cet impératif tient en six lettres : DevOps.
DevOps, trait d’union entre les développeurs et la production
Malgré la popularité grandissante de ce buzzword, il est bon de rappeler ce qu’est DevOps. Il s’agit littéralement de la contraction des mots anglais « development » (développement) et « operations » (exploitation).
Méthodologie ? Boîte à outils ? Processus ? Non. Le terme DevOps fait plutôt référence à une culture qui vise, au sein d’une direction des systèmes d’information (DSI), à améliorer la communication et la collaboration entre, d’un côté, les équipes en charge du développement des applications (les Devs) et, de l’autre, celles responsables de leur mise en production et de leur maintien en condition opérationnelle (les Ops).
Faire dialoguer ces deux populations est un défi d’autant plus grand qu’elles ont pour coutume de travailler en silos. Elles ne partagent pas mêmes priorités, les Devs pensent vitesse et court terme, tandis que les Ops raisonnent stabilité et long terme.
Une vitesse de déploiement des applications exceptionnelle
Aujourd’hui, DevOps n’est pas seulement un buzzword, c’est une réalité opérationnelle. Une réalité qui se mesure par des gains tangibles quand les différentes équipes du département IT parviennent à resserrer leurs liens en se conformant aux principes de DevOps.
L’étude « 2013 State of DevOps Report » de PuppetLabs et IT Revolution Press conduite auprès de 4000 Devs et Ops révèle ainsi que les équipes passées à DevOps déploient 30 fois plus fréquemment, 8 000 fois plus vite, et rencontrent 50% moins d’incidents. Et quand elles font face à des dysfonctionnements, elles les résolvent 12 fois plus rapidement.
L’extension des méthodes agiles aux équipes de l’exploitation
Voilà maintenant cinq ans que le terme DevOps a fait son apparition. Il a été inventé par un « Ops », le Belge Patrick Debois. Celui-ci était frustré de voir à quel point l’agilité avait révolutionné la culture des équipes de développement – celle des « Devs » -, alors que les équipes de production et d’exploitation IT – celle des « Ops » – accusaient en la matière un sérieux retard.
DevOps est de fait l’extension des méthodes agiles au domaine de l’exploitation. Maîtrisées depuis une dizaine d’années, les méthodes agiles, telles Scrum, facilitent l’intégration continue des besoins des utilisateurs au sein des applications, grâce à des cycles de développement courts, sur un mode itératif et collaboratif, avec une mise des développeurs au contact régulier des utilisateurs.
Or, la mise en production des applications n’est possible que lorsque l’infrastructure est prête à les accueillir. « Avec une méthode agile comme Scrum, on a l’impression de faire des cycles courts de production, explique Fabrice Bernhard, co-fondateur et Directeur technique de Theodo, une société de service experte en développement agile web et mobile. En réalité, on produit des fonctionnalités qu’on empile en recette ou en pré-production, mais qui ne passent jamais en production parce que le département Ops n’est pas du tout dans la boucle. »
DevOps, inscrit dans l’ADN des géants du web
Pour combler cet écueil, les entreprises ont intérêt à s’inspirer des pratiques des pure players du Web, comme Google, Amazon, ou Facebook, tous adeptes de la première heure de DevOps, avant même que le terme n’apparaisse. Ces sociétés qui n’existaient pas il y a encore 20 ans sont aujourd’hui des acteurs majeurs. « Ce qui distingue ces géants de l’internet, c’est la vitesse à laquelle ils se développent », explique Fabrice Bernhard, et du même coup, c’est la vélocité avec laquelle ils sont capables de déployer leurs nouveaux services applicatifs.
Amazon déploie ainsi une nouvelle version logicielle toutes les 11,6 secondes, soit plus de 300 fois par heure. Une prouesse impressionnante, et même carrément renversante quand on sait qu’un seul déploiement impacte en moyenne 10 000 serveurs !
Des chiffres à faire pâlir les DSI des entreprises traditionnelles qui avaient jusqu’à récemment pour habitude de n’effectuer leurs mises en production que seulement quelques fois dans l’année avec à chaque palier un contenu fonctionnel énorme à mettre en production. Une démarche parfaitement contraire aux évolutions légères et régulières que devrait pratiquer l’entreprise pour gagner en agilité.
L’automatisation au cœur de l’efficacité de DevOps
Pour atteindre de tels résultats, la culture DevOps s’appuie sur toute une batterie d’outils (voir ci-dessous) automatisant le passage des différentes étapes du cycle de vie des applications, ainsi que le déploiement des infrastructures d’exécution. L’investissement dans cet outillage permettant l’automatisation des processus de mise en production des applicatifs (installation des composants, allocation des ressources, etc.) et de leur enchaînement est capital.
Avec DevOps, on est entré dans une phase d’industrialisation du métier de l’ingénierie système. Le métier des Ops d’il y a cinq ans n’a rien à voir avec celui d’aujourd’hui. Dans peu de temps, les Ops qui ne sauront pas maîtriser le DevOps, et les outils associés, ne seront plus compétitifs sur le marché. » Et de poursuivre : « avant, être Ops consistait à installer des serveurs dans des datacenters. Désormais, on obtient le même résultat en une ligne de commande. Les gains liés à l’industrialisation sont monstrueux ! »
Des gains qui commencent à avoir une résonance auprès des directions générales. Voici quelques chiffres éloquents : « Tandis que 36% des initiatives DevOps viennent encore du terrain, 27% d’entre elles, un chiffre en forte progression, sont impulsées par le top management. » Ce qui amène Fabrice Bernhard à conclure par une prophétie : « dans quelques années, je prédis l’entrée du CTO au Comex. »