Aller au contenu

HumainPratique

Une astreinte soutenable

Pour : ingénieurs et SRE · managers d’équipePrérequis : Notions de base sur l'alerting et les SLO.

Mode de lecture

Une astreinte n’est pas soutenable parce que l’équipe est courageuse. Elle l’est parce que quatre choses sont tenues en même temps : une rotation assez large, peu d’alertes et toutes actionnables, une compensation reconnue et une mesure régulière de la charge réelle. Quand l’une manque, les autres finissent par céder.

Cet article rassemble les repères publiés, une méthode de mesure et les règles que je recommande. Il complète la leçon 5 du parcours DSI, qui pose le sujet du point de vue de la direction.

Le livre Site Reliability Engineering de Google consacre un chapitre à l’astreinte (Being On-Call). Il donne des ordres de grandeur souvent repris :

RepèreValeur proposée par le livre
Temps d’astreinte d’un ingénieurau plus 25 % de son temps
Temps consacré à l’ingénierie (hors opérations)au moins 50 %
Incidents par période d’astreinte de 12 heuresau plus deux
Taille d’une rotation sur un seul siteau moins huit personnes
Taille d’une rotation sur deux sitesau moins six personnes par site

Ces chiffres décrivent le fonctionnement d’une organisation précise. Je recommande de les traiter comme des points de comparaison et non comme des normes : l’important est de fixer vos propres seuils, de les écrire et de les mesurer.

Une rotation trop petite produit mécaniquement de la fatigue, quelle que soit la qualité des alertes. Trois questions suffisent pour vérifier la vôtre.

  1. Combien de semaines d’astreinte par personne et par trimestre ? Avec quatre personnes en rotation hebdomadaire, chacune est d’astreinte une semaine sur quatre, soit environ trois semaines par trimestre (exemple illustratif). Avec huit, c’est une semaine sur huit.
  2. Qui est en second ? Un second niveau désigné, qui sait qu’il peut être appelé, évite que l’astreinte principale reste seule face à un incident qui dure. Le chapitre cité plus haut décrit ce principe d’une astreinte primaire et secondaire.
  3. Que se passe-t-il pendant les congés et les arrêts ? Si la rotation ne tient que lorsque tout le monde est présent, elle est sous-dimensionnée.

Pour une équipe répartie sur plusieurs fuseaux horaires, une rotation qui suit le soleil (follow the sun) supprime les appels de nuit. Elle suppose une passation écrite à chaque changement de fuseau.

La passation. Je recommande une passation courte et systématique en fin de période : incidents en cours, alertes bruyantes repérées, changements prévus, points de vigilance. Cinq lignes dans un canal partagé suffisent. Elle sert aussi de matière première à la revue mensuelle.

On ne réduit pas ce qu’on ne mesure pas. Les indicateurs ci-dessous se calculent à partir de l’historique de votre outil d’alerte et d’une question posée à la personne d’astreinte en fin de semaine.

IndicateurComment le calculerCe qu’il révèle
Appels par période d’astreintealertes ayant déclenché une notification humaine, par période de 12 heuresla charge brute, à comparer au repère de deux incidents
Appels hors heures ouvréesmême décompte, limité à la nuit et au week-endl’atteinte au sommeil, le facteur d’épuisement le plus direct
Part d’alertes actionnablesalertes ayant donné lieu à une action humaine, rapportées au totalle bruit ; une alerte sans action est un candidat à la suppression
Alertes récurrentesnombre d’alertes déclenchées plus de trois fois sur le mois avec la même causece qu’un correctif durable supprimerait
Temps d’interruptionheures passées à traiter des alertes et des demandes pendant l’astreintece qui n’a pas été consacré à l’ingénierie
Charge ressentienote de 1 à 5 donnée par la personne en fin de périodela dérive avant qu’elle se voie dans les chiffres

Le simulateur de fatigue d’alerte estime cette charge à partir de quelques paramètres et dit si une semaine type reste soutenable.

