RousselTMLEARNING

Article · DevOps: From Discovery to Expertise

DevOps best practices

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.
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

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

My progress

  • ⏱ Estimated time : ≈ 9 min

Sign in to track your progress and take notes. Sign in

✉️ Ask a question