Skip to content

Réflexions

Articles techniques et réflexions sur l'ingénierie pragmatique, l'IA appliquée et l'architecture logicielle.

Je paie 200 $ par mois pour Claude. Voici ce que cela coûterait au prix de l'API.
Intelligence Artificielle

Je paie 200 $ par mois pour Claude. Voici ce que cela coûterait au prix de l'API.

Anthropic a déposé un S-1 confidentiel le 1er juin. La presse évoque une introduction en bourse en octobre, non confirmée par l'entreprise. Je suis un contra...

Infrastructure as code ne veut pas dire Terraform. CDK, Pulumi, et la question qui décide vraiment
Infrastructure cloud

Infrastructure as code ne veut pas dire Terraform. CDK, Pulumi, et la question qui décide vraiment

Vers 2019, « infrastructure as code » est devenu synonyme de Terraform dans la plupart des conversations, comme « recherche » veut dire Google. C'est un défa...

Ce que Claude Code a écrit de notre infrastructure, et ce que nous avons refusé de fusionner
Intelligence Artificielle

Ce que Claude Code a écrit de notre infrastructure, et ce que nous avons refusé de fusionner

Nous utilisons Claude Code quotidiennement pour le travail d'infrastructure, sur une plateforme que nous exploitons pour un client américain : stacks CDK, sc...

Des files sans Kafka : SQS, EventBridge, et le seul endroit où nous avons vraiment eu besoin d'un stream
Infrastructure cloud

Des files sans Kafka : SQS, EventBridge, et le seul endroit où nous avons vraiment eu besoin d'un stream

Chaque plateforme atteint le moment où une requête en fait trop. Le handler de checkout envoie un email, met à jour l'index de recherche, notifie l'entrepôt,...

DynamoDB single-table ou Postgres ? Comment nous avons choisi, par workload, et où nous nous sommes trompés
Développement

DynamoDB single-table ou Postgres ? Comment nous avons choisi, par workload, et où nous nous sommes trompés

Le débat DynamoDB contre Postgres se mène généralement comme une religion. Un camp dit que les données relationnelles appartiennent à une base relationnelle ...

Images Docker pour Node en 2026 : multi-étapes, distroless, et l'image de 1,1 Go devenue 140 Mo
Développement

Images Docker pour Node en 2026 : multi-étapes, distroless, et l'image de 1,1 Go devenue 140 Mo

Le premier Dockerfile de la plupart des projets Node fait onze lignes, part de node:20, copie le dépôt, lance npm install et npm run build, et livre. Ça marc...

Un monorepo avec trois applications : comment nous ne construisons que ce qui a changé, et avons fait passer le pipeline de huit minutes à trois
Développement

Un monorepo avec trois applications : comment nous ne construisons que ce qui a changé, et avons fait passer le pipeline de huit minutes à trois

Trois applications Next.js, quatre paquets partagés, un seul dépôt. C'est la forme de la plateforme que nous exploitons pour un client américain, et c'est la...

Limitation de débit : à la bordure, dans la passerelle ou dans l'application ? Trois couches, trois rôles
Infrastructure cloud

Limitation de débit : à la bordure, dans la passerelle ou dans l'application ? Trois couches, trois rôles

« Ajouter de la limitation de débit » est un ticket d'une ligne qui cache trois problèmes différents. Quelqu'un martèle la route de connexion depuis une seul...

Les health checks qui mentent : six façons pour votre service de dire « prêt » quand il ne l'est pas
Infrastructure cloud

Les health checks qui mentent : six façons pour votre service de dire « prêt » quand il ne l'est pas

Un health check est un contrat entre votre application et la chose qui lui route le trafic. Le routeur demande « peux-tu prendre une requête ? » et l'applica...

Des sauvegardes que vous n'avez jamais restaurées ne sont pas des sauvegardes. Un exercice de restauration, chronométré.
Infrastructure cloud

Des sauvegardes que vous n'avez jamais restaurées ne sont pas des sauvegardes. Un exercice de restauration, chronométré.

