Général 4 min de lecture · 817 mots

SLO, SLI, SLA à la maison : se fixer un objectif de disponibilité pour son homelab

Trois acronymes, une idée simple : choisir ce que tu mesures, fixer un objectif raisonnable, et savoir si tu l'atteins. Version homelab, sans jargon.

SLO, SLI, SLA à la maison : se fixer un objectif de disponibilité pour son homelab
Général · 2026.10.20

Ces trois acronymes se mélangent tout le temps. Pourtant, l’idée derrière est très simple, et elle s’applique à un homelab aussi bien qu’à un service qui a des millions d’utilisateurs.

Les trois sigles en clair

  • SLI (Service Level Indicator) : ce que tu mesures. Par exemple : « est-ce que mon blog répond correctement ? »
  • SLO (Service Level Objective) : l’objectif que tu te donnes. Par exemple : « il doit répondre 99,5 % du temps. »
  • SLA (Service Level Agreement) : la promesse faite à quelqu’un d’autre, souvent avec des conséquences si elle n’est pas tenue (remboursement, pénalités).

Dans un homelab, tu n’as pas de SLA. Personne ne te rembourse quand le Pi-hole plante. Les deux qui t’intéressent sont donc le SLI et le SLO.

Choisir un SLI : la bonne question

Un bon SLI se pose du point de vue de celui qui utilise le service, pas du point de vue de la machine. Que le CPU soit à 5 % ne dit rien sur le fait que ton Nextcloud synchronise bien.

Pour un service web, le SLI le plus simple est : « la page répond avec un code 200, en moins de quelques secondes. »

Avec Prometheus et un exporteur de sondes (le blackbox exporter), ça donne la métrique probe_success, qui vaut 1 quand la sonde réussit et 0 sinon. Le taux de disponibilité sur 30 jours s’obtient avec :

avg_over_time(probe_success{job="blackbox", instance="https://blog.exemple.net"}[30d]) * 100

Le résultat est un pourcentage, par exemple 99,71.

Pour d’autres services, adapte le SLI à ce qui compte vraiment :

Service SLI possible
Blog / site web La page d’accueil répond en 200
Pi-hole Une requête DNS test obtient une réponse
Nextcloud La page de connexion répond, et le disque a de la place
Sauvegardes La dernière sauvegarde a moins de 26 heures

Fixer un SLO : pas trop haut

C’est là que la tentation est grande de viser 99,99 %. Résiste. Voici ce que chaque niveau représente comme temps d’indisponibilité autorisé :

Objectif Sur 30 jours Sur un an
99 % 7 h 12 min 3 j 15 h
99,5 % 3 h 36 min 1 j 20 h
99,9 % 43 min 8 h 46 min
99,99 % 4 min 19 s 52 min

Pour un homelab, avec une seule machine, une seule connexion Internet et des mises à jour qui demandent des redémarrages, 99 % à 99,5 % est un objectif honnête. Viser 99,99 % reviendrait à dire : « je n’ai le droit à aucun redémarrage, aucune coupure de courant, aucune mise à jour du noyau. » Autant dire que tu rateras ton objectif dès le premier mois.

Un SLO utile est un objectif exigeant mais atteignable, qui te dit quand tu dois t’inquiéter.

Un SLO différent par service

Tous tes services n’ont pas la même importance :

  • Ce qui est critique pour la maison (DNS, accès aux photos) : 99,5 %.
  • Ce qui est confortable (un wiki, un tableau de bord) : 99 %.
  • Ce qui est expérimental (le conteneur que tu viens de monter) : pas d’objectif, et c’est normal.

Écrire ça noir sur blanc a un effet inattendu : tu arrêtes de t’énerver pour une panne de 20 minutes du tableau de bord, et tu te concentres sur ce qui compte.

Mesurer où tu en es

Une fois l’objectif fixé, la requête qui compte est celle-ci : est-ce que je le tiens ce mois-ci ?

avg_over_time(probe_success{instance="https://blog.exemple.net"}[30d]) >= 0.995

Elle renvoie 1 si l’objectif est tenu, 0 sinon. Un panneau Grafana « vert / rouge » avec cette requête suffit largement.

Si tu veux aller plus loin sans écrire tes règles à la main, j’ai raconté dans J’ai arrêté d’écrire mes SLOs Prometheus à la main comment j’ai construit un petit générateur pour ça.

L’erreur de débutant : mesurer sans décider

Un SLO n’a d’intérêt que s’il change ce que tu fais. Pose-toi la question dès le départ : « si je n’atteins pas l’objectif, qu’est-ce que je change ? »

La réponse sera, par exemple : « je repousse la mise à jour du noyau », ou « je regarde pourquoi ce service redémarre tout le temps ». C’est exactement le sujet de l’article suivant : le budget d’erreur.

En résumé

  1. Choisis un service qui compte.
  2. Définis un SLI simple (répond / ne répond pas).
  3. Fixe un SLO réaliste (99 % ou 99,5 %).
  4. Affiche où tu en es sur un panneau.
  5. Décide à l’avance ce que tu fais si tu es en dessous.

Pas besoin de plus pour commencer. Ça tient dans une soirée, et ça change complètement la façon de regarder ses pannes.

À propos de l'auteur

Pascal

Pascal — SRE & Observability Engineer. J'applique les pratiques SRE (SLI/SLO, alerting, observabilité) à mon homelab Proxmox, avec les mêmes exigences qu'en production.

Une remarque, un retour ?

Cet article est vivant - corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisis celui qui te convient.

Laisser un commentaire