MFormations
Modern DevOps Engineering

Chapitre 21

21 - Livres DevOps

21 - Livres DevOps

Cours 21 : Résumés des Livres DevOps Fondamentaux

1. Site Reliability Engineering (B. Beyer, C. Jones, J. Petoff, N. Murphy)

Informations générales

  • Éditeurs : O'Reilly / Google
  • Année : 2016 (première édition)
  • Pages : 552
  • Niveau : Intermédiaire à Avancé

Résumé chapitre par chapitre

Partie I - Introduction

Chapitre 1 : Introduction

  • Définition du SRE : "Ce qui arrive quand on confie un problème d'ops à un ingénieur logiciel"
  • Points clés :
    • 50% du temps des SREs doit être consacré au développement (pas aux ops)
    • Budget d'erreur = 100% - SLO
    • Toil (tâches manuelles répétitives) doit être sous 50%
    • Citation clé : "SRE is what happens when you ask a software engineer to design an operations function"

Partie II - Principes fondamentaux

Chapitre 2 : Le budget d'erreur

  • Objectif : Quantifier le niveau de fiabilité acceptable
  • 100% de fiabilité est impossible et indésirable
  • Formule : Error Budget = 1 - SLO
  • Conséquence : Si l'error budget est épuisé, on arrête les déploiements (feature freeze)

Chapitre 3 : Monitoring

  • 4 signaux d'or (Golden Signals) :
    1. Latence : Temps de réponse
    2. Trafic : Nombre de requêtes
    3. Erreurs : Taux d'erreur
    4. Saturation : Utilisation des ressources
  • Monitoring vs Alerting : Un monitoring sans action n'a pas de valeur

Chapitre 4 : Automatisation

  • Éliminer le toil
  • Pyramide de l'automatisation :
    1. Automatiser les tâches répétitives
    2. Créer des outils self-service
    3. Automatiser la réponse aux incidents
  • Objectif : "Nobody should ever do the same thing twice"

Chapitre 5 : Release Engineering

  • Principes :
    • Builds reproductibles
    • Identité binaire (même commit = même binaire)
    • Automatisation complète
    • Séparation build/release

Chapitre 6 : Simplicité

  • Loï de Conway : Les systèmes reflètent la structure de communication de l'organisation
  • Principes :
    • "Boring is good" (la simplicité > la complexité)
    • Minimal API surface
    • Release cycles courts

Partie III - Pratiques

Chapitre 7 : Évolution des services

  • Mise en production progressive
  • Stratégies :
    • Rolling update
    • Blue/Green
    • Canary deployment
    • Feature flags

Chapitre 8 : Gestion des incidents

  • Phases :
    1. Détection
    2. Response (mitigation)
    3. Remediation
    4. Resolution
  • Principes :
    • Incident Commander (IC)
    • Operations Lead (OL)
    • Communications Lead (CL)
    • Scribe (chronologie)

Chapitre 9 : Post-mortem sans blâme

  • But : Apprendre, pas punir
  • Structure :
    • Timeline
    • Root cause analysis
    • Action items
    • Lessons learned
  • Citation : "You can't fix people, but you can fix systems"

Partie IV - Gestion

Chapitre 10 : Capacity Planning

  • Prévision de la demande
  • Load testing
  • Provisioning
  • Approche : Demand forecasting + resource modeling

Chapitre 11 : Provisioning

  • Stratégies :
    • Provisioning trop tôt = gaspillage
    • Provisioning trop tard = indisponibilité
    • Objectif : Just-in-time provisioning

Concepts clés à retenir

  1. Error Budget : Lien entre vélocité et fiabilité
  2. Toil : Ce qui est manuel, répétitif, automatisable
  3. SLOs : Objectifs mesurables de fiabilité
  4. Post-mortem blameless : Culture d'apprentissage
  5. Golden Signals : Les 4 métriques essentielles

Application pratique

# Calcul de l'error budget
slo = 99.9  # % de uptime cible
monthly_seconds = 30 * 24 * 3600  # ≈ 2,592,000s
error_budget_seconds = monthly_seconds * (100 - slo) / 100
# ≈ 2,592 secondes d'indisponibilité autorisées par mois

2. The DevOps Handbook (Gene Kim, Jez Humble, Patrick Debois, John Willis)

