⚙️ DevOps — concept, histoire, pratiques, toolchain & KPIs
DevOps = une culture d’ingénierie + des pratiques + un outillage qui relient Dev & Ops pour livrer vite et fiable : build → test → deploy → observe → improve. Le cœur : automation, feedback loops, ownership, mesure, sécurité intégrée.
DevOps — définition “pro”
Pas un job-title : un système socio-technique. Objectif : réduire lead time & incidents via automation + standards + ownership.
CultureAutomationOwnershipHistorique (Agile → CI/CD → Cloud)
De l’admin “tickets” → pipelines → infrastructure as code → SRE/observability → DevSecOps → platform engineering.
AgileCI/CDCloudPrincipes (les invariants)
Small batches, trunk-based, CI, immutable artifacts, IaC, “you build it you run it”, blameless, SLOs.
FlowFeedbackLearningPipeline CI/CD (de A à Z)
Commit → build → tests → security scans → package → deploy staging → verify → deploy prod → monitor → rollback.
CICDReleaseInfrastructure as Code (IaC)
Provisioning versionné, reproductible, auditable. GitOps, modules, policy-as-code, drift detection.
TerraformGitOpsPolicyObservabilité & SRE
Logs/metrics/traces, SLI/SLO, error budget, on-call, incident response, postmortems, capacity & perf.
SLOTracingReliabilityDevSecOps (sécurité intégrée)
SAST/DAST/SCA, secrets scanning, SBOM, supply-chain, least privilege, review IaC, hardening images.
SBOMSASTSupply-chainPlatform Engineering
Internal Developer Platform : “golden paths”, self-service, templates, paved roads, standards, finops.
IDPGolden PathSelf-serviceKPIs (DORA + Ops)
Deploy frequency, lead time, change failure rate, MTTR + availability, p95 latency, error rate, cost/unit.
DORAMTTRSLOAnti-patterns & pièges
“DevOps team = ticket factory”, pipelines fragiles, environnements divergents, secrets dans git, pas de rollback, pas d’ownership.
DebtRiskRealityPlaybook “DevOps in 30 jours”
Quick wins : CI basique, env parity, deploy staging, observabilité minimale, runbook, rollback, on-call léger.
RoadmapQuick winsRunCheat-sheet DevOps
Définition, différences avec Agile/SRE, pipeline, IaC, observabilité, sécurité, KPIs, checklists prod.
ChecklistProdOpsMental model (boucle DevOps)
DevOps n’est PAS…
| Mythe | Réalité | Conséquence |
|---|---|---|
| “DevOps = une équipe” | responsabilité partagée + plateforme | sinon : tickets & friction |
| “DevOps = CI/CD” | CI/CD = un sous-ensemble | sans ops/obs : incidents |
| “DevOps = Docker/K8s” | outils ≠ culture | complexité inutile |
Le “contrat production” (minimum)
Pour être "prod-ready", une app doit avoir :
- build reproductible (artifact versionné)
- deploy automatisé (staging + prod)
- rollback / recovery documentés
- observabilité minimale (logs + metrics + alerting)
- config par env + secrets sécurisés
- tests CI + scanning sécurité
- runbook + ownership (qui supporte ?)
DevOps = réduire le délai entre une intention (feature/fix) et un résultat fiable en production, avec une boucle de feedback courte.
Règle d’or
Si tu ne peux pas déployer et rollbacker en confiance, tu ne fais pas du DevOps : tu fais du “deployment stress”.
Définition “engineering”
DevOps désigne l’ensemble des pratiques qui réduisent la friction entre développement et exploitation, en rendant le cycle de livraison automatisé, observable et sécurisé. Il ne s’agit pas d’un outil mais d’un système : process (workflow), tech (pipeline, IaC), et humain (ownership, on-call).
DevOps = FLOW + FEEDBACK + LEARNING
FLOW : petites batches, CI, trunk-based, release fréquente
FEEDBACK : observabilité, SLO, alerting, postmortems
LEARNING : amélioration continue, automatisation, standardisation
One-liner (à coller dans IDEO-Lab)
DevOps = culture + pratiques + outillage
qui industrialisent la livraison (CI/CD) et l’exploitation (run/observe/recover),
en réduisant lead time et incidents via automation, ownership et mesure.
DevOps “réussi” : un dev peut livrer en prod en confiance (garde-fous, tests, rollback, observabilité).
Objectifs : ce que DevOps optimise vraiment
| Objectif | Indicateur | Levier |
|---|---|---|
| Vitesse | lead time | CI, small batches, automation |
| Fiabilité | change failure rate | tests, progressive delivery |
| Récupération | MTTR | rollback, runbooks, observability |
| Qualité | incident rate | standards, reviews, SLOs |
| Coût | cost/unit | FinOps, capacity, right sizing |
DevOps vs SRE (complémentaires)
| Dimension | DevOps | SRE |
|---|---|---|
| But | livrer vite & fiable | assurer fiabilité avec SLO + budgets |
| Moyens | CI/CD, IaC, automation, culture | observability, incident mgmt, reliability engineering |
| Focus | delivery pipeline + ops standards | réduction toil, capacité, perf, incidents |
Dans la pratique : DevOps construit les “routes pavées” ; SRE définit les garde-fous fiabilité et le run.
Organisation (ce qui marche)
- Ownership : une équipe produit garde la responsabilité du run (au moins niveau 1), avec support plateforme.
- Plateforme : une équipe “platform” fournit des golden paths (templates, pipelines, observability, auth, IaC modules).
- Self-service : provisionner, déployer, observer sans ticket (avec policy-as-code).
- Blameless : postmortems orientés système, pas personnes.
Timeline (approche pragmatique)
Le fil conducteur
Plus on déploie souvent, plus il faut :
- automatiser
- standardiser
- observer
- sécuriser
=> DevOps devient inévitable à l’échelle.
Pourquoi DevOps s’impose
| Pain point | Réponse DevOps | Effet |
|---|---|---|
| Releases rares | small batches + CI/CD | moins de risque par changement |
| Envs divergents | IaC + parity + containers | moins de surprises prod |
| Prod opaque | observability | MTTR réduit |
| Sécurité tardive | shift-left security | moins de failles en prod |
Le “vrai” DevOps arrive quand l’industrialisation (pipelines, IaC, obs) devient un produit interne.
Les 10 invariants (pragmatiques)
- Small batches : livrer par petites unités (moins de risque).
- Trunk-based : branches courtes, merge fréquent.
- CI : build & tests automatiques à chaque commit.
- Immutable artifacts : ce qui est testé est déployé (même artifact).
- IaC : infra versionnée, reproductible, auditable.
- Environment parity : staging ≈ prod (mêmes configs/versions).
- Observability : logs/metrics/traces + alerting utile.
- Progressive delivery : canary, blue/green, feature flags.
- Security by design : shift-left + supply-chain.
- Measure & improve : KPIs, postmortems, automatisation continue.
Release management : “on déploie souvent sans trembler”
Patterns :
- Feature flags (déployer sans activer)
- Canary release (5% → 25% → 100%)
- Blue/Green (switch instant)
- Rollback (version N-1) + roll-forward (fix rapide)
- Database migrations safe (expand/contract)
Les feature flags réduisent le couplage “release = feature”.
Run : ce que “ops-friendly” veut dire
| Capacité | Attendu | Exemple |
|---|---|---|
| Diagnostics | corr_id, logs structurés | trace request |
| Résilience | timeouts, retries, circuit-breaker | éviter cascade failure |
| Recovery | runbook, restore, rollback | RTO/RPO |
| Capacity | autoscaling, budgets | load tests |
People : la partie “invisible” mais décisive
- Blameless : on corrige le système, pas les personnes.
- Shared ownership : pas de “mur” Dev/Ops.
- Toil reduction : automatiser ce qui se répète.
- Platform as product : l’outillage interne a un backlog, des SLA, une UX.
Flow “standard” (du commit à prod)
Commit/PR
-> Lint + Unit tests
-> Build artifact (version, sha)
-> SCA/SAST + secrets scan + SBOM
-> Integration tests (db/cache/queues)
-> Package (container/image) + signature
-> Deploy STAGING (IaC/GitOps)
-> Smoke tests + perf sanity + security checks
-> Approval policy (si nécessaire)
-> Progressive deploy PROD (canary/blue-green)
-> Verify SLO (p95, error rate)
-> Promote/roll forward
Gates (ce qui bloque un déploiement)
| Gate | Check | But |
|---|---|---|
| Quality | tests + coverage minimal | éviter régressions |
| Security | SAST/SCA + secrets scan | réduire vulnérabilités |
| Policy | IaC policy-as-code | garde-fous infra |
| Runtime | smoke + SLO verify | détection rapide |
Un gate efficace est automatique, rapide, et actionnable (message clair).
Database migrations “safe” (expand/contract)
Pattern expand/contract :
1) Expand : ajouter colonnes/tables compat (nullable, defaults)
2) Deploy app compatible (lit ancien + nouveau)
3) Backfill data (job idempotent)
4) Switch reads/writes (feature flag)
5) Contract : supprimer ancien schéma
=> objectif : zéro downtime, rollback possible
Piège : migrations “destructives” au mauvais moment (DROP/ALTER lourds) sans stratégie.
Rollback & recovery (à préparer avant)
Rollback application :
- redeploy version N-1 (artifact immuable)
- revert feature flags
- vérifier SLO
Rollback DB :
- éviter autant que possible (complexe)
- préférer migrations backward-compatible
- snapshots/restore en dernier recours
Toujours :
- runbook + exercice (game day)
Pourquoi IaC est central
- Reproductible : même infra en dev/staging/prod.
- Auditable : Git history = qui a changé quoi.
- Testable : lint/plan/validate, environnements éphémères.
- Automatisable : self-service via modules.
GitOps (idée simple)
Git = source of truth
Un agent réconcilie l'état réel vers l'état désiré
=> drift détecté, changements traçables
Garde-fous IaC
| Garde-fou | But | Exemple |
|---|---|---|
| Modules | standardiser | vpc module, db module |
| Policy-as-code | bloquer erreurs | pas de SG 0.0.0.0/0 |
| Plan review | visibilité | diff infra dans PR |
| Drift detection | alignement | alert si change manuel |
L’IaC échoue surtout par absence de conventions (modules) et par changements manuels (drift).
Logs / Metrics / Traces (et pourquoi les 3)
| Signal | Répond à | Bon usage |
|---|---|---|
| Logs | “Que s’est-il passé ?” | events structurés + corr_id |
| Metrics | “Ça va ?” | SLO, capacity, dashboards |
| Traces | “Où est la latence ?” | latency breakdown, deps |
4 golden signals (SRE) :
- latency (p95/p99)
- traffic (RPS)
- errors (rate)
- saturation (CPU, DB connections, queue depth)
SLI / SLO / Error budget
SLI = mesure (ex: % requêtes < 300ms)
SLO = cible (ex: 99.9% sur 30 jours)
Error budget = marge d'erreur acceptable
Usage :
- si budget consommé -> freeze features, fiabilisation
- sinon -> on ship
Un SLO est un contrat “produit”. Il doit refléter l’expérience utilisateur, pas la vanité métrique.
Alerting utile (pas du bruit)
- Page uniquement si action immédiate requise.
- Préférer symptom-based (SLO breach) plutôt que cause-based partout.
- Chaque alerte doit avoir : runbook + owner + severity.
- Éviter : alertes CPU sans contexte, “flapping”, seuils statiques ignorants du trafic.
Incident response + postmortem (blameless)
Incident flow :
1) Detect (alert/SLO)
2) Triage (severity, scope)
3) Mitigate (rollback, disable feature, scale)
4) Communicate (status)
5) Resolve (root cause fix)
6) Postmortem (actions préventives + automation)
Postmortem = document système :
- timeline
- contributing factors
- detection gaps
- corrective actions (owner + due date)
Shift-left (dans la CI)
| Contrôle | But | Output |
|---|---|---|
| SAST | bugs sécurité code | findings PR |
| SCA | vulns deps | CVE + remediation |
| Secrets scan | éviter fuites | block merge |
| IaC scan | misconfig infra | policy violation |
Règle : sécurité = automatique et developer-friendly, sinon elle est contournée.
Supply-chain (ce qui devient critique)
Pratiques :
- SBOM généré (liste deps)
- signature des artifacts (images, packages)
- provenance (build attestations)
- registries privés
- pin versions + allowlist
- mise à jour deps régulière
Objectif : savoir “ce qui tourne en prod” et pouvoir patcher vite.
Runtime security (prod)
- Least privilege (IAM minimal, RBAC, service accounts).
- Secrets management (pas d’env vars en clair si possible, rotation).
- Hardening images (base minimal, patch cadence).
- Network policies (segmentation, egress control).
- Audit logs (who did what).
Pourquoi “platform” apparaît
Quand l’organisation grandit, “faire du DevOps” au niveau équipe produit devient coûteux. On crée une plateforme interne pour standardiser et réduire la charge cognitive (cognitive load).
Ce qu’une IDP doit fournir (minimum)
| Capacité | Livrable | Effet |
|---|---|---|
| Templates | starter repo | cohérence immédiate |
| Pipelines | CI/CD standard | delivery fiable |
| Observabilité | dashboards & alerts | MTTR réduit |
| Secrets/IAM | patterns | sécurité systémique |
| Runbooks | ops docs | support plus simple |
Une plateforme réussie est celle que les devs choisissent (UX + adoption), pas celle qu’on impose par décret.
DORA (4 métriques qui comptent)
| Métrique | Définition | But | Leviers |
|---|---|---|---|
| Deployment Frequency | déploiements / temps | flow | automation, small batches |
| Lead Time | commit → prod | vitesse | CI rapide, trunk-based |
| Change Failure Rate | % deploys qui cassent | qualité | tests, canary, flags |
| MTTR | mean time to restore | résilience | obs, rollback, runbooks |
SLO & Run metrics
| Signal | Exemple | Pourquoi |
|---|---|---|
| Availability | 99.9% | expérience utilisateur |
| Latency | p95 & p99 | perception perf |
| Error rate | 5xx% | stabilité |
| Saturation | CPU, DB conns | prévenir incidents |
FinOps (cost/unit)
Mesurer :
- coût par requête / par utilisateur / par job
- coût stockage / logs / traces
- coût des environnements non utilisés
Leviers :
- right sizing
- autoscaling
- retention policies
- budgets + alerting
Qualité (signal “long terme”)
- Flakiness tests (%)
- Time-to-detect incidents
- Backlog dette technique (et sa tendance)
- Vulnérabilités ouvertes (âge moyen)
- MTBF (time between failures) si pertinent
Top anti-patterns
| Anti-pattern | Pourquoi ça arrive | Conséquence |
|---|---|---|
| “DevOps team” ticket factory | ownership absent | bottleneck + frustration |
| Pipelines fragiles | pas de standards, scripts ad hoc | CI rouge = blocage |
| Envs divergents | pas de parity | “works on my machine” |
| Secrets dans Git | manque de secret manager | incident sécurité |
| Pas de rollback | release non pensée | incidents longs |
| Alert fatigue | trop d’alertes non actionnables | on ignore |
| Tool-driven DevOps | focus outils | complexité sans ROI |
Symptômes “ça ne marche pas”
- Déployer prend des heures/jours et nécessite des experts.
- CI rouge en permanence, tests flakey, scripts non maintenus.
- On-call “panique”, pas de runbooks.
- Les incidents se répètent (pas d’actions postmortem).
- La plateforme est évitée (pas d’UX, pas de golden path).
Remèdes (concrets)
1) Mettre un "golden pipeline" standard (template)
2) Imposer parity staging/prod (IaC, versions)
3) Ajouter rollback + progressive delivery
4) Observabilité minimale + runbooks
5) Réduire alert noise (SLO based)
6) Security scanning + secret manager
7) Ownership clair + postmortems actionnables
Jours 1–7 : stabiliser le flow
- CI minimal : lint + unit tests + build artifact immuable.
- Secrets : retirer du repo, introduire un secret manager.
- Staging “vrai” : environnement dédié + parity maximale.
- Release notes : version + changelog automatique.
- Rollback app : procédure redeploy N-1 validée.
Jours 8–15 : fiabiliser
- Tests d’intégration (DB/queue/cache) en CI.
- Observabilité minimale : logs structurés + metrics p95 + error rate.
- Alerting : 3 alertes max (SLO, errors, saturation).
- Runbooks : top 5 incidents probables.
Jours 16–30 : industrialiser
- IaC : infra versionnée (au moins les ressources critiques).
- Progressive delivery : canary ou blue/green + feature flags.
- Security scans : SAST/SCA + SBOM + signature artifacts.
- Postmortems : format standard + actions suivies.
- Golden path : starter template + pipeline + obs intégrés.
Objectif 30 jours : déployer en confiance, rollback rapidement, voir ce qui se passe, et réduire la charge cognitive.
Definition of Done “prod”
- pipeline green
- deploy staging auto
- deploy prod progressive
- rollback documenté
- dashboards + alerts
- secrets safe
- runbook + owner
Checklist DevOps (prod-ready)
- CI : lint + unit tests + build artifact versionné.
- CD : deploy staging auto + smoke tests.
- Deploy prod : progressive (canary/blue-green) + verify SLO.
- Rollback : redeploy N-1 + feature flags.
- IaC : infra versionnée + plan review + drift detection.
- Secrets : manager + rotation + least privilege.
- Observabilité : logs structurés + metrics + traces.
- Alerting : SLO-based, actionnable, runbooks.
- Runbooks : top incidents + restore DB (RTO/RPO).
- Security : SAST/SCA + SBOM + signature artifacts.
- Ownership : qui supporte ? on-call ? escalade ?
- Mesure : DORA + MTTR + SLO + cost/unit.
Résumé (à copier)
DevOps = culture + pratiques + outillage qui industrialisent
la livraison et l'exploitation des logiciels.
Objectifs :
- réduire lead time (vitesse)
- réduire change failure rate (qualité)
- réduire MTTR (recovery)
- respecter des SLO (fiabilité)
Moyens :
CI/CD + IaC + observabilité + sécurité intégrée + ownership + mesure.
Mini diagram (workflow)
Code -> CI -> Artifact -> Deploy Staging -> Verify -> Deploy Prod
| |
Security scans Observe/SLO
| |
SBOM/Sign Rollback/Runbook
