Atlantis : deux verrous différents, pas un seul
Atlantis verrouille un répertoire Terraform contre deux PR concurrentes. Ce verrou n'a rien à voir avec le lock d'état Terraform, un mécanisme indépendant.
Un déploiement qui fait peur est un déploiement qu'on repousse, et un déploiement qu'on repousse devient un déploiement massif. Ce parcours couvre ce qui rend une chaîne prévisible.
26 articles · 4 sections
Ce qui rend un pipeline lent, fragile, ou menteur.
Atlantis verrouille un répertoire Terraform contre deux PR concurrentes. Ce verrou n'a rien à voir avec le lock d'état Terraform, un mécanisme indépendant.
Flyway impose des scripts SQL versionnés, Liquibase ajoute un changelog agnostique du SGBD et un rollback déclaratif. Le vrai critère n'est pas lequel est meilleur.
set -e n'arrête jamais un script à l'intérieur d'un if ni d'une condition &&. Comprendre les trois options séparément évite le faux sentiment de sécurité.
Un hook Helm s'exécute en dehors de la release qu'il accompagne. helm rollback ne le rejoue jamais, ce qui casse le principe même du rollback si on ne le sait pas.
Des environnements éphémères par pull request, créés et détruits automatiquement, résolvent un vrai problème de revue. Ce que ça coûte en isolation, et le piège du nettoyage qui ne se fait jamais.
GitHub Actions et GitLab CI se ressemblent en YAML mais divergent sur ce qui compte : portabilité de la plateforme, fonctionnalités intégrées, verrouillage.
Pourquoi un monorepo qui teste tout à chaque commit ne scale pas, comment un graphe de dépendances détermine ce qui a changé, et le piège du cache mal invalidé.
Des runners CI hébergés par GitHub ou GitLab ne peuvent jamais atteindre votre réseau interne. Le vrai calcul n'est pas d'abord une question de coût à la minute.
Un cache Docker mal ordonné invalide tout à chaque commit, peu importe le backend. Ce qui détermine réellement le taux de cache hit en CI, avant même BuildKit.
Comment un rollout canary se déclenche et se juge depuis le pipeline via Prometheus, et pourquoi déploiement et release ne sont pas le même événement.
Scan de vulnérabilités en garde-fou de pipeline, signature keyless des images de conteneurs avec cosign, SBOM et vérification à l'admission Kubernetes.
Pourquoi rebuilder par environnement empêche de garantir qu'on déploie ce qu'on a testé, comment marche la promotion par digest, et le piège du tag flottant.
Comment ordonnancer les migrations de schéma avant un rollout, le pattern expand/contract pour rester compatible, et pourquoi le rollback est souvent un mythe.
Le dépôt comme source de vérité, et ce que ça implique vraiment.
Le server-side apply déplace la fusion dans l'API server et remplace l'annotation last-applied par des propriétaires de champs. Ce que ça change dans Argo CD.
Les sync options d'Argo CD passées une à une : ce que chacune change à la commande appliquée, et laquelle se pose sur l'Application ou sur la ressource.
Backstage centralise la découverte des services, mais sa valeur dépend de catalog-info.yaml. Sans propriétaire clair, le catalogue diverge de la réalité.
Gérer un Application ArgoCD par service tient à dix équipes. À cent, ApplicationSets automatise la génération, mais déplace le vrai problème d'isolation.
Terraform détecte la dérive au prochain plan, quand quelqu'un pense à l'exécuter. Crossplane la corrige en continu, via le même mécanisme qui gère déjà les pods.
Un canary réussi sur un cluster ne garantit rien sur les autres régions. Comment orchestrer un rollout progressif entre clusters, vague par vague.
ArgoCD et Flux résolvent le même problème par deux modèles différents : UI centralisée contre contrôleurs composables. Le vrai critère de choix.
Comment ArgoCD réconcilie en continu l'état du cluster avec Git, la différence entre push et pull deployment, et ce que la dérive (drift) révèle vraiment.
kubectl apply n'écrase pas un objet, il le fusionne. Ce mécanisme invisible explique pourquoi un kubectl edit manuel disparaît silencieusement au prochain déploiement.
Comment les révisions d'un Deployment correspondent aux ReplicaSets, ce que kubectl rollout undo restaure vraiment, et pourquoi GitOps préfère un revert Git.
Monter de version sans casser, et savoir quand ne pas monter.
Une dépendance jamais mise à jour devient une dette de sécurité qui s'accumule en silence. Renovate et Dependabot automatisent la mise à jour, pas la même façon.
Faire circuler un secret sans le déposer dans un dépôt.
Comment un credential cloud dans la CI finit par fuiter, pourquoi masquer une variable n'est pas une frontière de sécurité, et ce que change l'identité fédérée.
Les Secrets Kubernetes sont du base64, pas du chiffrement. Comment Sealed Secrets rend un manifeste committable, quand Vault vaut son coût, comment choisir.