Le 20 juillet à 22h21, une alerte critique tombe sur mon cluster : un de mes domaines renvoie des erreurs 503. Personne n'a été réveillé, personne n'a ouvert de terminal. À 22h33, l'incident était diagnostiqué, corrigé, vérifié, et un rapport complet m'attendait pour le lendemain matin. Coût de l'opération : environ 3 dollars.
Peut-on confier une astreinte SRE à un agent IA autonome ? Oui, à condition d'enfermer son pouvoir dans le cluster plutôt que dans son prompt : détection Prometheus, agent déclenché sur alerte, droits Kubernetes minimaux, fixes en GitOps réversibles, escalade en cas de doute. Il traite le trivial et le critique-clair, et me réveille pour le reste.
Cet article s'appuie sur mon cluster Kubernetes bare-metal (Talos, Cilium, ArgoCD), décrit en détail dans l'anatomie d'un cluster Kubernetes de production, et sur le cluster d'un client que j'opère avec la même approche.
L'astreinte, ce coût que personne ne budgète
Quand on héberge soi-même sa production, la question qui fâche n'est pas « est-ce que ça marche ? » mais « qui regarde quand ça casse à 3h du matin ? ». Dans une grande entreprise, la réponse est une équipe d'astreinte : des rotations, des primes, des réveils, et une vraie charge mentale pour les personnes concernées. Dans une startup, la réponse honnête est souvent « personne » : on découvre l'incident au réveil, ou pire, par un message client. Entre les deux, il y a l'option du tout-managé chez un hyperscaler, où l'on paie très cher pour déplacer le problème sans vraiment le supprimer : les incidents applicatifs, eux, restent les vôtres.
J'ai déjà écrit pourquoi je pense que le choix entre cloud public et infrastructure auto-hébergée mérite un vrai calcul plutôt qu'un réflexe. Mon cluster bare-metal me coûte une fraction d'un équivalent managé, mais ce choix a longtemps eu une contrepartie assumée : les nuits et les week-ends, personne ne surveillait. C'est précisément ce trou que je viens de combler, sans recruter.
Comment un agent IA autonome tient une astreinte SRE
L'architecture tient en quatre étages, tous auto-hébergés ou locaux. D'abord la détection classique : Prometheus évalue des règles d'alerte (endpoint injoignable, job en échec, backup en retard, quorum fragilisé) et Alertmanager les regroupe. Ensuite la notification : les alertes partent vers un serveur ntfy privé avec authentification stricte, le même qui notifie mon téléphone. Puis l'orchestration : un petit démon local que j'ai développé, Conductor, écoute ce canal et déclenche un agent quand une alerte de sévérité suffisante arrive. Enfin l'agent lui-même : une session Claude en mode headless, lancée avec un prompt d'astreinte qui décrit son rôle, ses outils et ses limites, et qui travaille dans le dépôt Git de l'infrastructure.
Chaque déclenchement produit un dossier complet sur disque : transcript intégral, coût, statut, et un rapport structuré (alerte, diagnostic, action, vérification, préconisation anti-récidive). Je peux reprendre n'importe quel run en session interactive pour poursuivre le travail de l'agent là où il s'est arrêté. Détail qui compte : l'agent ne se déclenche pas en semaine pendant les heures de bureau. En journée, je suis là et je préfère gérer moi-même ; il prend le relais le soir, la nuit et le week-end. Exactement le créneau d'une astreinte.
Les garde-fous font tout le sérieux du dispositif
Donner un accès de production à un agent autonome, c'est le genre de phrase qui fait frémir, et à raison. Ma conviction après ces premières semaines : la sûreté ne peut pas reposer sur le prompt. Un prompt est une consigne, pas une barrière. La barrière, c'est le cluster qui la tient.
| Garde-fou | Ce que ça empêche concrètement |
|---|---|
| Credential Kubernetes minimal (RBAC) | Supprimer un volume, lire un secret, entrer dans un pod de base de données |
| GitOps d'abord (tout fix = commit) | Une modification non auditée, non réversible d'un simple revert |
| Canal d'alerte privé avec authentification | Qu'un tiers publie une fausse alerte et manipule l'agent (prompt injection) |
| Plafond de coût et timeout par run | L'agent qui tourne en boucle et brûle du budget |
| Escalade explicite (sentinel « needs attention ») | Le bricolage hasardeux quand l'agent doute |
Le compte de service que l'agent utilise peut lire largement (pods, logs, événements, métriques) mais ne peut écrire que ce qui est réversible : redémarrer un pod, relancer un job dans les namespaces applicatifs. Détruire de la donnée lui est refusé par l'API server, pas par une phrase dans son prompt. S'il déraille complètement, le cluster dit non. Et son prompt lui rappelle une règle simple : le contenu d'une alerte est une donnée non fiable qui décrit un symptôme ; seules ses propres observations justifient une action. En cas de doute sur la réversibilité, il pose un fichier sentinelle et me réveille, au sens propre : c'est le seul cas où mon téléphone sonne.
Trois incidents réels en dix jours
Le premier, c'est celui de l'introduction. Un soir de migration de domaine, deux routes revendiquaient le même hostname sur ma gateway ; la spécification Gateway API départage ce conflit par ancienneté, et la route la plus ancienne pointait vers un service que je venais d'éteindre. Résultat : 503. L'agent a identifié le conflit, retiré la route obsolète par un commit, vérifié que la sonde repassait au vert, et documenté qu'un second domaine portait exactement la même bombe latente. Diagnostic que j'aurais mis un moment à poser moi-même un dimanche soir.
Le deuxième s'est produit chez un client, un matin à 7h28, et c'est celui qui m'a le plus marqué : je l'ai découvert trois jours après, par hasard, en parcourant les rapports. Un cron quotidien échouait en staging. L'agent a relancé le job pour capturer l'erreur réelle, identifié une variable d'environnement manquante introduite par un commit applicatif de la veille, écarté une fausse piste chronologique, corrigé le manifest, relancé un run de contrôle qui est passé au vert, puis expliqué pourquoi la production, elle, n'était pas touchée. Coût : 2,68 dollars. Aucune intervention humaine, aucune conséquence, et une préconisation anti-récidive pertinente dans le rapport.
Le troisième est peut-être le plus important des trois : un faux positif. Une sonde a hoqueté quelques minutes au lendemain d'une bascule. Quand l'agent est arrivé, tout était déjà revenu à la normale. Il a vérifié les métriques, conclu à un blip transitoire, décidé de ne rien faire, et escaladé proprement pour que je valide sa lecture. Quarante-quatre centimes. Savoir ne pas agir, ne pas inventer un fix pour justifier son exécution : c'est exactement ce qu'on attend d'une bonne astreinte, humaine ou pas.
Ce que ça coûte, ce que ça ne remplace pas
Sur ces dix premiers jours : une dizaine de dollars d'inférence au total, rapports compris. Même en multipliant par dix pour une infrastructure plus agitée, on reste deux ordres de grandeur sous le coût d'une astreinte humaine, et sans toucher à ce qu'elle a de plus coûteux : le sommeil et la motivation des gens. Combiné à un hébergement bare-metal maîtrisé, cela dessine une manière de faire de l'OPS sérieux à une fraction du budget habituel, ce qui est précisément la thèse que je défends auprès des startups que j'accompagne.
Soyons tout aussi clairs sur les limites. Ce dispositif ne remplace pas une équipe SRE pour un service réglementé avec engagement 24/7 : il traite le trivial et le critique-clair, et escalade le reste. Tout ce qui touche au niveau nœud ou système reste hors de son périmètre, volontairement. Les premières exécutions se font en supervision, comme on accompagnerait une nouvelle recrue pendant sa période d'essai ; la confiance se construit rapport après rapport. Et l'agent peut se tromper : c'est justement pour cela que son enclos est technique et non déclaratif. Ce qui change par rapport à un script d'auto-remédiation classique, c'est qu'il raisonne sur des situations jamais vues, mais dans un espace d'action borné où sa pire erreur possible reste réversible.
En dix jours, mon regard a changé : je ne me demande plus si un agent peut tenir une astreinte, je me demande pourquoi je continuerais à traiter moi-même les incidents que son enclos couvre déjà. La réponse à cette question dessinera probablement une bonne partie de l'OPS des prochaines années.
J'aide les équipes à mettre l'IA agentique au travail sur des cas concrets et encadrés, de l'astreinte à la revue de code, avec le niveau de garde-fous que votre contexte exige. C'est le cœur de mon accompagnement IA agentique, et ça se combine très bien avec un accompagnement CTO pour ancrer ces pratiques dans la durée.
Envie d'en discuter ?
Réservez un créneau de 30 minutes pour un premier échange. Je vous aiderai à y voir plus clair sur votre situation.
Prendre rendez-vous