Aller au contenu
Culture DevOps high
🚧 Section en cours de réécriture — Le contenu est en cours de restructuration et peut évoluer.

Site Reliability Engineering (SRE) : fiabilité à grande échelle

10 min de lecture

Imaginez ce scénario : il est 3h du matin, votre téléphone sonne. Le site e-commerce est tombé, 50 000 utilisateurs ne peuvent plus passer commande. L’ingénieur d’astreinte se connecte en urgence, applique un correctif improvisé, et tout repart — jusqu’à la prochaine fois. Ce cycle infernal, Google l’a vécu dans les années 2000. Leur réponse ? Inventer une nouvelle discipline : le Site Reliability Engineering.

Le Site Reliability Engineering (SRE) est une approche pour gérer des systèmes en production qui combine l’expertise d’un développeur logiciel avec celle d’un administrateur système. Inventé par Google en 2003, le SRE considère les problèmes d’exploitation comme des problèmes d’ingénierie à résoudre par du code et de l’automatisation.

En termes simples, pensez au SRE comme à un mécanicien automobile qui serait aussi ingénieur : il ne se contente pas de réparer les pannes, il conçoit des systèmes pour qu’elles ne se produisent plus.

Cette question revient souvent, et la réponse est nuancée. DevOps et SRE partagent le même objectif — améliorer la collaboration entre développement et opérations — mais avec des approches différentes.

AspectDevOpsSRE
NatureCulture et philosophieRôle et pratiques concrètes
FocusCycle de vie complet de l’applicationFiabilité et stabilité en production
ApprochePrincipes généraux (automatisation, collaboration)Méthodes prescriptives (SLO, error budgets)
ÉquipeTout le monde adopte la cultureÉquipe spécialisée dédiée
Métrique cléVélocité de livraisonFiabilité mesurable

En pratique, vous n’avez pas à choisir. De nombreuses organisations adoptent la culture DevOps pour l’ensemble des équipes, puis créent une équipe SRE pour les systèmes critiques nécessitant un niveau de fiabilité élevé.

Le SRE repose sur quelques principes clés qui guident toutes les décisions.

1. La fiabilité à 100% n’existe pas (et c’est normal)

Section intitulée « 1. La fiabilité à 100% n’existe pas (et c’est normal) »

Contrairement à l’intuition, le SRE n’essaie pas d’atteindre une disponibilité parfaite. Pourquoi ? Parce que :

  • Passer de 99,9% à 99,99% de disponibilité coûte 10 fois plus cher en ressources
  • Les utilisateurs ne perçoivent pas la différence au-delà d’un certain seuil
  • La sur-fiabilité empêche l’innovation (peur de déployer)

Le SRE cherche le juste niveau de fiabilité : suffisant pour satisfaire les utilisateurs, sans bloquer l’évolution du produit.

Ces trois acronymes forment le cœur de la mesure en SRE. Prenons un exemple concret pour bien comprendre :

  1. SLI (Service Level Indicator) — Ce que vous mesurez

    Un SLI est une métrique technique qui reflète l’expérience utilisateur. Par exemple :

    • Pourcentage de requêtes HTTP qui retournent en moins de 200ms
    • Pourcentage de requêtes réussies (code 2xx) sur le total
    • Temps de chargement de la page d’accueil

    Pensez au SLI comme au thermomètre : il vous donne une mesure objective.

  2. SLO (Service Level Objective) — Ce que vous visez

    Un SLO définit l’objectif de performance pour un SLI. Par exemple :

    • “99,9% des requêtes doivent répondre en moins de 200ms”
    • “Le taux d’erreur mensuel doit rester sous 0,1%”

    Le SLO est votre thermostat : la température que vous souhaitez maintenir.

  3. SLA (Service Level Agreement) — Ce que vous promettez

    Un SLA est un contrat avec vos clients, généralement avec des pénalités si non respecté. Par exemple :

    • “Si la disponibilité tombe sous 99,5%, remboursement au prorata”

    Le SLA est votre garantie : l’engagement formel envers vos clients.

3. L’Error Budget : réconcilier fiabilité et innovation

Section intitulée « 3. L’Error Budget : réconcilier fiabilité et innovation »

L’Error Budget (budget d’erreur) est peut-être le concept le plus innovant du SRE. L’idée est simple mais puissante :