Chaque magasin de données AWS a des sauvegardes activées par défaut ou par une case à cocher. Aurora conserve des sauvegardes automatiques. DynamoDB a la réc...

Un runbook d'incident pour une équipe sans astreinte
Infrastructure cloud

Un runbook d'incident pour une équipe sans astreinte

Les grandes entreprises ont des rotations d'astreinte, des commandants d'incident, des matrices de sévérité et un budget d'outillage à la hauteur. Une équipe...

Faire tourner le mot de passe de la base de données sans interruption : ce que vous repoussez depuis longtemps
Infrastructure cloud

Faire tourner le mot de passe de la base de données sans interruption : ce que vous repoussez depuis longtemps

Tout le monde est d'accord pour dire que le mot de passe de la base de données devrait tourner. Presque personne ne le fait, et la raison n'est pas la paress...

WAF pour une application Next.js : les règles managées qui bloquent du trafic légitime, et ce que nous en avons fait
Infrastructure cloud

WAF pour une application Next.js : les règles managées qui bloquent du trafic légitime, et ce que nous en avons fait

Activer AWS WAF devant une application web, c'est un construct CDK et quelques cases à cocher de groupes de règles managées. C'est aussi, d'après notre expér...

Les secrets en CDK : Secrets Manager, Parameter Store, et jamais rien dans le template
Infrastructure cloud

Les secrets en CDK : Secrets Manager, Parameter Store, et jamais rien dans le template

Un template CloudFormation est un fichier texte. Il est stocké par CloudFormation, il est dans cdk.out sur le disque de chaque développeur, il est dans les l...

Réservé, Savings Plans, ou rien : quand un engagement d'un an vaut vraiment le coup à petite échelle
Infrastructure cloud

Réservé, Savings Plans, ou rien : quand un engagement d'un an vaut vraiment le coup à petite échelle

AWS vous accorde jusqu'à 72 % de remise sur le calcul si vous promettez de continuer à payer pendant trois ans. Le chiffre est réel et il figure dans toutes ...

La NAT Gateway est la ligne la plus chère que vous ne voyez pas
Infrastructure cloud

La NAT Gateway est la ligne la plus chère que vous ne voyez pas

Elle n'est pas sur la facture. Pas en tant que « NAT Gateway », en tout cas. Elle est sous EC2-Other, un type d'usage appelé NatGateway-Hours à côté d'un aut...

Les déploiements sans interruption ne sont pas une fonctionnalité de la plateforme. C'est une discipline de migration de schéma.
Infrastructure cloud

Les déploiements sans interruption ne sont pas une fonctionnalité de la plateforme. C'est une discipline de migration de schéma.

Toute plateforme de conteneurs vous dira qu'elle fait des déploiements sans interruption. App Runner, Fargate, Cloud Run, Kubernetes : toutes démarrent de no...

Dev, staging et prod dès le premier jour : pourquoi une équipe de trois ne devrait pas attendre
Infrastructure cloud

Dev, staging et prod dès le premier jour : pourquoi une équipe de trois ne devrait pas attendre

« On séparera les environnements plus tard, quand on aura des utilisateurs. » Nous avons entendu cette phrase de chaque petite équipe avec laquelle nous avon...

Vous n'avez pas besoin de Kubernetes. Vous avez besoin d'un bon Dockerfile et d'un endroit pour le faire tourner.
Infrastructure cloud

Vous n'avez pas besoin de Kubernetes. Vous avez besoin d'un bon Dockerfile et d'un endroit pour le faire tourner.

Tous les quelques mois, une équipe de trois à cinq ingénieurs nous demande si elle devrait passer à Kubernetes. L'application, c'est un front-end web, une AP...

Ce que coûte vraiment l'observabilité managée à 100 Go par jour : Datadog, Grafana Cloud, auto-hébergé
Infrastructure cloud

Ce que coûte vraiment l'observabilité managée à 100 Go par jour : Datadog, Grafana Cloud, auto-hébergé

