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

Introduction au Site Reliability Engineering (SRE)

15 min de lecture

Imaginez une équipe qui gère un service utilisé par des millions de personnes. Chaque mise en production est un moment de stress : “Est-ce que ça va casser quelque chose ?” Les développeurs veulent livrer vite, les opérationnels veulent éviter les incidents. Cette tension permanente finit par paralyser tout le monde.

C’est exactement le problème que Google a dû résoudre en 2003. Leur solution s’appelle le Site Reliability Engineering (SRE), et elle a révolutionné la façon dont on pense la fiabilité des systèmes.

Traditionnellement, les entreprises séparaient strictement deux équipes :

  • Développeurs (Dev) : écrivent du code, veulent livrer des fonctionnalités rapidement
  • Opérationnels (Ops) : maintiennent les systèmes en production, veulent éviter les changements qui pourraient causer des pannes

Ces deux objectifs sont fondamentalement en tension. La plupart des incidents sont causés par des changements : nouvelle fonctionnalité, mise à jour de configuration, correction de bug. Du point de vue Ops, moins de changements = moins d’incidents. Du point de vue Dev, moins de changements = produit qui stagne et utilisateurs mécontents.

Le conflit traditionnel entre Dev et Ops : deux équipes aux objectifs opposés séparées par un mur de méfiance

Cette tension crée un cercle vicieux. Les Ops mettent en place des processus de validation de plus en plus lourds. Les Dev contournent ces processus (petits “hotfixes” qui passent sous le radar). La confiance s’érode. Les deux équipes se retrouvent dans des “tranchées” opposées.

La solution de Google : demander à des ingénieurs logiciel de gérer l’exploitation

Section intitulée « La solution de Google : demander à des ingénieurs logiciel de gérer l’exploitation »

En 2003, Benjamin Treynor Sloss (VP Engineering chez Google) a eu une idée simple mais radicale : et si on demandait à des ingénieurs logiciel de concevoir l’exploitation ?

Au lieu d’embaucher des administrateurs système traditionnels, Google a recruté des développeurs avec une appétence pour les systèmes. Ces ingénieurs, par nature, détestent le travail répétitif. Leur réflexe : automatiser tout ce qui peut l’être.

Cette approche a donné naissance au Site Reliability Engineering. Le nom dit tout : il s’agit d’appliquer les principes de l’ingénierie logicielle (conception, automatisation, mesure) au problème de la fiabilité des sites (systèmes en production).


Le SRE repose sur plusieurs principes interconnectés. Comprendre ces principes, c’est comprendre pourquoi le SRE fonctionne là où l’approche traditionnelle échoue.

Principe 1 : La fiabilité est une fonctionnalité du produit

Section intitulée « Principe 1 : La fiabilité est une fonctionnalité du produit »

Dans une équipe traditionnelle, la fiabilité est la responsabilité exclusive des Ops. Les Dev livrent du code, les Ops s’assurent qu’il tourne. Si ça tombe, c’est “un problème d’infrastructure”.

Le SRE renverse cette vision. La fiabilité est une fonctionnalité du produit, au même titre que les nouvelles features. Un service qui plante constamment n’apporte aucune valeur, peu importe le nombre de fonctionnalités qu’il propose.

Cette responsabilité est partagée entre les équipes Dev et SRE. Les développeurs ne peuvent plus jeter leur code “par-dessus le mur” et attendre que les Ops se débrouillent.

Principe 2 : 100% de disponibilité n’est pas un objectif

Section intitulée « Principe 2 : 100% de disponibilité n’est pas un objectif »

C’est peut-être le principe le plus contre-intuitif du SRE. On pourrait penser que l’objectif est d’atteindre 100% de disponibilité. En réalité, viser 100% est contre-productif.

