Les frameworks DevOps

avril 20, 2021

Découvrir les frameworks DevOps

Comme nous l’avons présenté précédemment, DevOps est avant tout une histoire de culture et une philosophie. Et comme dans toute pensée philosophique qui se respecte, il existe plusieurs courants différents. Three Ways – Calms et Accelerate sont les plus connus.

 

Three Ways

Ce courant a été popularisé grâce au « Phoenix Project » et le « DevOps Handbook ». Le « Three Ways » – les 3 Principes – se base sur l’idée que les process et les pratiques DevOps viennent de 3 principes fondateurs : The three ways

 

1er principe

Ce principe se concentre sur l’optimisation générale du « work flow », en adoptant une approche holistique des processus depuis la démarche initiale jusqu’au déploiement et au retour client. Ce principe permet d’appréhender les processus de façon globale et non plus en silos traditionnels.

 

2ème principe

Le point clé ici concerne l’importance du feedback afin de permettre la détection et la correction rapide de tous les problèmes ou bug éventuels avant qu’ils n’arrivent jusqu’à l’utilisateur. Ce principe sous-tend la création d’objectif commun et la reconnaissance de difficultés commune entre les Devs et les Ops mais aussi la mise en place d’une télémétrie efficace sur l’ensemble de la chaîne de valeur.

 

3ème principe

Sans doute le principe le plus important puisqu’il s’agit de la mise en place d’une culture de la collaboration et de l’expérimentation. Le concept fondateur du DevOps est le « Continuous Learning ». Répétition et pratique sont encouragées, y compris grâce à des outils comme « Chaos Monkey » servant à tester la résilience des infrastructures. Ici, il ne s’agit pas de la culture du Héro mais bien celle de l’amélioration continue, en laissant à chacun la liberté d’admettre ses erreurs ou ses questionnements. Cette tolérance de l’erreur crée une sécurité psychologique qui favorise l’expérimentation et l’amélioration.

Keep Calms

Le modèle CALMS est principalement utilisé pour évaluer si votre organisation est assez mature pour adopter la culture DevOps ou plus simplement évaluer la progression de l’initiative en cours. CALMS est l’acronyme représentant les cinq piliers de ce modèle : Culture – Automatisation – Lean – Mesure – Sharing

 

Culture

La culture est la partie la plus importante de ce modèle et du DevOps en général. Il s’agit donc de mettre en place une culture de la communication et de la collaboration mais aussi d’apprentissage continu. L’objectif est d’encourager un état d’esprit fondé sur des hypothèses et une démarche scientifique, remplaçant ainsi une culture de la peur par une culture du partage où les problèmes ne sont pas cachés sous le tapis, mais identifiés et la solution trouvée de façon collégiale.

 

Automatisation

Ce pilier est le plus facile à appréhender puisqu’il est presque systématiquement associé au concept de DevOps. Le DevOps est même souvent réduit à la notion d’automatisation, mais comme l’a très bien exprimé Christopher Little « DevOps ne se limite pas à l’automatisation, tout comme l’astronomie ne se limite pas aux télescopes. ». Mais attention l’automatisation n’en reste pas moins critique, tout système manuel représente un risque majeur pour les entreprises. C’est pourquoi « Continuous Integration » et « Continuous Deployment » sont largement adoptés afin de fluidifier et favoriser les déploiements. Netflix est très connu pour l’efficacité de son process de déploiement (pas moins d’une centaine par jour).
La mise en place du « As-a-Service » comme l’infrastructure as a Service permet aussi de créer de l’environnement à la demande.

 

Lean

DevOps repose aussi sur un grand nombre de principe Lean qui cherchent à créer de la valeur pour le client final grâce au « system thinking ». La philosophie du Lean prévoit une élimination du gaspillage et la maîtrise de la chaîne de valeur grâce à des outils comme la Value Stream Map (VSM)

 Mesure

DevOps est aussi une démarche scientifique et en tant que tel nécessite d’être évaluée par le biais d’une collecte de données et de métriques solides (SLA-SLO-SLI) permettant la prise de décisions d’amélioration sur des informations éclairées. Avant de commencer une révision totale des métriques d’une organisation, il est important de considérer dans un premier temps les mesures existantes pour en faire un inventaire et vérifier leur compatibilité avec la démarche DevOps. Et ensuite seulement mettre en place de nouvelles mesures en adéquation avec les nouveaux outils et process mis en place.

 

