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) :
- Latence : Temps de réponse
- Trafic : Nombre de requêtes
- Erreurs : Taux d'erreur
- 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 :
- Automatiser les tâches répétitives
- Créer des outils self-service
- 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 :
- Détection
- Response (mitigation)
- Remediation
- 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
- Error Budget : Lien entre vélocité et fiabilité
- Toil : Ce qui est manuel, répétitif, automatisable
- SLOs : Objectifs mesurables de fiabilité
- Post-mortem blameless : Culture d'apprentissage
- 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
| Aspect | First Way (Flow) | Second Way (Feedback) | Third Way (Learning) |
|---|---|---|---|
| Direction | Dev → Ops | Ops → Dev | Organisation |
| Objectif | Vélocité | Qualité | Amélioration |
| Pratique | CI/CD | Monitoring | Post-mortem |
| Métrique | Lead Time | MTTR | Innovation 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 :
- Déclaratif : Vous décrivez l'état désiré, K8s s'occupe du comment
- Self-healing : Kubernetes maintient l'état désiré automatiquement
- Extensible : CRDs et Operators pour étendre l'API
- 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 :
init→plan→apply→destroy - 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)
-
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
-
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
-
Mean Time to Recover (MTTR) : Temps de récupération
- Elite : < 1 heure
- High : < 1 jour
- Medium : < 1 semaine
- Low : > 6 mois
-
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
- Version Control : Tout dans Git (code, config, docs)
- Continuous Delivery : Pipeline automatisé
- Trunk-based Development : Petits commits fréquents sur main
- Shift Left on Security : Sécurité intégrée dès le début
- 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
- Le travail invisible tue la productivité (context switching)
- La théorie des contraintes : Identifier et résoudre le goulot principal
- L'importance des déploiements fréquents : Réduire la taille des lots
- 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ère | SRE (Google) | DevOps Handbook | K8s in Action | Terraform Up&Run | Accelerate | Phoenix Project |
|---|---|---|---|---|---|---|
| Type | Guide technique | Guide pratique | Manuel technique | Guide pratique | Recherche | Roman |
| Difficulté | Avancé | Intermédiaire | Débutant-Int. | Débutant-Int. | Tout niveau | Débutant |
| Pratique | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| Théorie | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
| À lire en premier | 3e | 2e | 4e | 5e | 1er | 6e |
Ordre de lecture recommandé
- The Phoenix Project — Pour comprendre le "why"
- Accelerate — Pour les métriques et la recherche
- The DevOps Handbook — Pour le "how"
- Site Reliability Engineering — Pour le "how" avancé
- Kubernetes in Action — Pour la technique
- Terraform: Up & Running — Pour l'infrastructure