-
Des backups de base qui restaurent vraiment : le pgdata que j'ai perdu
J'ai supprimé un répertoire de données Postgres qui vivait dans un bind mount, sans rien derrière. Mon plan de backup, c'était l'espoir. Voici le setup de backup pas cher sur un seul VPS que j'aurais dû avoir, y compris l'étape que tout le monde saute.
-
Le CPU ment : autoscaler un service mono-thread
Un service ramait sous charge, mais l'autoscaling ne se déclenchait jamais parce que le CPU restait à 30 pour cent. Une app mono-thread sur une task multi-cœur sature un cœur et paraît à peine occupée. Pourquoi, et comment corriger.
-
Docker n'a jamais redémarré ma base : le prix de restart: no
Un conteneur est mort la nuit et rien ne l'a relancé, parce que chaque service était en restart: no. Les healthchecks que j'avais ne pouvaient pas aider, et la raison surprend la plupart des gens.
-
Les tests étaient déjà écrits. Rien ne les a jamais lancés.
Une régression est arrivée en production, et le test qui l'aurait attrapée était déjà dans le repo. Il n'y avait aucun script de test, et le seul workflow CI ne se déclenchait jamais sur un push. Comment j'ai câblé tout ça.
-
Docker a contourné mon pare-feu : le port de la base était ouvert sur internet
Mon pare-feu bloquait le port 5432. Il était joignable depuis internet quand même, parce que Docker écrit ses propres règles iptables que vos règles INPUT et ufw ne voient jamais. Pourquoi, et comment vraiment le fermer.
-
Le docker build qui a rempli le disque et fait tomber la production
La production est tombée sans changement de code. La cause : un docker compose build qui orphelinait une nouvelle image <none> à chaque déploiement jusqu'à remplir le disque. Ce qui l'a vraiment vidé, et le vrai correctif.
-
Faire tourner un SaaS sur un seul VPS avec Docker Compose : l'audit honnête
Tout le produit tourne sur un seul VPS derrière un docker-compose.yml. Voici pourquoi c'était le bon choix au lancement, et la carte honnête de chaque point de défaillance unique qu'il cache.
-
Cloudflare sous le capot : comment ça marche et comment les attaquants contournent la protection
Ce qui se passe vraiment quand une requête touche un site protégé par Cloudflare, comment Turnstile distingue les bots des humains, et les techniques utilisées pour trouver le serveur d'origine derrière le proxy.
- localhostnginxhttpsdevopsfullstackdx
Partager des cookies entre sous-domaines en local
Un setup local identique à la prod où les cookies sont partagés entre sous-domaines via du vrai HTTPS, sans changer une ligne d'appli. L'astuce vit dans /etc/hosts + nginx.
- architecturedevops
L'architecture compte plus que le code propre
J'ai passé 2 semaines à rendre mes fonctions serverless propres. L'architecture était mauvaise. J'ai tout réécrit en un seul serveur Express et c'était plus simple.
- devopsarchitecture
Le débogage compte plus que les fonctionnalités
Mon blog renvoyait 404 sur chaque page à 2 h du matin. Zéro visibilité sur la cause. Voici l'infrastructure de débogage que j'aurais aimé mettre en place dès le départ.
- devopsaws
Tester Lambda + EventBridge en local
Comment tester des fonctions AWS Lambda et des règles EventBridge en local avec SAM, LocalStack et docker-compose. Aucun déploiement cloud nécessaire.
-
Infrastructure générée par IA : un cauchemar de maintenance
J'ai demandé à une IA de générer du Terraform pour un setup AWS standard. Elle a produit 2 400 lignes qui marchaient parfaitement. Voici pourquoi je ne le déploierais jamais en production.