Sharing

Ce dernier principe est intrinsèquement lié à la culture du DevOps qui repose sur la collaboration et le partage. Ce principe reprend l’adage « Knowledge is the currency of the new economy”. DevOps se concentre sur la transparence et le partage de connaissances à travers les silos, au-delà du mur de la confusion (l’incompréhension et la non-communication entre les équipes dev et Ops). Les équipes DevOps se concentrent sur des objectifs communs, éliminant ainsi les frictions, et partageant ainsi les responsabilités.

Deployment celebrations should be about the value of new features, not joyful relief that nothing went wrong” — Rebecca Parsons

Accelerate

Ce modèle est défini dans le livre « Accelerate : Building and Scaling High Performing Technology Organization » par Nicole Forsgreen, Jez Humble et Gene Kim.

Points clés : Au sein des organisations les initiatives de la Transformation Technologique sont à des stades différents mais surtout, bien que le DevOps accélère la transition technologique, cette transition est très fréquemment sous-estimée, en particulier par les dirigeants. La clé pour vérifier l’efficacité des changements opérés est de mesurer et comprendre les éléments essentiels en se focalisant sur les capacités et non pas sur la maturité des entreprises, par le biais de 4 facteurs.

Modèle de maturité et modèle de capacités : la battle

1er facteur : les objectifs

Modèle de Maturité : ici, l’objectif est d’aider les organisations à « arriver » à un stade de maturité et une fois ce stade atteint… Mission accomplie. Le problème est que cette vision est antagoniste avec l’objectif DevOps qui se concentre sur le paradigme de l’amélioration continue.

Modèle des capacités : Prise en compte de la constante évolution des technologies et des attentes business. Ce modèle prévoit que l’évolution ne s’arrête jamais.

 

2ème facteur : dimensions

Modèle de Maturité : ce modèle est construit de façon linéaire, prévoyant un ensemble de technologies, d’outils et de ressources identiques quelles que soient les équipes et les entreprises. Evidemment, le problème est que toutes les entreprises ne sont pas identiques.

Modèle des capacités : construit de façon dynamique et multidimensionnelle, ce modèle prévoit la possibilité pour les organisations d’avoir une approche personnalisée de l’amélioration en se concentrant sur les ressources que les organisations jugent comme les plus bénéfique selon leurs contextes actuels.

 

3ème facteur : mesure

Modèle de Maturité : La mesure des performances dans ce modèle se contente de mesurer les performances techniques sans les lier à des résultats quelconques. Autant dire qu’il s’agit plus de Vanity metrics qu’autres choses, puisqu’elles n’apportent aucune information sur l’impact business.

Modèle des capacités : la mesure ici est concentrée sur des objectifs de haut-niveau et sur la façon dont les capacités et ressources permettent d’améliorer les résultats de l’entreprise.

 

4ème facteur – agilité

Modèle de Maturité : Défini un niveau figé de capacités à atteindre autant au niveau des ressources, des processus et de l’organisation.

Modèle des capacités : ce modèle est plus fluide et permet de s’adapter à des environnements en constante mutation et offrent aux organisation la possibilité de se concentrer sur les développements des compétences pour rester compétitif.

Quel que soit le modèle utilisé il y a des désaccords sur les capacités à évaluer. Accelerate propose une série de 24 facteurs clés qui contribuent de façon significative à améliorer les performances de développement et la livraison de logiciels. Ces capacités sont divisées en 5 catégories : livraison continue, Architecture, Produits et process, Lean management et monitoring et enfin culture.

En conclusion

En analysant les différents modèles présentés dans cet article, plusieurs thèmes apparaissent comme récurrents : la Culture – la Collaboration et l’amélioration continue. Ces trois concepts de haut niveau englobent un grand nombre des principes présentés dans ces modèles.

You may also like

DevOps & le Gaspillage Lean

DevOps & le Gaspillage Lean

DevOps adopte le même objectif que le Lean, à savoir réduire ou éliminer les gaspillages, et en informatique les gaspillages se...

Les pratiques DevOps

Les pratiques DevOps

DevOps est un ensemble de pratiques qui rationnalisent les processus de développement logiciel (Devs) et de gestion de...