Le DevOps c’est quoi ?
Le mouvement DevOps voit sa création dans les années 2007-2009. On doit le terme à Patrick Debois, qui est aujourd’hui considéré comme l’un des pères fondateurs du mouvement. D’un point de vue strictement littéral, il s’agit de la contraction des termes development et operations.
Les définitions varient, mais l’idée principale est que le DevOps est un ensemble de pratiques, d’outils et une philosophie de travail. Son objectif principal est de permettre de se concentrer sur la rapidité de livraison via les pratiques Agiles (telles que le développement itératif, les cycles courts) en utilisant une approche orientée système.
En d’autres termes, le DevOps met l’accent sur les individus en se posant comme un état d’esprit sur la manière d’identifier les problèmes, les corriger et les prévenir. Tout cela dans le but d’améliorer la collaboration entre les équipes de développement et les équipes opérationnelles.
Le DevOps en pratique
En pratique, le DevOps se concentre sur différents facteurs définis par l’équipe tels que le S.L.A. (Service Level Agreement, ce que vos clients attendent de votre projet), les S.L.O. (Service Level Objectives, les objectifs de votre équipe) et les S.L.I. (Service Level Indicators, les indicateurs chiffrés des performances de votre projet) afin d’améliorer les performances, la disponibilité et implicitement la rentabilité des applications.
Philosophie DevOps
La philosophie DevOps a pour objectif de supprimer les barrières entre les équipes applicatives et les équipes opérationnelles. En DevOps, les deux équipes travaillent de concert pour optimiser la productivité des développeurs et la fiabilité des systèmes. Ils communiquent fréquemment, améliorent leurs performances et la qualité des services à disposition de leurs clients. Les équipes ne se limitent pas à leurs rôles précis, et s’emparent des problématiques afin de répondre aux besoins.
Si on devait résumer le DevOps en quelques points, nous aurions :
– Collaboration, visibilité et objectif commun ;
– Une ouverture de ses responsabilité et de son périmètre
– Des cycles de livraison plus courts ;
– De l’apprentissage continu.
Pratiques et outils DevOps
La culture DevOps est particulièrement centrée sur les outils et leurs pratiques. Ces derniers impliquent tout ou partie des pratiques suivantes :
– Code : pratique des code review, utilisation des outils de versionning ;
– Build : intégration continue, retours sur les statuts des builds ;
– Test : outils de tests continus, avec suivi en temps réel de l’état des applications
– Packaging : utilisation des repository d’artefact ;
– Livraison : gestion des évolutions, validation des releases, automatisation de la livraison ;
– Configuration : gestion et configuration de l’infrastructure, utilisation d’outils d’infrastructure as code ;
– Monitoring : monitoring des performances applicatives, monitoring continu, tests end-to-end.
Les avantages du DevOps
On peut tirer plusieurs avantages de l’approche DevOps. En premier lieu, la livraison et l’intégration continue permettent de livrer plus vite, mieux et de manière plus fiable. On y gagne également en évolutivité, grâce à l’automatisation et le contrôle de l’infrastructure. Une meilleure collaboration dans les équipes, un des objectifs centraux du DevOps étant l’abolition du cloisonnement entre les équipes. Et bien sûr la sécurité et la fiabilité des systèmes.
“Nous pratiquons le DevOps dans l’équipe dans laquelle je travaille et cela nous a permis de rapidement monter en compétence sur les plateformes sur lesquelles nous déployons nos applications. Je pense que l’un des avantages les plus notables est que nous sommes beaucoup plus conscients des impacts possibles de nos changements, ce qui rend l’analyse et la correction beaucoup plus rapides.” nous livre Domhnall, Développeur fullstack senior chez Daveo.
Et les autres (SRE, DevSecOps) ?
Il existe aussi d’autres termes qui sont en lien avec le DevOps, comme par exemple le DevSecOps (de development, security, operations) qui implique les équipes de test et de sécurité de la même manière que les développeurs et les opérations. Le DevSecOps implique de penser à la partie sécurité et test de l’application dès le début de son développement.
Le S.R.E. ou Site Reliability Engineering, terme souvent employé par Google, se rapproche énormément des pratiques du DevOps. Il est souvent mentionné comme étant une implémentation du DevOps. Son objectif est de créer des systèmes hautement évolutifs (scalable) et fiables.
Il va de soi que le DevOps, en tant qu’ensemble de pratiques, peut être implémenté de beaucoup de manières différentes, comme l’agilité par exemple. On retrouve des rôles spécifiques “DevOps” dans certaines équipes. D’autres projets vont se diriger vers une approche plus globale, en implémentant une “philosophie DevOps” dans toutes les équipes techniques, et ou chacun participera aux problématiques opérationnelles.
Voilà, le DevOps, ce n’est pas un poste ou une fiche de mission, mais une manière de travailler, différente de l’approche plus traditionnelle build / run. Bien sûr, cela ne s’applique pas à toutes les organisations. C’est en soit même difficile à implémenter à la lettre dans toutes les organisations. Mais, comme pour l’agilité, ces fondements sont applicables de différentes manières.