La facture d'observabilité est celle qui surprend deux fois. La première, quand elle arrive et qu'elle représente un tiers de la facture de calcul. La second...

Des alertes qui ne savent pas dans quel cloud elles tournent
Infrastructure cloud

Des alertes qui ne savent pas dans quel cloud elles tournent

Chaque cloud vous vend des alarmes. CloudWatch Alarms, règles d'alerte Azure Monitor, politiques d'alerte Cloud Monitoring : chacune est préconfigurée, chacu...

Vos traces non plus ne devraient pas savoir dans quel cloud elles tournent
Infrastructure cloud

Vos traces non plus ne devraient pas savoir dans quel cloud elles tournent

Nous avons défendu l'idée que les logs applicatifs ne devraient pas appartenir au cloud : l'application émet, un agent y estampille le cloud, un backend neut...

Même tag, aucun déploiement : pourquoi cdk deploy avec une image inchangée ne fait rien, et le script de 300 lignes que nous avons écrit autour
Infrastructure cloud

Même tag, aucun déploiement : pourquoi cdk deploy avec une image inchangée ne fait rien, et le script de 300 lignes que nous avons écrit autour

Deux histoires sur le même pipeline de déploiement, racontées ensemble parce que la seconde existe à cause de la première. La première est un bug qui n'en es...

Politiques de protection des données CloudWatch : masquer les PII avant qu'elles n'atterrissent dans vos logs
Infrastructure cloud

Politiques de protection des données CloudWatch : masquer les PII avant qu'elles n'atterrissent dans vos logs

Un ingénieur support a demandé un log de debug sur une route d'API, « juste pour une semaine », pour traquer un bug dans la validation d'adresse. La ligne de...

Aurora Serverless v2 après six mois : le plancher de 0,5 ACU et le mythe de l'auto-pause
Infrastructure cloud

Aurora Serverless v2 après six mois : le plancher de 0,5 ACU et le mythe de l'auto-pause

Aurora Serverless v2 se vend en une phrase : payez la capacité de base de données que vous utilisez, ajustée en fractions de seconde. Six mois d'exploitation...

La limite de 500 ressources de CloudFormation, et comment nous avons découpé un stack sans perdre de données
Infrastructure cloud

La limite de 500 ressources de CloudFormation, et comment nous avons découpé un stack sans perdre de données

cdk deploy a échoué avec un message que nous n'avions jamais vu : Template format error: Number of resources, 503, is greater than maximum allowed, 500. Rien...

GitHub OIDC à la place des access keys : un rôle de déploiement par compte AWS, zéro secret dans la CI
Infrastructure cloud

GitHub OIDC à la place des access keys : un rôle de déploiement par compte AWS, zéro secret dans la CI

Il y a une clé d'accès AWS à longue durée de vie dans les secrets de votre dépôt GitHub. Elle a été créée par la personne qui a monté le premier pipeline, el...

Config au build vs config à l'exécution dans Next.js sur conteneurs : le bug qui a demandé deux déploiements
Développement

Config au build vs config à l'exécution dans Next.js sur conteneurs : le bug qui a demandé deux déploiements

Nous avons basculé un feature flag. Le flag était une variable d'environnement sur le service App Runner, NEXT_PUBLIC_NEW_CHECKOUT=true, changée via CDK, dép...

Des environnements de preview par pull request sur AWS, sans Vercel
Infrastructure cloud

Des environnements de preview par pull request sur AWS, sans Vercel

La revue de code a un plafond. Un relecteur peut lire un diff et raisonner dessus, mais il ne peut pas cliquer dessus. Pour un produit avec une interface, le...

La facture AWS d'une startup de trois personnes, ligne par ligne
Infrastructure cloud

La facture AWS d'une startup de trois personnes, ligne par ligne

Tout le monde publie des diagrammes d'architecture. Personne ne publie la facture. C'est dommage, parce que la facture est l'endroit où l'architecture devien...