Error Budget

DevOps 🟡 Mid

Définition

Marge d'indisponibilité tolérée sur une période, déduite du SLO : avec un SLO de 99,9 % sur 30 jours, le budget d'erreur est d'environ 43 minutes. Formalisé par Google dans le livre « Site Reliability Engineering » (chapitre Embracing Risk), il arbitre objectivement entre vitesse et fiabilité : tant qu'il reste du budget, on déploie ; s'il est consommé, on gèle les fonctionnalités et on investit dans la stabilité.

Analogie

L'argent de poche de la fiabilité : on peut le dépenser en déploiements risqués, mais quand le porte-monnaie est vide, plus de sorties jusqu'au mois prochain.

Exemple de code

// Budget d'erreur mensuel à partir du SLO
const slo = 0.999;                    // 99,9 % de requêtes réussies
const totalRequests = 12_000_000;     // sur 30 jours
const budget = totalRequests * (1 - slo); // 12 000 erreurs autorisées

const errorsSoFar = 9_800;
const remaining = budget - errorsSoFar;   // 2 200
const burnRate = errorsSoFar / (budget * (daysElapsed / 30));
// burnRate > 1 : on consomme plus vite que prévu → alerte,
// on gèle les mises en production non critiques.

Cas d'usage

Décider, avec des chiffres partagés entre développeurs et SRE, si l'on peut sortir une fonctionnalité risquée cette semaine.

Anti-pattern

Viser 100 % de disponibilité : le budget d'erreur devient nul, plus aucun déploiement n'est acceptable et le coût explose.
#devops#sre#interview

En entretien

  1. Explique-moi l'Error Budget.

    C'est la marge d'indisponibilité tolérée sur une période, déduite du SLO : avec un SLO de 99,9 % sur 30 jours, le budget d'erreur est d'environ 43 minutes. Formalisé par Google dans le livre Site Reliability Engineering, il arbitre objectivement entre vitesse de déploiement et fiabilité.

  2. Quel anti-pattern consiste à viser 100 % de disponibilité ?

    Ça rend le budget d'erreur nul, donc plus aucun déploiement n'est acceptable et le coût de la fiabilité explose sans bénéfice proportionnel. Un peu de budget d'erreur reste nécessaire pour continuer à livrer des fonctionnalités.

  3. Comment utiliser l'error budget pour arbitrer un déploiement risqué ?

    Tant qu'il reste du budget, on peut déployer une fonctionnalité risquée ; s'il est consommé, on gèle les fonctionnalités et on investit dans la stabilité. C'est un peu l'argent de poche de la fiabilité, partagé entre développeurs et SRE.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre