Ludovic Lamarre
Passionné de DevOps, d'infonuagique et d'IA.
Ingénieur DevOps dans le laboratoire d'intelligence artificielle d'une entreprise du secteur de la finance depuis 2021, où il facilite le déplacement de charges de travail d'IA entre AWS, Red Hat et SageMaker et contribue à sécuriser les applications d'IA de l'entreprise. Plus de 20 ans en informatique, spécialisé en architecture système, cloud computing et DevOps, avec des certifications AWS, Juniper Networks et Kubernetes. C'est le goût de partager ses projets à la maison — réseau, self-hosting, automatisation — qui le motive à écrire sur ce blogue, souvent avec l'aide de Bob.
Un cerveau plus lent pour Bob : comment la cache a gardé sa voix rapide
Un modèle local a deux vitesses, et pour un assistant vocal, la plus coûteuse des deux dépend presque entièrement de la façon dont on gère sa cache. Les deux vitesses, le banc d'essai qui les mesure, ce que la cache garde d'une question à l'autre, les deux pièges dans lesquels je suis tombé et les règles que j'en tire.
La réponse par la mauvaise patte : pourquoi mes sessions SSH gelaient après une minute
Depuis mon nouveau Mac, mes sessions SSH vers mes serveurs gelaient après une minute ou deux. La cause tient en une phrase : la réponse revenait par une autre porte que la demande, et mon pare-feu pfSense, qui ne voyait que la moitié de la conversation, l'oubliait après 30 secondes de silence. Trois règles de routage, posées par un seul module NixOS, ont réglé ça sur neuf machines en moins de deux minutes. Débogué en session avec Claude Code (Opus 5.5), avec une fausse piste macOS en prime.
Ce que coûte une nuit de pipeline, avec et sans changements
Mon pipeline de nuit relit mes documents d'infrastructure et redessine deux pages du site avec qwen3.8-flash. Le 16 septembre, avec Claude Code (Opus 5), on l'a fait rouler sept fois en optimisant entre les passages. Voici les tableaux par session : durée, requêtes, jetons, coût, selon qu'il y avait des changements ou non. Une relecture complète qui ne trouve rien coûte plus cher qu'une qui trouve, un delta coupe le coût par cinq, et le passage le plus rassurant de la journée était un refus de l'API lu comme un accord.
Je vous présente Bob : un robot, plusieurs cerveaux, et le nom de mon chien
Il y a un robot sur ce site. Il s'appelle Bob, il répond à vos questions sur mon labo, il tourne sur une carte graphique dans mon sous-sol, et il fait plusieurs métiers avec autant de cerveaux différents. Cet article le présente : d'où vient son nom, comment il choisit quoi vous répondre, et pourquoi le fait qu'il tourne chez moi change ce que vous pouvez lui demander. Travail mené en sessions avec Claude Code.
« Ok Bob, à quelle heure joue le film ? » : Bob peut maintenant chercher sur internet
L'assistant vocal de la maison roule sur une carte graphique dans mon sous-sol et, jusqu'à la semaine dernière, ne savait rien du monde extérieur : ni la date, ni la météo, ni l'horaire du cinéma. Il a maintenant une recherche web, par Tavily, qu'il décide d'appeler lui-même quand la question le demande. Ce que ça change, la fois où il a inventé des heures de séance avec aplomb, et pourquoi les horaires du cinéma viennent maintenant de la source plutôt que d'un moteur de recherche. Le montage, lui, c'est Bob qui l'explique. Fait en session avec Claude Code (Opus 5).
Le banc des menteurs : le modèle le moins cher a fait le score d'Opus
Le pipeline de nuit qui redessine mes pages d'architecture roulait sur Opus 5, dans Claude Code, à même mon abonnement. Les conditions d'utilisation, un test d'Anthropic en avril et le prix d'Opus à l'API m'ont convaincu de le déménager chez Alibaba Cloud, sur Qwen. Restait à savoir si un modèle Qwen pouvait faire le travail. On a planté cinq phrases fausses dans le dessin, puis cinq autres dans un document privé, et fait passer dix modèles devant le même détecteur. Le moins cher de la génération 3.8 a tout corrigé, comme Opus, pour 0,06 $US par exécution. Le pipeline roule maintenant chaque nuit dessus. Avec les tableaux, les coûts réels, la réserve qui s'impose, et ce que la première nuit a montré.
Trois cartes graphiques, un cluster, et aucune charge à leur donner
J'ai acheté une carte pour la machine de jeu, ce qui en libérait une autre pour le cluster. L'idée allait de soi : donner de la capacité GPU à Kubernetes. Sauf qu'en cherchant ce qui allait s'en servir, j'ai trouvé exactement un pod, et il était épinglé sur un autre noeud. Voici comment une carte a passé une soirée à se chercher un emploi, la charge de travail qui n'a pas survécu au contact du réel, et pourquoi elle a fini par servir ailleurs que dans le cluster. Fait en session avec Claude Code (Opus 5).
J'ai fait parler mon blogue, et le modèle était la partie facile
Mon site a maintenant un chatbot qui répond aux questions sur mon labo. Il tourne sur une carte graphique dans mon sous-sol, il refuse d'inventer, et il vous contredit quand vous vous trompez. Cet article raconte le chemin : un premier montage sur un fournisseur infonuagique que j'ai fini par débrancher au complet, un banc d'essai qui donnait 12/12 à tout le monde et ne mesurait donc rien, une bascule en production faite sur une seule mesure, que j'ai dû défaire, et un drapeau de compilation qui effaçait le chat de la production tous les matins sans que personne s'en aperçoive. Travail mené en sessions avec Claude Code (Opus 5 et Sonnet 5).
Le GPU à la demande à la maison : deux postes de jeu qui se lèvent sur un interrupteur
Chez nous, personne ne va plus s'asseoir devant une tour pour jouer. On appuie sur un interrupteur dans Home Assistant, une machine avec une vraie carte graphique se lève, Steam est déjà connecté, et on joue depuis le portable de son propre bureau. Deux joueurs, deux cartes, une seule tour, qui retourne travailler pour le cluster dès que la partie est finie. Le montage, le code (public), et ce qui casse quand même. Travail mené avec Claude Code (Fable 5 et Opus 5).
Deux sources pour une seule image : ce que l'IaC déclare, ce que mes notes savent
Mes quatre dépôts d'infrastructure connaissent onze machines. Il y en a trente-sept dans la maison. Le reste, le commutateur, la borne Wi-Fi, les onduleurs, l'imprimante, la passerelle d'Hydro-Québec, ne vit que dans un document privé que je tiens à la main. Cet article raconte l'expérience en cours : faire dessiner chaque nuit, par une IA, une page d'architecture semée par ces deux sources. Comment le quart de nuit est ordonnancé, quel modèle fait quoi et pourquoi, et ce que les nuits ont trouvé que je n'avais pas vu, avec Bob qui vient expliquer son propre horaire.
Un pod qui voyage léger : sortir l'état de mon planificateur de tâches
Mon planificateur de tâches gardait ses données sur le disque de son noeud, un pod techniquement mobile, pratiquement riveté. En une session avec Claude Code (Fable 5), son moteur de stockage est passé sur S3 : 1 136 enregistrements copiés en 21 secondes, et un pod qui change maintenant de noeud en 12 secondes parce qu'il n'a plus rien à transporter. L'occasion de clarifier ce que « stateless » veut vraiment dire : on n'élimine pas l'état, on le déménage chez quelqu'un dont c'est le métier.
L'île du survivant : concevoir la dernière chose qui meurt dans son infrastructure
Après trois jours de pannes électriques et quatre tests de débranchement volontaires, mon homelab a maintenant une « île du survivant » : le routeur, le modem et un seul Raspberry Pi sur l'onduleur le moins chargé, avec pour mission de survivre à tout le reste, pour observer, alerter, puis réveiller les serveurs par IPMI quand le courant revient. Analyse de la conception : domaines de panne, sémantique des battements de coeur, et deux mécanismes de reprise complémentaires.
Laisser le pipeline appuyer sur apply : quatre dépôts IaC, trois outils, et une porte qui refuse les destroys
Tout le labo était déjà décrit en code, mais chaque apply passait encore par mes mains. On a fermé la boucle en une session : GitHub Actions avec OIDC pour le nuage, Argo CD pour le cluster, comin pour NixOS. Le plus intéressant n'est pas la plomberie : c'est ce que la porte refuse, et les deux Raspberry Pi qui se sont étouffés sur une dépendance de tests.
Débrancher le NAS pour la science : pods zombies, sondes de vivacité, et le bogue NFS qui attendait au tournant
Un redémarrage du NAS a laissé la moitié de mon cluster k3s en état « Running » avec le stockage mort en dessous, et aucune alerte. On a ajouté des sondes de vivacité partout, puis on a vérifié le travail de la manière la plus directe possible : en coupant le courant du NAS. Trois fois. Ce que les trois pannes volontaires ont trouvé, aucune revue de code ne l'aurait vu.
Claude in Chrome : quand l'agent doit passer par l'interface web
Ma règle par défaut, c'est l'API : si un système s'automatise en ligne de commande, l'agent passe par là. Sauf que mon NAS ne se configure pas complètement autrement que par son interface web. Claude in Chrome comble ce trou-là, mais après une fin de semaine à l'utiliser pour vrai, c'est clair que ce n'est pas un outil qu'on laisse rouler tout seul.
Neuf machines, zéro clé USB : migrer tout mon homelab vers NixOS
Claude Code aux commandes, moi en mode apprentissage : tout mon parc, serveurs GPU, machines virtuelles, Raspberry Pi et une instance cloud, est passé sous NixOS en une journée. C'est quoi Nix au juste, ce que ça change par rapport à Ubuntu, et pourquoi je n'aurais pas pu faire ça tout seul.
Un tiroir 1U pour mes trois Raspberry Pi : fini le fouillis sur la tablette
Coquille, worker1 et worker2 vivaient chacun dans son boîtier, empilés sur une tablette du rack mural. Un support 1U GeeekPi pour Raspberry Pi 5 plus tard, les trois noeuds sont enfin montés proprement, étiquetés, et accessibles sans démêler un nid de câbles.
Bâtir une grappe k3s avec Claude Code aux commandes
Remplacer l'hôte conteneurs unique du labo par une petite grappe k3s de six noeuds, un plan de contrôle dans le nuage, cinq noeuds à la maison, en travaillant de bout en bout avec Claude Code, jusqu'au déménagement du pipeline de déploiement de ce site sur la nouvelle grappe.
Claude Code en mode headless : automatiser le labo depuis le bastion
Comment je fais tourner Claude Code dans une session tmux persistante sur mon bastion conteneurisé, comment le mode automatique enchaîne de longues sessions à partir d'un petit prompt, comment une instance headless du même agent exécute mes sauvegardes et mes mises à jour système sans supervision, et pourquoi l'abonnement Claude Pro me coûte 40 $/mois plutôt que des centaines en jetons API.
Mon encodeur faisait du bruit : le détecteur vidéo tournait sur le CPU au lieu du GPU
Un petit vrombissement de ventilateur trop insistant a fini par révéler qu'une mise à jour avait discrètement retiré le support GPU du détecteur d'objets de mon NVR maison, et que ça tournait sur le CPU depuis un bon bout sans que je m'en aperçoive.
Fable 5 au travail : verrouiller un WebDAV en une session (et vider un forfait au passage)
J'ai fait durcir l'accès WebDAV du coffre-fort de mots de passe par Fable 5 plutôt que par ma propre instance : hash bcrypt, limite de débit à la frontière Cloudflare, et une facture en jetons qui a grimpé plus vite que prévu.
Ce que peut faire un LLM local sur une carte à 300$ : mon assistant vocal maison avec Qwen3
Un modèle Qwen3 8B tournant dans Ollama sur une RTX 3060 12 Go pilote vraiment les lumières de la maison via Home Assistant : prises TP-Link converties en entités lumière, prompt système taillé pour un petit modèle, et les leçons de fiabilité d'un vrai déploiement local.
Compartimentalisation des outils de console
Dans les dernières décennies, nous avons observé une compartimentalisation croissante dans la gestion des charges de travail. Alors qu'on hébergeait nos serveurs sur des machines physiques il y a 30 ans, aujourd'hui on…
Intégration de plugins asynchrones avec Neovim
Ça fait un bon bout que j'utilise Vim au travail. Ça me permet d'être très prolifique quand je dois manipuler des configurations ou du code. Pour vrai j'espère plus jamais avoir à changer de mode d'édition de texte,…
Site web: statique ou dynamique?
Il y a plusieurs options pour créer son site web. Plusieurs services offrent de l'hébergement avec leur outil de conception propriétaire. Je pense entre autres à Squarespace ou Wix. Pour ma part j'ai choisi le logiciel…
Gartner confirme le leadership d’AWS pour 2021
Tous les ans depuis le milieu des années 2000, AWS se réinvente et ajoute de nouveaux services à son arc en repoussant chaque fois les limites du possible. Chaque année, les prix reliés à l’ensemble de leurs services…
Taper à la vitesse de la pensée
Je vous ai déjà parlé de Vim et de tmux en vous présentant des leçons du livre de Drew Neil Practical Vim: Edit Text at the Speed of Thought . Je veux maintenant boucler la boucle sur ce précédent article en vous…
Automatiser le déploiement de son réducteur d'URL avec Terraform
Dans cette deuxième partie, nous allons automatiser le déploiement de l'infrastructure du réducteur d'URL présenté précédemment, à laquelle nous allons ajouter quelques morceaux. Je vous présenterai l'architecture et…
Déployer sa table à dessiner
Dans cette publication, je vous partagerai ce que j'en suis venu à préconiser comme environnement de travail comme DevOps. Ces dernières semaines, je me suis fait un malin plaisir à lire plusieurs livres sur les…
Créer son réducteur d'URL sur AWS
Dans cette publication, je vais vous montrer comment on peut créer simplement un réducteur d'URL hébergé dans S3. Pour ce faire, nous aurons besoin d'un petit nom de domaine et d'un compte AWS.