Informations générales

  • Éditeurs : IT Revolution Press
  • Année : 2016 (première édition)
  • Pages : 480
  • Niveau : Débutant à Intermédiaire

Résumé

Partie I : The Three Ways

1. First Way : Flow (le flux)

  • Optimiser le workflow de gauche à droite (Dev → Ops)
  • Principes :
    • Réduire les WIP (Work In Progress)
    • Petits lots fréquents
    • Automatisation du pipeline
    • Objectif : Production prête en < 15 minutes

2. Second Way : Feedback (le feedback)

  • Accélérer le retour d'info de droite à gauche (Ops → Dev)
  • Principes :
    • Monitoring en temps réel
    • Alertes pertinentes
    • Post-mortems
    • Objectif : Savoir immédiatement si un déploiement pose problème

3. Third Way : Continual Learning (l'apprentissage continu)

  • Culture d'expérimentation et d'amélioration
  • Principes :
    • Prendre des risques calculés
    • Chaos engineering
    • Partage des connaissances
    • Objectif : Amélioration continue des processus

Partie II - Où commencer

Chapitres 4-9 : Foundation

  • Mise en place du contrôle de source
  • Automatisation des tests (TDD)
  • Intégration continue
  • Checklist de démarrage :
    • Git pour tout (code, config, docs)
    • CI pipeline qui tourne sur chaque commit
    • Tests automatisés (unitaires, intégration)
    • Déploiements automatisés

Partie III - Flow

Chapitres 10-13 : Améliorer le flux

  • Environment management
  • Déploiement continu
  • Architecture orientée services
  • Pratiques clés :
    • Infrastructure as Code (IaC)
    • Containers
    • Serverless
    • Database migrations automatisées

Partie IV - Feedback

Chapitres 14-17 : Améliorer le feedback

  • Monitoring proactif
  • Télémétrie applicative
  • Analytics pour la prise de décision
  • Outils recommandés :
    • Métriques : Prometheus, Grafana
    • Logs : ELK/Loki
    • Tracing : Jaeger

Partie V - Apprentissage

Chapitres 18-20 : Apprentissage continu

  • Post-mortems sans blâme
  • Chaos engineering
  • Journées d'innovation
  • Pratiques :
    • Game Days
    • Hackathons
    • Partage de connaissances (Lunch & Learn)

Tableau des 3 Ways

AspectFirst Way (Flow)Second Way (Feedback)Third Way (Learning)
DirectionDev → OpsOps → DevOrganisation
ObjectifVélocitéQualitéAmélioration
PratiqueCI/CDMonitoringPost-mortem
MétriqueLead TimeMTTRInnovation rate

À retenir absolument

  • Lead Time : Temps du commit à la production (objectif : < 1h)
  • Deployment Frequency : Objectif : plusieurs fois par jour
  • MTTR : Mean Time To Recover (objectif : < 1h)
  • Change Failure Rate : Objectif : < 15%

3. Kubernetes in Action (Marko Lukša)

Informations générales

  • Éditeurs : Manning Publications
  • Année : 2017 (première édition), 2024 (seconde édition)
  • Pages : 624
  • Niveau : Débutant à Intermédiaire

Résumé

Partie I - Fondamentaux

Chapitres 1-3 : Introduction et Premiers pas

  • Qu'est-ce que Kubernetes ? : "Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services"
  • Architecture du cluster :
    • Control Plane : API Server, Scheduler, Controller Manager, etcd
    • Worker Nodes : Kubelet, Kube-Proxy, Container Runtime

Chapitre 4 : Pods

  • La plus petite unité déployable
  • Types :
    • Pods one-container (standard)
    • Multi-container Pods (sidecar, ambassador, adapter)
  • Lifecycle : Pending → Running → Succeeded/Failed

Chapitre 5 : Labels et Selectors

  • Labels pour l'organisation
  • Selectors pour le filtrage
  • Annotations pour les métadonnées non-identifiantes

Partie II - Workloads

Chapitre 6 : Deployments

  • ReplicaSet + rolling update
  • Stratégies :
    • RollingUpdate (graduel)
    • Recreate (tout en bas)

Chapitre 7 : Services

  • ClusterIP, NodePort, LoadBalancer
  • DNS via CoreDNS
  • Endpoint slices

Chapitre 8 : Volumes

  • emptyDir, hostPath, PersistentVolume
  • StorageClass et Dynamic Provisioning
  • CSI (Container Storage Interface)

Chapitre 9 : ConfigMaps et Secrets

  • Déclaration vs injection
  • Immutabilité des Secrets (si chiffrement etcd)

Chapitre 10 : StatefulSets

  • Identité stable (nom, réseau)
  • Ordre de démarrage garanti
  • Cas d'usage : bases de données, Kafka, Zookeeper

Partie III - Fonctionnalités avancées

Chapitre 11 : Scheduling

  • Node selectors
  • Node affinity/anti-affinity
  • Taints et tolerations
  • Pod priority et preemption

Chapitre 12 : Autoscaling

  • HPA (Horizontal Pod Autoscaler)
  • VPA (Vertical Pod Autoscaler)
  • Cluster Autoscaler
  • KEDA (event-driven scaling)

Chapitre 13 : Security

  • RBAC (Role-Based Access Control)
  • PodSecurity admission
  • Network Policies
  • ServiceAccount
  • SecurityContext

Partie IV - Écosystème

Chapitre 14 : Monitoring et logging

  • Metrics Server
  • Prometheus adapter
  • Logging patterns
  • Trois piliers : Métriques, Logs, Traces

Chapitre 15 : Custom Resources

  • CRDs (Custom Resource Definitions)
  • Operators (Kubebuilder)
  • Patterns :
    • Provisioning operators
    • App lifecycle operators
    • Day-2 operations operators

Exemples clés du livre

Pod basique :

apiVersion: v1
kind: Pod
metadata:
  name: mypod
  labels:
    app: myapp
spec:
  containers:
  - name: app
    image: nginx
    ports:
    - containerPort: 80
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 200m
        memory: 256Mi

Multi-container Pod (sidecar) :

apiVersion: v1
kind: Pod
metadata:
  name: web-app
spec:
  containers:
  - name: app
    image: myapp:latest
  - name: sidecar
    image: envoyproxy/envoy:v1.28-latest
    ports:
    - containerPort: 9901

Concepts clés :

  1. Déclaratif : Vous décrivez l'état désiré, K8s s'occupe du comment
  2. Self-healing : Kubernetes maintient l'état désiré automatiquement
  3. Extensible : CRDs et Operators pour étendre l'API
  4. Portable : Fonctionne sur tout cloud et on-premise

4. Terraform: Up & Running (Yevgeniy Brikman)

Informations générales

  • Éditeurs : O'Reilly
  • Année : 2022 (3e édition)
  • Pages : 486
  • Niveau : Débutant à Intermédiaire

Résumé

Partie I - Fondamentaux

Chapitres 1-3 : Basics

  • Pourquoi Terraform ? : IaC déclaratif, multi-cloud, idempotent
  • Workflow : initplanapplydestroy
  • HCL Basics : Resources, data sources, variables, outputs

Partie II - Modules

Chapitres 4-5 : Modules et State

  • Modules :
    • Modules publics (Registry)
    • Modules locaux (réutilisables)
    • Versioning sémantique
  • State management :
    • Backend distant (S3 + DynamoDB)
    • State locking
    • Isolation (workspaces)

Partie III - Pratiques

Chapitres 6-8 : Production-ready

  • Terragrunt : DRY configuration
  • CI/CD for Terraform : Atlantis, Terraform Cloud
  • Testing : Terratest

Chapitre 9 : Patterns avancés

  • Multiple environments (dev/staging/prod)
  • Conditional resources
  • For_each et count

Application pratique

# Module VPC réutilisable
module "vpc" {
  source     = "terraform-aws-modules/vpc/aws"
  version    = "5.0.0"
  name       = "myapp-vpc"
  cidr       = "10.0.0.0/16"
  azs        = ["eu-west-3a", "eu-west-3b"]
  public_subnets  = ["10.0.1.0/24", "10.0.2.0/24"]
  private_subnets = ["10.0.10.0/24", "10.0.11.0/24"]
  tags = {
    Environment = "production"
    ManagedBy   = "Terraform"
  }
}

5. Accelerate (Nicole Forsgren, Jez Humble, Gene Kim)

Informations générales

  • Éditeurs : IT Revolution Press
  • Année : 2018
  • Pages : 258
  • Niveau : Tout niveau (recherche empirique)

Résumé

Les 4 métriques clés (State of DevOps)

  1. Deployment Frequency : Fréquence des déploiements

    • Elite : Multiple déploiements par jour
    • High : 1x/semaine à 1x/mois
    • Medium : 1x/mois à 1x/6 mois
    • Low : < 1x/6 mois
  2. Lead Time for Changes : Temps du commit à la prod

    • Elite : < 1 heure
    • High : 1 jour à 1 semaine
    • Medium : 1 semaine à 1 mois
    • Low : > 6 mois
  3. Mean Time to Recover (MTTR) : Temps de récupération

    • Elite : < 1 heure
    • High : < 1 jour
    • Medium : < 1 semaine
    • Low : > 6 mois
  4. Change Failure Rate : Taux d'échec des changements

    • Elite : 0-15%
    • High : 16-30%
    • Medium : 16-30%
    • Low : 31-45%

Les 5 prédicteurs de performance

  1. Version Control : Tout dans Git (code, config, docs)
  2. Continuous Delivery : Pipeline automatisé
  3. Trunk-based Development : Petits commits fréquents sur main
  4. Shift Left on Security : Sécurité intégrée dès le début
  5. Loosely Coupled Architecture : Équipes autonomes

Résultats de l'étude

  • Élite : 208x plus de déploiements fréquents, 106x plus rapides
  • Culture : Basée sur la confiance, pas le blâme
  • Burnout : Réduit significativement (environnement sain)

6. The Phoenix Project (Gene Kim, Kevin Behr, George Spafford)

Informations générales

  • Éditeurs : IT Revolution Press
  • Année : 2013 (première édition)
  • Pages : 380
  • Niveau : Débutant (roman d'entreprise)
  • Genre : Business novel

Résumé

Synopsis

L'histoire suit Bill, un responsable IT chez "Parts Unlimited" (une entreprise fictive de pièces automobiles). L'entreprise est en crise : le projet "Phoenix" (projet stratégique) est en retard, les opérations sont chaotiques, et le nouveau CEO menace d'externaliser l'IT.

Les trois Ways (introduites ici)

Le mentor de Bill, Erik, lui enseigne les Three Ways (les trois voies) qui deviendront la base de The DevOps Handbook :

First Way : Comprendre le flux

  • Visualiser le travail (Kanban)
  • Réduire les WIP
  • Supprimer les goulots d'étranglement
  • Métaphore : La chaîne est aussi forte que son maillon le plus faible

Second Way : Comprendre le feedback

  • Problèmes remontés immédiatement
  • Alerter les bonnes personnes
  • Métaphore : Ne pas laisser les problèmes s'accumuler

Third Way : Culture d'expérimentation

  • Apprendre de ses erreurs
  • Prendre des risques sûrs
  • Amélioration continue (Kaizen)

Leçons clés du livre

  1. Le travail invisible tue la productivité (context switching)
  2. La théorie des contraintes : Identifier et résoudre le goulot principal
  3. L'importance des déploiements fréquents : Réduire la taille des lots
  4. La confiance : Équipes responsabilisées = équipes performantes

Citations clés

  • "IT doesn't matter. IT is the business."
  • "The First Way: flow. The Second Way: feedback. The Third Way: learning."
  • "If you don't know what your constraints are, you don't know what you should be working on."

Comparatif des livres

CritèreSRE (Google)DevOps HandbookK8s in ActionTerraform Up&RunAcceleratePhoenix Project
TypeGuide techniqueGuide pratiqueManuel techniqueGuide pratiqueRechercheRoman
DifficultéAvancéIntermédiaireDébutant-Int.Débutant-Int.Tout niveauDébutant
Pratique⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Théorie⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
À lire en premier3e2e4e5e1er6e

Ordre de lecture recommandé

  1. The Phoenix Project — Pour comprendre le "why"
  2. Accelerate — Pour les métriques et la recherche
  3. The DevOps Handbook — Pour le "how"
  4. Site Reliability Engineering — Pour le "how" avancé
  5. Kubernetes in Action — Pour la technique
  6. Terraform: Up & Running — Pour l'infrastructure