DevOps : définition, principes CALMS et métriques DORA
La culture et l'ensemble de pratiques qui rapprochent les équipes de développement et d'exploitation pour livrer plus souvent et plus sereinement : origine, modèle CALMS, boucle DevOps, métriques et outils.
Par Équipe Blent· Mis à jour le · 15 min de lecture· Niveau débutant
DevOps en bref
- Nature
- Culture et ensemble de pratiques
- Origine
- Patrick Debois, DevOpsDays à Gand, 2009
- Modèle de référence
- CALMS
- Mesure de la performance
- Les quatre métriques DORA
- Pratiques clés
- CI/CD, Infrastructure as Code, observabilité
- Métier associé
- DevOps Engineer
Définition : DevOps
Le DevOps est une culture et un ensemble de pratiques qui rapprochent les équipes de développement logiciel (Dev) et d'exploitation informatique (Ops) autour d'un objectif commun : livrer de la valeur aux utilisateurs rapidement, fréquemment et de manière fiable. Il repose sur la collaboration entre ces équipes, l'automatisation des tâches répétitives (tests, déploiements, provisionnement), la mesure continue des performances et le partage des responsabilités sur le logiciel en production. Le DevOps n'est ni un outil ni un poste unique : c'est une façon d'organiser le travail, outillée par l'intégration et le déploiement continus, l'Infrastructure as Code et l'observabilité.
En une phrase : le DevOps fait travailler développeurs et opérationnels comme une seule équipe, responsable du logiciel de l'écriture du code jusqu'à la production.
Dans cette définition
Qu'est-ce que le DevOps ?
Le DevOps désigne une manière de concevoir, livrer et exploiter un logiciel dans laquelle les développeurs et les opérationnels ne forment plus deux mondes séparés, mais une seule chaîne de valeur partagée.
Pendant longtemps, les deux équipes ont eu des objectifs contradictoires. Les développeurs étaient évalués sur leur capacité à livrer des nouveautés, les équipes d'exploitation sur la stabilité de la production. Résultat : des mises en production rares, volumineuses et redoutées, suivies d'incidents dont chacun rejetait la responsabilité sur l'autre. Le DevOps propose de casser ce mur en partageant les objectifs, les outils et la responsabilité du logiciel en production.
Le mouvement prend forme à la fin des années 2000. En 2009, John Allspaw et Paul Hammond présentent à la conférence Velocity leur talk « 10+ Deploys per Day: Dev and Ops Cooperation at Flickr ». La même année, le consultant belge Patrick Debois organise à Gand les premiers DevOpsDays, qui donnent son nom au mouvement. Le roman The Phoenix Project (2013) puis le livre Accelerate (2018), fondé sur les données du programme de recherche DORA, achèvent de le populariser.
Concrètement, le DevOps s'outille par l'automatisation : CI/CD pour tester et déployer chaque modification, Infrastructure as Code pour décrire les serveurs et les réseaux, conteneurs et orchestration pour rendre les environnements reproductibles, observabilité pour savoir ce qui se passe en production.
À retenir : le DevOps n'est pas une équipe ni un outil. C'est une organisation du travail dans laquelle ceux qui construisent le logiciel partagent la responsabilité de son fonctionnement en production.
Le modèle CALMS : les cinq piliers du DevOps
Pour évaluer la maturité DevOps d'une organisation, on utilise souvent le modèle CALMS. Il dérive de l'acronyme CAMS proposé par John Willis et Damon Edwards, auquel Jez Humble a ajouté le L du Lean.
- Culture : des objectifs communs entre Dev et Ops, une responsabilité partagée et des analyses d'incident sans recherche de coupable (« blameless postmortems »).
- Automation : tout ce qui est répétitif est automatisé, des tests au provisionnement de l'infrastructure, en passant par le déploiement.
- Lean : travailler en petits lots, limiter les tâches en cours, éliminer les attentes et les gaspillages dans la chaîne de livraison.
- Measurement : mesurer la performance de livraison, la santé de la production et l'usage réel pour décider sur des faits.
- Sharing : partager les connaissances, les outils, la documentation et les retours d'expérience entre équipes.
Le modèle rappelle un point essentiel : l'automatisation n'est qu'un pilier sur cinq. Une organisation qui installe une chaîne CI/CD sans changer sa culture ni ses indicateurs n'obtient qu'une partie des bénéfices.
Les métriques DORA : mesurer la performance DevOps
Le programme DevOps Research and Assessment (DORA), fondé par Nicole Forsgren, Jez Humble et Gene Kim puis racheté par Google en 2018, a étudié des milliers d'équipes. Ses travaux ont identifié quatre indicateurs qui distinguent les organisations les plus performantes.
| Métrique | Ce qu'elle mesure | Dimension |
|---|---|---|
| Fréquence de déploiement | À quelle fréquence l'équipe met en production | Vitesse |
| Délai de mise en production des changements | Temps entre un commit et son arrivée en production | Vitesse |
| Taux d'échec des changements | Part des déploiements qui provoquent un incident ou un retour arrière | Stabilité |
| Temps de rétablissement | Durée nécessaire pour rétablir le service après une défaillance | Stabilité |
Le principal enseignement de ces études est contre-intuitif : vitesse et stabilité ne s'opposent pas. Les équipes qui déploient le plus souvent sont aussi celles qui ont le moins d'incidents et qui les résolvent le plus vite, parce que chaque changement est petit, testé et facile à annuler.
Bon usage : ces métriques servent à piloter l'amélioration d'une équipe dans le temps, pas à comparer ou classer des équipes entre elles.
Exemple concret : le parcours d'une modification
Prenons une équipe qui doit corriger un bug sur une API de commande. Dans une organisation DevOps, le parcours ressemble à ceci :
- Code : le développeur corrige le bug, ajoute un test qui le reproduit et ouvre une merge request.
- Intégration continue : le pipeline exécute les tests, analyse la qualité et la sécurité du code, puis construit une image Docker.
- Revue : un pair relit le code ; la fusion dans la branche principale déclenche la suite.
- Déploiement : l'image est déployée en préproduction, puis progressivement en production sur un cluster Kubernetes.
- Surveillance : les tableaux de bord Prometheus confirment que le taux d'erreur baisse ; une alerte aurait déclenché un retour arrière automatique.
L'ensemble prend moins d'une heure, sans ticket transmis à une autre équipe ni intervention manuelle sur un serveur. Si une faille avait été détectée dans une dépendance, le pipeline l'aurait bloquée : c'est le terrain du DevSecOps.
Dans quels contextes adopter une démarche DevOps ?
Le DevOps répond à un problème précis : le temps et le risque qui séparent une ligne de code écrite de sa mise à disposition des utilisateurs.
Produit numérique en évolution rapide
Livrer plusieurs fois par semaine, voire par jour, pour tester des idées et corriger vite.
Migration vers le Cloud
Profiter de l'élasticité du Cloud grâce à une infrastructure décrite en code et automatisée.
Architecture en microservices
Coordonner des dizaines de services déployés indépendamment, chacun avec sa propre chaîne.
Fiabilisation de la production
Réduire le nombre d'incidents liés aux mises en production et le temps de rétablissement.
Modernisation d'un SI existant
Remplacer des déploiements manuels et documentés à la main par des procédures automatisées.
Industrialisation de projets data et IA
Appliquer les mêmes principes aux modèles et pipelines de données, ce qui a donné le MLOps.
Quels sont les bénéfices du DevOps ?
Bien mené, le DevOps améliore à la fois la vitesse de livraison et la stabilité, deux objectifs que l'on croyait opposés.
- Mises en production plus fréquentes, plus petites, donc moins risquées.
- Détection plus précoce des erreurs grâce aux tests et contrôles automatisés.
- Temps de rétablissement réduit après un incident, grâce à l'observabilité et au retour arrière automatisé.
- Moins de tâches manuelles répétitives et d'erreurs humaines lors des déploiements.
- Responsabilité partagée qui supprime le « ça marche sur ma machine » et les conflits entre équipes.
- Environnements reproductibles, du poste du développeur jusqu'à la production.
Quelles sont les difficultés du DevOps ?
Le DevOps échoue rarement pour des raisons techniques : les obstacles sont surtout organisationnels et humains.
- Changement culturel long, qui exige le soutien explicite de la direction.
- Risque de réduire le DevOps à l'achat d'outils, sans changer l'organisation du travail.
- Charge cognitive accrue pour des équipes qui doivent maîtriser code, infrastructure et exploitation.
- Investissement initial important dans l'automatisation, les tests et la supervision.
- Création fréquente d'une « équipe DevOps » isolée, qui recrée un silo au lieu de le supprimer.
- Contraintes réglementaires et de sécurité à intégrer dès le départ, sous peine de freiner la chaîne.
DevOps, SRE et Platform Engineering : quelles différences ?
Ces trois termes sont souvent confondus. Ils partagent les mêmes valeurs, mais n'ont pas le même périmètre.
| Critère | DevOps | SRE | Platform Engineering |
|---|---|---|---|
| Nature | Culture et pratiques | Discipline d'ingénierie de la fiabilité | Construction d'une plateforme interne |
| Origine | Communauté, DevOpsDays 2009 | Google, années 2000 | Évolution récente du DevOps à grande échelle |
| Objectif principal | Livrer vite et de manière fiable | Tenir des objectifs de fiabilité mesurés | Offrir des outils en libre-service aux équipes |
| Outils de pilotage | Métriques DORA | SLI, SLO, budgets d'erreur | Adoption et satisfaction des développeurs |
| Relation au DevOps | Le cadre général | Une façon concrète de l'appliquer | Un moyen de le passer à l'échelle |
Le Platform Engineering répond à une limite observée dans les grandes organisations : demander à chaque équipe de tout maîtriser, du code à l'infrastructure, crée une charge cognitive excessive. Une équipe plateforme fournit alors des chemins balisés (modèles de pipelines, environnements prêts à l'emploi) que les équipes produit consomment en autonomie.
Le métier de DevOps Engineer
Si le DevOps est une culture, le marché a vu émerger un métier dédié : le DevOps Engineer. Son rôle est d'outiller la démarche, en construisant et en maintenant les pipelines CI/CD, l'infrastructure en code, les clusters de conteneurs et la supervision.
Ses compétences couvrent un large spectre : administration Linux et réseau, scripting, au moins un fournisseur Cloud, Docker et Kubernetes, Terraform ou Ansible, et une bonne compréhension du développement logiciel. Les qualités relationnelles comptent autant : le DevOps Engineer travaille à l'interface de plusieurs équipes et doit faire adopter de nouvelles pratiques. Notre article DevOps Engineer : tout savoir sur ce métier détaille les missions, les salaires et les parcours possibles.
Faut-il adopter une démarche DevOps ?
La question n'est pas de savoir si le DevOps est utile, mais si votre contexte justifie l'effort de transformation qu'il demande.
Le DevOps est une priorité
- Vos mises en production sont rares, longues et redoutées.
- Les incidents en production sont fréquents et longs à résoudre.
- Développement et exploitation se renvoient la responsabilité des problèmes.
- Votre produit doit évoluer vite face à la concurrence.
L'effort peut attendre ou être allégé
- Le logiciel évolue très peu et ses livraisons sont rares par nature.
- Une seule personne développe et exploite un petit outil interne.
- L'organisation n'est pas prête à faire évoluer ses rôles et ses processus.
- Une plateforme managée (SaaS, PaaS) prend déjà en charge l'exploitation.
Quels outils pour chaque étape du DevOps ?
Aucun outil ne fait le DevOps à lui seul, mais une chaîne cohérente est indispensable pour automatiser la boucle. Voici les briques les plus répandues, de la gestion du code à la supervision.
- Code
Git
Le gestionnaire de versions distribué, socle de toute la chaîne et de la collaboration.
- Intégration continue
GitLab CI/CD
Pipelines intégrés à la plateforme GitLab, décrits dans un fichier YAML du dépôt.
- Intégration continue
Jenkins
Serveur d'automatisation open source historique, extensible par plugins.
- Build et packaging
Docker
Empaquetage des applications en images de conteneurs portables.
- Déploiement et exploitation
Kubernetes
Orchestration des conteneurs : déploiement, mise à l'échelle, auto-réparation.
- Infrastructure
Terraform
Provisionnement déclaratif de l'infrastructure Cloud à partir de code versionné.
- Configuration
Ansible
Configuration des serveurs et automatisation de tâches, sans agent à installer.
- Supervision
Prometheus
Collecte de métriques et alerting, standard de fait dans l'écosystème Kubernetes.
- Observabilité
OpenTelemetry
Standard ouvert pour instrumenter traces, métriques et journaux des applications.
Les concepts à connaître autour du DevOps
Le DevOps s'appuie sur plusieurs pratiques qui ont chacune leur propre définition dans le lexique.
- CI/CDLa chaîne d'automatisation qui teste, construit et déploie chaque modification.
- Infrastructure as CodeLa description de l'infrastructure dans des fichiers versionnés et rejouables.
- DevSecOpsL'intégration de la sécurité à chaque étape de la boucle DevOps.
- GitOpsLe déploiement déclaratif piloté par un dépôt Git et réconcilié en continu.
- ContainerL'unité d'empaquetage qui rend une application portable d'un environnement à l'autre.
- Platform EngineeringLa construction de plateformes internes qui outillent les équipes en libre-service.
Ressources pour approfondir le DevOps
Trois articles du blog Blent pour passer de la culture DevOps à sa mise en pratique.
- Métier
DevOps Engineer : tout savoir sur ce métier
Missions, compétences, salaires et parcours pour devenir DevOps Engineer.
Lire l'article - Outil
GitLab CI/CD : tout savoir de l'outil open source
Construire ses premiers pipelines d'intégration et de déploiement continus.
Lire l'article - Tendance
Platform Engineering : c'est quoi ?
Comment les plateformes internes prolongent la démarche DevOps à grande échelle.
Lire l'article
Questions fréquentes
Questions fréquentes
Expertise
À propos de l'auteur
Équipe Blent
Les ingénieurs et mentors Blent conçoivent, automatisent et mettent en production des infrastructures Cloud, et forment chaque année des centaines de professionnels au Cloud et au DevOps.
Sources et méthodologie
- Gene Kim, Kevin Behr, George Spafford, The Phoenix Project, IT Revolution, 2013
- Nicole Forsgren, Jez Humble, Gene Kim, Accelerate, IT Revolution, 2018
- Rapports annuels State of DevOps du programme DORA (Google Cloud)
- Retours d'expérience des projets et formations Blent
Comment fonctionne la boucle DevOps ?
Le cycle DevOps est souvent représenté par un symbole de l'infini : huit étapes qui s'enchaînent sans fin, la partie Dev à gauche, la partie Ops à droite. Chaque tour de boucle doit être court et automatisé autant que possible.
Plan
L'équipe définit les fonctionnalités et les corrections à livrer, découpées en petits incréments. Les retours issus de la production (incidents, métriques, usages) alimentent directement cette planification.
Code
Les développeurs écrivent le code applicatif, mais aussi les tests, les fichiers de configuration et la description de l'infrastructure, le tout versionné dans Git et relu par des pairs.
Build
Chaque modification déclenche une compilation et la fabrication d'un artefact reproductible : paquet, binaire ou image de conteneur.
Test
Les tests unitaires, d'intégration, de qualité de code et de sécurité s'exécutent automatiquement. Un échec bloque la suite de la chaîne et prévient immédiatement l'auteur.
Release
L'artefact validé est versionné, stocké dans un registre et marqué comme candidat à la mise en production. Il sera déployé tel quel dans tous les environnements.
Deploy
Le déploiement est automatisé et répétable, souvent progressif (blue/green, canary) pour limiter l'impact d'un problème et permettre un retour arrière rapide.
Operate
L'application tourne en production : mise à l'échelle, gestion de la configuration, sauvegardes, correctifs. L'équipe qui a écrit le code partage la responsabilité de son bon fonctionnement.
Monitor
Métriques, journaux et traces mesurent la santé technique et l'usage réel. Les alertes, les incidents et leurs analyses reviennent nourrir l'étape de planification.