Comprendre la Philosophie DevOps : Une Introduction

Guillaume Vincent
Guillaume Vincent
Comprendre la Philosophie DevOps : Une Introduction
Table des matières
Table des matières

De nos jours, le terme "DevOps" est souvent utilisé comme un mot à la mode, suscitant diverses interprétations et compréhensions. Pour certains, il s'agit simplement d'un ensemble d'outils ou de pratiques, tandis que pour d'autres, c'est une approche radicalement nouvelle pour gérer le développement et l'exploitation des logiciels.

Dans cet article, nous allons plonger dans le concept de DevOps et mieux comprendre la problématique qu'il cherche à résoudre. Vous découvrirez ainsi pourquoi DevOps est devenu un pilier essentiel de la transformation numérique des entreprises.

Aux Origines du DevOps

Comprendre les différents acteurs Dev et Ops

La capture d'écran du "Wall of Confusion"  issue d’un talk d’Andrew Clay Shafer présente un mur avec d'un côté les équipes de développement (Dev) et de l'autre les équipes d'exploitation (Ops). Les équipes de développement demande du changement tandis que les équipes d'exploitation demandes de la stabilité
Capture d’écran du "Wall of Confusion" issue d’un talk d’Andrew Clay Shafer

Le mur de la confusion est une image fréquemment utiilisée pour illustrer le fossé qui existe entre les équipes de développement (Dev) et d'exploitation (Ops). Dans l'organisation IT traditionnelle, les deux équipes sont scindées. C'est ce qu'on appelle une organisation en silos.

Du côté des Dev, la priorité est de collecter les exigeances métiers, d'implémenter, tester et livrer des fonctionnalités tout en recherchant constamment de nouvelles technologies et outils pour innover.

En revanche, les Ops sont chargés de déployer les applications en production, de garantir la stabilité et la disponibilité des infrastructures et d'exercer un contrôle sévère sur les changements apportés.

Il y a donc des objectifs antagonistes entre les deux équipes :

  • Les Devs cherchent à livrer le plus rapidement de nouvelles fonctionnalités dans le but d'innover
  • Les Ops cherchent veulent garantir la stabilité, rationnaliser et garantir la qualité des changements

Il en resulte donc des conflits d'intérêts entre Devs et Ops :

  • Les Devs blâment les Ops pour les retards et les problèmes de livraisons
  • Les Ops tiennent les Devs pour responsables des incidents en production dûs à une mauvaise qualité

Livraisons en production : le point de friction

Les équipes business sont en contact avec le marché et demandes aux développeurs d'implémenter rapidement de nouvelles fonctionnalités. C'est un enjeu vital pour rester compétitif. Avec les méthodes Agiles, les Devs peuvent implémenter rapidement les demandes mais leurs rythmes de livraison ne suivent pas.

Toute fonctionnalité développée mais non livrée en production n'existe pas pour les clients.

Pour livrer ces fonctionnalités aux clients, il est nécessaire de les déployer en production. Dans une organisation en silo, la mise en production (MEP) est assurée par les Ops. Cette étape délicate nécessite une planification minutieuse et comporte un risque d'indisponibilité de l'infrastructure existante.

Les Devs se concentrent sur leurs développements et les testent sur un environnement simplifié, bien différent de la production. De l'autre côté, les Ops n'ont pas toujours toutes les informations sur le logiciel pour l'opérer et gérer les imprévus de mise en production. Il peut en résulter plusieurs aller-retours entre les deux parties avant de livrer la fonctionnalité en production et de la tension.

Ce diagramme montre les étapes d'un cycle d'itération pour une fonctionnalité logicielles. es Devs effectuent dans l'ordre l'implémentation, les tests et la QA. Ensuite les Ops effectuent le déploiement, la maintenance et la surveillance. Le point de friction est le passage de responsabilité entre les Devs et les Ops
Vue d'un cycle d'itération d'une fonctionnalité logicielle

Originellement, les méthodes Agiles se cantonnent aux développements et pas de bout en bout de la chaîne de valeur. Pour example, c'est environ 2 à 3 mise à jour par an pour une application dans les année 1990-2000. La fréquence de livraison est donc un point bloquant pour rester compétitif et innover sur un marché tendu. On peut voir DevOps comme une extension de l'Agilité de bout en bout.

