RousselTMLEARNING

DevOps

Bonnes pratiques DevOps : culture, CI/CD, infrastructure as code et mesure

Bonnes pratiques DevOps : culture et collaboration, intégration et livraison continues, trunk-based development, Infrastructure as Code, GitOps, DevSecOps, observabilité, post-mortems sans blâme et métriques DORA.

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.
Métriques DORA
Valeurs illustratives : mesurez les vôtres avant de vous fixer des objectifs.

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 shop
Erreur 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 -20
Bonne 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 #

Pipeline CI/CD
Le même artefact est promu d'un environnement à l'autre.
git log --oneline --since='7 days ago' | wc -l          # fréquence des changements
kubectl rollout history deployment/api

Articles liés

Organiser le DevOps : flux de valeur, équipes et culture sans blâme

Mettre en place une organisation DevOps : chaîne de valeur et value stream mapping, Team Topologies, « you bu…

Git pour le DevOps : branches, revues de code et versions

Organiser le travail avec Git dans une démarche DevOps : trunk-based development ou GitFlow, branches courtes…

CI/CD de bout en bout (1/5) : principes et anatomie d'un pipeline

Comprendre la CI/CD de bout en bout : intégration continue, livraison continue et déploiement continu, étapes…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !