Aller au contenu principal

Le Cycle de Vie DevOps


Table des matières

  1. Vue d'ensemble du cycle
  2. Phase Plan
  3. Phase Code
  4. Phase Build
  5. Phase Test
  6. Phase Release
  7. Phase Deploy
  8. Phase Operate
  9. Phase Monitor


1 - Vue d'ensemble du cycle

Le cycle de vie DevOps est une boucle infinie composée de 8 phases interconnectées.

Le symbole de l'infini

    ┌────────────────────────────────────┐
│ │
│ ┌──────┐ ┌──────┐ │
│ / DEV \ / OPS \ │
│ │ Plan │ │ Release │ │
│ │ Code ├────┤ Deploy │ │
│ │ Build │ │ Operate │ │
│ \ Test / \ Monitor/ │
│ └──────┘ └──────┘ │
│ │
└────────────────────────────────────┘

Caractéristiques du cycle

CaractéristiqueDescription
ContinuPas de fin, amélioration permanente
ItératifPetits incréments fréquents
AutomatiséMinimum d'intervention manuelle
MesuréMétriques à chaque étape
CollaboratifResponsabilité partagée

🔝 Retour à la table des matières



2 - Phase Plan

Objectif

Définir les fonctionnalités, prioriser le backlog, planifier les sprints.

Activités principales

ActivitéDescription
Collecte des besoinsComprendre ce que veut le client
PriorisationBacklog grooming, MoSCoW
EstimationStory points, planning poker
Sprint planningDéfinir le scope du sprint
Définition du "Done"Critères d'acceptation

Outils typiques

  • Gestion de projet : Jira, Azure DevOps, Trello
  • Documentation : Confluence, Notion
  • Communication : Slack, Microsoft Teams
astuce

La phase Plan bénéficie du feedback de la phase Monitor. Les métriques de production informent les décisions produit.

🔝 Retour à la table des matières



3 - Phase Code

Objectif

Écrire du code de qualité, collaborer efficacement, gérer les versions.

Pratiques essentielles

PratiqueBénéfice
Version controlHistorique, collaboration
Branching strategyIsolation, parallélisme
Code reviewQualité, partage de connaissances
Pair programmingMoins de bugs, formation
Coding standardsCohérence, maintenabilité

Stratégies de branching

Outils typiques

  • VCS : Git (GitHub, GitLab, Bitbucket)
  • IDE : VS Code, IntelliJ, Eclipse
  • Linting : ESLint, Prettier, SonarLint

🔝 Retour à la table des matières



4 - Phase Build

Objectif

Compiler le code, gérer les dépendances, créer des artifacts.

Types d'artifacts

TypeFormatUsage
ApplicationJAR, WAR, DLLExécutables
ContainerDocker ImageDéploiement conteneurisé
Packagenpm, pip, nugetBibliothèques
InfrastructureTerraform planIaC

Build reproductible

attention

Un build doit être reproductible : le même code source doit produire le même artifact, peu importe quand ou où il est construit.

Éléments clés :

  • Versions de dépendances fixées
  • Environnement de build contrôlé
  • Build dans un conteneur

Outils typiques

  • Build tools : Maven, Gradle, npm, Make
  • CI servers : Jenkins, GitLab CI, GitHub Actions
  • Artifact repos : Nexus, Artifactory, Docker Registry

🔝 Retour à la table des matières



5 - Phase Test

Objectif

Valider la qualité du code à travers différents niveaux de tests.

Types de tests

TypeScopeVitesseCoût
UnitFonction/ClasseTrès rapideFaible
IntegrationComposantsRapideMoyen
E2ESystème completLentÉlevé
PerformanceCharge/StressVariableÉlevé
SecurityVulnérabilitésVariableÉlevé

Pipeline de tests

Couverture de code

remarque

La couverture de code n'est pas un objectif en soi. 80% de couverture sur du code critique vaut mieux que 100% sur du code trivial.