Livrer rapidement et fréquemment en production est essentiel pour rester compétitif et répondre aux besoins changeants des clients.

Une équation entre innovation et stabilité

Un "Time to Market" (TTM) rapide est impératif pour rester compétitif dans un marché où la rapidité est essentielle. Le TTM, qui représente le délai entre l'idée initiale et sa mise sur le marché, permet de répondre efficacement aux besoins changeants des clients et de devancer la concurrence.

Image présentant ce qu'est le Time to Market (TTM) qui est la différence de temps entre l'idée et sa mise sur le marché
Le Time to Market est le delta entre l'idée initiale et sa mise sur le marché

D'autre part, maintenir un "Mean Time to Repair" (MTTR) bas est crucial pour limiter les incidents et prévenir tout impact sur les opérations commerciales. Le MTTR est le temps nécessaire à la remise en fonctionnement normal d'un système après une défaillance :

Schéma présentant ce qu'est le MeanTime to Repair (MTTR). Il s'agit du temps nécessaire à la remise en fonctionnement normal d'un système après une défaillance. Cela inclut un temps de diagnostic et de réparation
Le MeanTime to Repair (MTTR) est le temps nécessaire à une remise en fonctionnement normal d'un système après une défaillance

Cependant, il est primordial de souligner que livrer du logiciel plus rapidement en production ne doit en aucun cas compromettre la qualité. La qualité du logiciel reste un pilier essentiel pour assurer la satisfaction des clients et maintenir la réputation de l'entreprise.

Ainsi, comment relever le défi de répondre à la demande croissante de nouvelles fonctionnalités tout en maintenant la stabilité et les performances élevées du système ? C'est là que réside la véritable équation à résoudre dans un environnement de développement logiciel exigeant et véloce.

Livrer du logiciel plus rapidement en production ne doit jamais sacrifier la qualité.

La Philosophie DevOps

Comment définir DevOps dans le contexte actuel ?

Après avoir examiné le contexte et les défis, le rôle essentiel du DevOps devient évident. La définition suivante prend tout son sens :

Le DevOps est bien plus qu'une simple méthodologie ; c'est un mouvement, une philosophie axée sur la collaboration et la communication étroite entre les équipes de développement (Dev) et d'exploitation (Ops), appuyée par un ensemble d'outils et de pratiques.

Contrairement à la tendance actuelle qui abuse du terme, le DevOps ne se limite pas à un simple titre de poste ou à des outils transformant les Ops en une sorte de "super administrateur système".

Comment est apparu DevOps ?

Patrick Debois est souvent considéré comme l'un des pionniers du mouvement DevOps. En 2009, il a organisé la première conférence "DevOpsDays" à Gand, en Belgique, qui a réuni des développeurs et des professionnels des opérations pour discuter des pratiques émergentes de collaboration et d'automatisation. Cet événement a été crucial pour la diffusion et la popularisation des concepts DevOps à travers le monde.

Parallèlement, en 2009 également, John Allspaw et Paul Hammond, travaillant chez Flickr, ont présenté lors d'une conférence une approche novatrice basée sur la collaboration et l'automatisation entre les équipes de développement et d'opérations. Cette approche, nommée "DevOps", visait à surmonter les silos organisationnels et à favoriser une culture de collaboration continue pour accélérer la livraison des logiciels tout en garantissant leur qualité et leur fiabilité.

L'initiative de Patrick Debois et la présentation de John Allspaw et Paul Hammond chez Flickr ont été des catalyseurs importants pour le développement du mouvement DevOps, aidant à le propager et à le populariser au sein de la communauté technologique.

Quels sont les objectifs de DevOps et comment sont-ils atteints ?

Les objectifs du DevOps visent à transformer les pratiques traditionnelles de développement et d'exploitation pour favoriser une culture de collaboration, d'efficacité et de création de valeur.