Si votre SLO est de 99,9% de disponibilité, alors vous acceptez 0,1% d’indisponibilité. Ce 0,1% est votre Error Budget — un “droit à l’erreur” que vous pouvez dépenser.

Pourquoi c’est révolutionnaire ?

Traditionnellement, les équipes ops disent “zéro risque” et les équipes dev veulent “déployer vite”. L’Error Budget résout ce conflit :

  • Tant qu’il reste du budget : les développeurs peuvent déployer, expérimenter, prendre des risques calculés
  • Budget épuisé : on arrête les déploiements et on se concentre sur la stabilisation
SLO : 99,9% sur 30 jours
Budget mensuel : 0,1% × 43 200 min = 43,2 minutes d'indisponibilité autorisées
Consommé ce mois : 15 minutes
Restant : 28,2 minutes
→ ✅ Feu vert pour les déploiements et expérimentations

Le Toil (corvée, labeur) désigne le travail opérationnel répétitif, manuel et sans valeur ajoutée durable. C’est l’ennemi numéro un du SRE.

Les caractéristiques du Toil :

CaractéristiqueExemple
ManuelRedémarrer un service à la main après chaque incident
RépétitifCréer les mêmes tickets chaque semaine
AutomatisableVérifier manuellement les certificats qui expirent
Sans valeur durableL’action n’améliore pas le système, juste le maintient
Croissance linéairePlus de clients = plus de travail manuel

L’objectif n’est pas de tout automatiser (ce serait contre-productif pour des tâches rares), mais d’identifier et éliminer le toil qui grandit avec le système.

Quand un incident majeur survient, la réaction naturelle est de chercher “qui a fait l’erreur”. Le SRE adopte une approche radicalement différente : le blameless postmortem (analyse post-incident sans reproche).

Pourquoi sans reproche ?

  • Les humains font des erreurs — c’est le système qui aurait dû les empêcher
  • La peur de la sanction pousse à cacher les problèmes
  • Comprendre “comment” est plus utile que savoir “qui”

Structure d’un postmortem efficace :

  1. Timeline factuelle

    Que s’est-il passé, minute par minute ? Sans interprétation ni jugement.

  2. Impact mesuré

    Combien d’utilisateurs touchés ? Quelle durée ? Quel coût business ?

  3. Cause racine

    Pourquoi l’incident s’est produit ? Utiliser la méthode des “5 pourquoi”.

  4. Actions correctives

    Quelles améliorations concrètes, avec responsables et échéances ?

  5. Apprentissages

    Que savons-nous maintenant que nous ignorions avant ?

L’adoption du SRE ne nécessite pas forcément une équipe dédiée. Vous pouvez commencer par adopter ses principes progressivement.

  1. Définissez vos SLI critiques

    Identifiez 3 à 5 métriques qui reflètent vraiment l’expérience de vos utilisateurs. Pas la charge CPU, mais le temps de réponse perçu.

  2. Fixez des SLO réalistes

    Basez-vous sur l’historique. Si vous êtes à 98% de disponibilité, ne visez pas 99,99% immédiatement.

  3. Calculez votre Error Budget

    Communiquez-le à toutes les équipes. Rendez-le visible sur un dashboard.

  4. Identifiez votre plus gros toil

    Quel travail répétitif consomme le plus de temps ? Automatisez-le en priorité.

  5. Instaurez les postmortems

    Après chaque incident significatif, sans exception. Publiez-les en interne.

Chaque concept SRE présenté ci-dessus fait l’objet d’un guide détaillé. Ces guides sont placés dans les sections appropriées du site (opérations, documentation) car ils s’appliquent au-delà du seul contexte SRE.

Le SRE transforme l’exploitation en discipline d’ingénierie. Voici les points essentiels :

  1. Le SRE implémente DevOps avec des pratiques prescriptives et mesurables

  2. Les SLI/SLO/SLA structurent la mesure de fiabilité : ce qu’on mesure, ce qu’on vise, ce qu’on garantit

  3. L’Error Budget réconcilie innovation et stabilité en quantifiant le “droit à l’erreur”

  4. Le toil est l’ennemi — le travail répétitif sans valeur doit être éliminé ou automatisé

  5. Les postmortems sans reproche transforment les incidents en opportunités d’apprentissage

  6. Commencez petit : quelques SLI bien choisis valent mieux qu’une armée de métriques non exploitées