Pourquoi ? Trois raisons :

  1. C’est techniquement impossible. Il y aura toujours des pannes matérielles, des erreurs humaines, des catastrophes naturelles.

  2. Les utilisateurs ne font pas la différence. Entre 99.99% et 99.999% de disponibilité, l’utilisateur ne perçoit aucune différence. Son propre réseau WiFi, son opérateur mobile, son navigateur introduisent bien plus d’instabilité que votre service.

  3. Le coût marginal explose. Passer de 99% à 99.9% coûte X. Passer de 99.9% à 99.99% coûte 10X. Passer de 99.99% à 99.999% coûte 100X. Ces ressources seraient mieux investies ailleurs.

Le SRE propose une alternative : définir un objectif de fiabilité réaliste (le SLO) et utiliser la marge d’erreur tolérée (l’error budget) comme outil de décision.

Principe 3 : L’error budget résout le conflit Dev/Ops

Section intitulée « Principe 3 : L’error budget résout le conflit Dev/Ops »

L’error budget transforme une tension destructrice en mécanisme de décision objectif.

Imaginons un service avec un SLO de 99.9% de disponibilité mensuelle. Cela signifie qu’on tolère 0.1% d’indisponibilité, soit environ 43 minutes par mois. C’est l’error budget.

Tant qu’il reste du budget :

  • Les développeurs peuvent déployer des features
  • On peut prendre des risques calculés
  • L’innovation est encouragée

Quand le budget est épuisé :

  • On arrête les déploiements non-critiques
  • On se concentre sur la stabilité
  • On investit dans l’automatisation et les tests

Le conflit disparaît car la décision n’est plus politique mais basée sur des données. Les développeurs eux-mêmes deviennent prudents quand le budget diminue — ils ne veulent pas le gaspiller et bloquer leurs propres releases.

L'error budget comme arbitre objectif entre Dev et SRE

Le toil (corvée) est un concept central du SRE. Il désigne le travail opérationnel qui possède ces caractéristiques :

CaractéristiqueExplicationExemple
ManuelNécessite une intervention humaineRedémarrer un service qui plante
RépétitifSe reproduit régulièrementVider les logs tous les lundis
AutomatisableUne machine pourrait le faireProvisionner un nouveau serveur
TactiqueRéactif, pas stratégiqueRépondre à une alerte sans corriger la cause
Sans valeur durableLe système revient au même état aprèsRelancer un job échoué
Proportionnel à la chargeCroît avec le nombre d’utilisateursTraiter manuellement les demandes de support

Le toil est dangereux car il croît linéairement avec la taille du service. Si vous avez besoin de 2 personnes pour gérer 1000 utilisateurs, vous aurez besoin de 20 personnes pour 10 000 utilisateurs. Ce modèle n’est pas viable.

Google applique une règle stricte : les SRE ne doivent pas passer plus de 50% de leur temps sur le travail opérationnel (toil + astreintes + tickets).

Les 50% restants doivent être consacrés à des projets d’ingénierie :

  • Automatiser les tâches manuelles
  • Améliorer les outils de monitoring
  • Renforcer la résilience du système
  • Développer des fonctionnalités d’auto-réparation

Cette règle a deux effets :

  1. Elle force l’automatisation. Si le toil dépasse 50%, l’équipe doit soit automatiser, soit renvoyer du travail vers les équipes Dev.

  2. Elle préserve l’attractivité du poste. Les ingénieurs SRE ne sont pas des “super admins sys” condamnés au travail répétitif. Ils font de l’ingénierie.


Le SRE ne cherche pas à maximiser la stabilité au détriment de la vélocité. Il cherche l’équilibre optimal pour le business.

Cet équilibre dépend du contexte :

Type de servicePrioritéSLO typique
Infrastructure critique (paiements, authentification)Stabilité99.99%+
Produit grand public matureÉquilibre99.9%
Produit en phase de croissanceVélocité99.5%
Prototype / MVPInnovation99%