Une revue mensuelle de trente minutes. Je recommande de passer en revue chaque mois les dix alertes les plus fréquentes avec trois décisions possibles par alerte : supprimer, corriger la cause, transformer en ticket non urgent. Une alerte qui revient trois mois de suite sans décision est un problème de gouvernance, pas de technique.

La source principale du bruit est, à mon avis, l’alerte sur une cause plutôt que sur un symptôme. Un CPU à 90 %, un disque à 80 % ou un pod redémarré ne disent pas si les utilisateurs souffrent. Le chapitre Monitoring Distributed Systems du même livre recommande d’alerter sur les symptômes visibles des utilisateurs et de réserver les causes aux tableaux de bord et au diagnostic. Il pose aussi que chaque appel doit être actionnable et justifier une réaction urgente.

Les SLO donnent un critère précis pour décider. Le chapitre Alerting on SLOs du Site Reliability Workbook décrit des alertes sur le taux de consommation du budget d’erreur (burn rate) évaluées sur plusieurs fenêtres. Le principe est le suivant :

  • une consommation rapide et soutenue du budget, qui l’épuiserait en quelques jours, appelle un humain ;
  • une consommation lente, qui l’épuiserait avant la fin de la période sans urgence, crée un ticket traité en heures ouvrées ;
  • tout le reste alimente les tableaux de bord, sans notification.

Le workbook propose des seuils précis pour ces fenêtres. Le simulateur de budget d’erreur montre comment ce schéma réduit les appels sans retarder la détection d’un vrai incident.

flowchart LR
  S["Signal"] --> Q1{"Symptôme visible<br/>des utilisateurs ?"}
  Q1 -->|"non"| D["Tableau de bord,<br/>diagnostic"]
  Q1 -->|"oui"| Q2{"Budget d'erreur<br/>consommé vite ?"}
  Q2 -->|"oui"| P["Appel de l'astreinte"]
  Q2 -->|"lentement"| T["Ticket en<br/>heures ouvrées"]
  Q2 -->|"non"| D

Chaque alerte a un propriétaire et une procédure. Je recommande de refuser en revue toute nouvelle alerte d’appel qui n’a ni lien vers une procédure (même courte) ni équipe propriétaire. C’est la règle la plus simple pour empêcher le bruit de revenir.

La compensation. En France, l’article L3121-9 du Code du travail définit l’astreinte et prévoit qu’elle fait l’objet d’une contrepartie, financière ou en repos ; la durée d’une intervention pendant l’astreinte est un temps de travail effectif. Les articles suivants du même code renvoient les modalités à un accord collectif ou, à défaut, à l’employeur après consultation des représentants du personnel. Le texte est consultable sur Légifrance. Je recommande d’associer les RH dès la conception de la rotation, pas après les premières plaintes.

La récupération. Après une nuit d’intervention, je recommande un temps de récupération accordé sans justification, écrit dans la règle d’astreinte plutôt que laissé à l’appréciation de chaque manager.

La déconnexion. Une personne qui n’est pas d’astreinte n’est pas appelée. Les exceptions sont nommées, écrites et compensées.

Le droit de rendre une alerte. La personne d’astreinte doit pouvoir désactiver temporairement une alerte manifestement bruyante, à condition de la signaler dans la passation. Sans ce droit, le bruit s’installe parce que personne ne se sent autorisé à le couper.

  • La rotation compte assez de personnes pour tenir pendant les congés
  • Un second niveau est désigné et le sait
  • Les seuils de charge acceptables sont écrits (appels par période, appels de nuit)
  • La charge d’alerte est mesurée chaque mois avec les indicateurs ci-dessus
  • Chaque alerte d’appel porte sur un symptôme, a un propriétaire et une procédure
  • Les alertes d’appel sont dérivées des SLO quand un SLO existe
  • La compensation est définie avec les RH, conformément au droit applicable
  • La récupération après une intervention de nuit est écrite dans la règle
  • La passation de fin de période est systématique
  • La personne d’astreinte peut désactiver une alerte bruyante en le signalant