This article is available in French.
1. La culture avant les outils #
Collaboration et responsabilité partagée.
Principes CALMS #
- Culture : équipes produit responsables de bout en bout (« you build it, you run it »), erreurs traitées comme des sources d'apprentissage.
- Automatisation : build, test, déploiement et infrastructure sans intervention manuelle.
- Lean : petits lots, flux continu, réduction des files d'attente.
- Mesure : décisions fondées sur des données (DORA, SLO).
- Partage : documentation, runbooks, revues de code et post-mortems publics.
2. Livrer en continu #
CI/CD et trunk-based development.
Un pipeline type #
# .gitlab-ci.yml
stages: [build, test, scan, deploy-preprod, deploy-prod]
build:
stage: build
script: [docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA ., docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA]
test:
stage: test
script: [make test, make lint]
scan:
stage: scan
script: [trivy image --exit-code 1 --severity CRITICAL $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA, gitleaks detect --source .]
deploy-preprod:
stage: deploy-preprod
script: [helm upgrade --install app ./chart -n preprod --set image.tag=$CI_COMMIT_SHA --atomic --wait]
deploy-prod:
stage: deploy-prod
when: manual
only: [main]
script: [helm upgrade --install app ./chart -n prod --set image.tag=$CI_COMMIT_SHA --atomic --wait]- Petites modifications fréquentes sur la branche principale (trunk-based), feature flags pour masquer le travail en cours.
- Un artefact unique construit une fois, promu d'un environnement à l'autre.
- Retour arrière automatisé (
--atomic,helm rollback,kubectl rollout undo).
3. Infrastructure as Code et GitOps #
Tout est dans Git.
Principes #
# Infrastructure décrite en code, revue et testée
terraform fmt -check && terraform validate && terraform plan -out=tfplan
tflint && checkov -d .
# GitOps : Git est la source de vérité, un agent réconcilie le cluster
argocd app create shop --repo https://git.exemple.fr/shop/deploy.git --path k8s/prod --dest-server https://kubernetes.default.svc --dest-namespace prod --sync-policy automated --self-heal
argocd app diff shop && argocd app history shopErreur Courante : Les modifications manuelles « urgentes » en production créent une dérive : corrigez dans Git puis laissez l'automatisation appliquer.
4. Sécurité, fiabilité et apprentissage #
DevSecOps, SLO et post-mortems.
Intégrer la sécurité et mesurer #
- Shift-left : analyse des dépendances (SCA), des secrets, des images et de l'IaC dès la CI.
- SLO et budget d'erreur : définissez un objectif de fiabilité et arbitrez entre nouveautés et stabilité.
- Astreinte saine : alertes actionnables, runbooks, rotation équitable.
- Post-mortems sans blâme : chronologie, causes contributives, actions suivies jusqu'à la clôture.
# SLO de disponibilité 99,9 % sur 30 jours -> budget d'erreur ≈ 43 minutes
# Taux de consommation du budget (PromQL)
1 - (sum(rate(http_requests_total{status!~"5.."}[30d])) / sum(rate(http_requests_total[30d])))
# DORA : fréquence de déploiement (tags de release)
git tag --list 'v*' --sort=-creatordate --format='%(creatordate:short) %(refname:short)' | head -20Bonne Pratique : Commencez par mesurer les quatre métriques DORA, puis améliorez une seule contrainte à la fois (taille des lots, temps de build, tests flaky, processus de validation).
Schéma de référence et vérification rapide #
Visualiser le principe et le contrôler en ligne de commande.
Schéma de référence #
git log --oneline --since='7 days ago' | wc -l # fréquence des changements
kubectl rollout history deployment/apiMy progress
Sign in to track your progress and take notes. Sign in