Voici quelques-uns de ces objectifs :

  1. Réconcilier Ops & Dev : Le DevOps vise à surmonter les cloisonnements entre les équipes de développement (Dev) et d'opérations (Ops), favorisant ainsi une collaboration étroite tout au long du cycle de vie du logiciel.
  2. Casser les Silos : Le "mur de la confusion" entre les équipes est démoli, permettant une communication transparente et une collaboration fluide entre les différentes fonctions de l'organisation.
  3. Aligner les objectifs autour d'un but commun : La création de valeur devient l'objectif central autour duquel les équipes s'alignent, favorisant une vision commune et une compréhension partagée des priorités.
Le succès d'une demarche DevOps repose d'abord sur la culture, l'organisation et la méthodologie.

Pour accomplir ces objectifs, DevOps passe par 3 canaux pour la création de valeur :

  • Collaboration : Encourager la coopération entre les équipes pour optimiser les processus et maximiser l'efficacité
  • Time to Market rapide : Accélérer le déploiement des applications et fonctionnalités sur le marché pour répondre aux besoins changeants des utilisateurs
  • Produits de qualité (Time to Repair faible) : Assurer la qualité des produits et réduire les délais de résolution des problèmes, garantissant ainsi une expérience utilisateur optimale et une réactivité accrue aux incidents

Quels sont les piliers fondamentaux pour une adoption réussie de DevOps ?

Le modèle CALMS représente les cinq piliers essentiels pour une adoption réussie de DevOps :

  1. Culture : Au cœur du modèle CALMS, la culture reflète les valeurs, les croyances et les comportements partagés au sein de l'organisation. Une culture propice à la collaboration, à la confiance et à l'innovation est essentielle pour la mise en œuvre réussie de DevOps.
  2. Automatisation : La clé de voûte de la transformation DevOps, l'automatisation, rationalise les processus, accélère les déploiements et réduit les erreurs humaines. En libérant les équipes des tâches répétitives, elle leur permet de se concentrer sur des activités à forte valeur ajoutée
  3. Lean IT : Inspirée des principes du Lean Manufacturing, l'approche Lean IT vise à optimiser les processus et à éliminer les gaspillages dans le développement logiciel. En réduisant les délais de livraison et en améliorant la qualité des produits, elle favorise une culture de l'amélioration continue.
  4. Mesure : L'évaluation des progrès et des performances est un élément crucial de DevOps. Grâce à des indicateurs de performance clés et des tableaux de bord, les équipes peuvent suivre l'efficacité de leurs processus, identifier les domaines d'amélioration et prendre des décisions éclairées pour optimiser leurs pratiques.
  5. Sharing : Le partage des connaissances et des bonnes pratiques est fondamental pour favoriser la collaboration et l'innovation. En encourageant l'échange d'expérience entre les équipes, le partage de l'information renforce la transparence et la confiance au sein de l'organisation

En intégrant ces cinq piliers dans leur approche DevOps, les organisations créent un environnement propice à la collaboration, à l'efficacité et à l'innovation, favorisant ainsi une adoption réussie de DevOps et des résultats positifs à long terme.

Pour Conclure

Comprendre les fondamentaux du DevOps est essentiel pour transformer les pratiques de développement et d'exploitation. En adoptant une approche axée sur la collaboration, l'automatisation, le Lean IT, la mesure et le partage des connaissances, les organisations peuvent surmonter les obstacles traditionnels et répondre aux défis d'un paysage technologique en constante évolution.

Le mouvement DevOps va au-delà de l'implémentation d'outils ou de processus ; il repose sur une philosophie favorisant la culture de la collaboration, de l'innovation et de l'amélioration continue. En intégrant ces principes, les équipes peuvent briser les silos organisationnels, accélérer la livraison des logiciels et garantir la qualité et la fiabilité des produits.

Pour approfondir vos connaissances sur le DevOps et explorer ses principes et pratiques, suivez les prochains articles. Nous aborderons des sujets tels que l'automatisation des tests, le déploiement continu, la surveillance des applications, et plus encore.

Restez connectés pour la suite passionnante de notre voyage dans le DevOps !



Super! Ensuite, passez à la caisse complète pour un accès complet à Les Carnets du DevOps
Bienvenue à nouveau! Vous vous êtes connecté avec succès
Vous vous êtes abonné avec succès à Les Carnets du DevOps
Succès! Votre compte est entièrement activé, vous avez désormais accès à tous les contenus
Succès! Vos informations de facturation ont été mises à jour
Votre facturation n'a pas été mise à jour