Un produit en phase de croissance peut accepter plus d’incidents car la vitesse d’itération est cruciale. Un système de paiement ne peut pas se permettre de tomber — les utilisateurs perdent confiance immédiatement.

Le SRE définit trois types de réponses possibles pour le monitoring :

Définition : Une alerte nécessite une action humaine immédiate.

Quand l’utiliser : Le service est dégradé maintenant ou va l’être dans les minutes qui viennent. Un humain doit intervenir.

Exemple : Le taux d’erreurs dépasse 5% sur les 5 dernières minutes.

Piège à éviter : Trop d’alertes = fatigue d’alerte = alertes ignorées = incidents manqués.

Cette classification force une réflexion sur chaque métrique : “Si cette condition se produit, que doit-il se passer ?”

Le SRE traite les incidents comme des opportunités d’apprentissage, pas comme des échecs à punir.

Deux principes guident cette approche :

  1. Les humains font des erreurs. C’est inévitable. Le système doit être conçu pour résister aux erreurs humaines.

  2. Le postmortem sans blâme. Après un incident, on analyse ce qui s’est passé pour améliorer le système, pas pour trouver un coupable.


Le SRE et le DevOps partagent beaucoup de principes. On dit souvent que le SRE est une implémentation spécifique des principes DevOps, avec quelques extensions.

AspectDevOpsSRE
OrigineMouvement communautaire (2009)Pratique Google (2003)
FocusCulture et collaborationIngénierie et mesure
PrescriptifPrincipes générauxPratiques concrètes (SLO, error budget, 50% rule)
ÉquipesFusion Dev/OpsÉquipe SRE distincte mais collaborative
MesureMétriques DORASLI/SLO/Error budget

On peut voir le DevOps comme la philosophie et le SRE comme une méthodologie pour appliquer cette philosophie.


Une équipe SRE typique est responsable de :

  1. Disponibilité : s’assurer que le service est accessible quand les utilisateurs en ont besoin

  2. Latence : garantir des temps de réponse acceptables pour une bonne expérience utilisateur

  3. Performance : optimiser l’utilisation des ressources pour un coût maîtrisé

  4. Gestion du changement : déployer les nouvelles versions sans casser le service

  5. Monitoring : détecter les problèmes avant qu’ils n’impactent les utilisateurs

  6. Réponse aux incidents : restaurer le service rapidement quand il tombe

  7. Planification de capacité : anticiper la croissance pour éviter la saturation


Le SRE est né chez Google, une entreprise avec des ressources et une échelle exceptionnelles. Mais ses principes sont applicables à toute organisation.

  • Error budgets : Fonctionne dès que vous avez des SLO, même informels
  • Élimination du toil : Pertinent pour toute équipe qui fait du travail répétitif
  • Postmortems sans blâme : Culture, pas infrastructure
  • Monitoring en 3 catégories : Applicable immédiatement
  • Équipe SRE dédiée : Nécessite une certaine taille d’organisation
  • Règle des 50% : Difficile si l’équipe est déjà submergée de toil
  • Transfert de charge vers Dev : Suppose une bonne relation avec les équipes Dev

L’important est d’adopter les principes du SRE, pas nécessairement sa structure exacte. Une petite équipe peut très bien appliquer la philosophie SRE sans avoir un rôle “SRE” dédié.


  1. Le SRE réconcilie Dev et Ops en transformant le conflit vélocité/stabilité en décision basée sur des données (l’error budget)

  2. 100% de disponibilité n’est pas l’objectif — on vise un niveau de fiabilité adapté au business et on utilise la marge d’erreur pour innover

  3. Le toil est l’ennemi — chaque tâche manuelle répétitive doit être automatisée ou éliminée

  4. Les SRE font de l’ingénierie — au moins 50% du temps doit être consacré à des projets qui améliorent le système

  5. Les incidents sont des opportunités d’apprentissage — pas des occasions de blâmer

  6. Le SRE est une implémentation du DevOps — mêmes principes, pratiques plus prescriptives