Outils typiques

  • Unit tests : JUnit, Jest, pytest
  • Integration : Testcontainers, WireMock
  • E2E : Selenium, Cypress, Playwright
  • Performance : JMeter, k6, Gatling
  • Security : OWASP ZAP, SonarQube

🔝 Retour à la table des matières



6 - Phase Release

Objectif

Préparer et valider le déploiement en production.

Stratégies de release

StratégieDescriptionRisque
Big BangTout en une foisÉlevé
RollingProgressifMoyen
Blue-GreenDeux environnementsFaible
CanaryPetit pourcentage d'abordTrès faible
Feature FlagsActivation à la demandeTrès faible

Feature Flags

info

Les feature flags permettent de déployer du code sans activer la fonctionnalité. Cela découple le déploiement de la release.

Outils typiques

  • Release management : Jenkins, GitLab, Azure DevOps
  • Feature flags : LaunchDarkly, Unleash, Flagsmith
  • Approval : ServiceNow, Jira

🔝 Retour à la table des matières



7 - Phase Deploy

Objectif

Déployer l'application en production de manière fiable et reproductible.

Blue-Green Deployment

Canary Deployment

Principes de déploiement

PrincipeDescription
ImmutableNe pas modifier, remplacer
AutomatedPas d'intervention manuelle
ReversibleRollback possible
IncrementalPetit à petit
ObservableLogs et métriques

Outils typiques

  • Orchestration : Kubernetes, Docker Swarm
  • Deployment : Argo CD, Spinnaker, Flux
  • Cloud : AWS CodeDeploy, Azure DevOps

🔝 Retour à la table des matières



8 - Phase Operate

Objectif

Maintenir l'application en fonctionnement optimal.

Activités principales

ActivitéDescription
ScalingAjuster les ressources à la demande
ConfigurationGérer les paramètres runtime
Incident responseRéagir aux problèmes
BackupSauvegardes régulières
DRPlan de reprise d'activité

SRE Practices

  • SLO (Service Level Objectives) : Objectifs de disponibilité
  • SLI (Service Level Indicators) : Métriques mesurées
  • Error Budget : Marge d'erreur acceptable
astuce

"Hope is not a strategy." - SRE Proverb

La fiabilité doit être conçue et mesurée, pas espérée.

Outils typiques

  • Container orchestration : Kubernetes
  • Configuration : Consul, etcd, Vault
  • Incident : PagerDuty, OpsGenie

🔝 Retour à la table des matières



9 - Phase Monitor

Objectif

Observer, alerter et comprendre le comportement du système.

Les 3 piliers de l'observabilité

PilierDescriptionExemple
LogsÉvénements textuels"User login failed"
MetricsMesures numériquesCPU: 85%, Latency: 200ms
TracesParcours des requêtesRequest path through services

Dashboard type

┌─────────────────────────────────────────────┐
│ Dashboard │
├───────────────┬──────────────┬──────────────┤
│ Requests/s │ Latency │ Error Rate │
│ 12,450 │ 45ms │ 0.02% │
├───────────────┴──────────────┴──────────────┤
│ [═══════════════════════════════════] CPU │
│ [═══════════════════ ] MEM │
├─────────────────────────────────────────────┤
│ Alert: High latency on /api/users │
└─────────────────────────────────────────────┘

Feedback vers Plan

remarque

Le cycle se ferme : les données de monitoring alimentent les décisions de la phase Plan.

Outils typiques

  • Logs : ELK Stack, Loki, Splunk
  • Metrics : Prometheus, Datadog, New Relic
  • Traces : Jaeger, Zipkin, X-Ray
  • Dashboards : Grafana, Kibana

🔝 Retour à la table des matières



Points clés à retenir

  • Le cycle DevOps comprend 8 phases interconnectées
  • Chaque phase alimente la suivante dans une boucle continue
  • L'automatisation est présente à chaque phase
  • Le monitoring ferme la boucle en informant le planning
  • Les outils varient, les principes restent constants

🔝 Retour à la table des matières


← Chapitre précédent | Chapitre suivant : Introduction au CI/CD →