Exercices et Études de Cas
Table des matières
- Quiz de validation
- Exercice 1 : Analyse de situation
- Exercice 2 : Conception de pipeline
- Étude de cas 1 : Startup en croissance
- Étude de cas 2 : Entreprise traditionnelle
- Projet final
1 - Quiz de validation
Testez vos connaissances sur les concepts DevOps.
Questions
Q1. Que signifie l'acronyme CALMS dans le contexte DevOps ?
Voir la réponse
Culture, Automation, Lean, Measurement, Sharing
Les 5 piliers de DevOps selon le modèle CALMS.
Q2. Quelle est la principale différence entre Continuous Delivery et Continuous Deployment ?
Voir la réponse
Continuous Delivery : Le code est prêt à être déployé à tout moment, mais nécessite une approbation manuelle.
Continuous Deployment : Le code est déployé automatiquement en production après avoir passé tous les tests.
Q3. Quelles sont les 4 métriques DORA ?
Voir la réponse
- Deployment Frequency : Fréquence de déploiement
- Lead Time for Changes : Temps entre le commit et la production
- Mean Time to Recovery (MTTR) : Temps de récupération après incident
- Change Failure Rate : Pourcentage de déploiements causant des incidents
Q4. Qu'est-ce que le "Shift Left" en DevOps ?
Voir la réponse
Shift Left consiste à déplacer les activités de test, sécurité et qualité plus tôt dans le cycle de développement (vers la gauche du timeline).
Objectif : détecter les problèmes au plus tôt quand ils coûtent moins cher à corriger.
Q5. Citez 3 avantages de l'Infrastructure as Code (IaC).
Voir la réponse
- Versionnement : L'infrastructure est versionnée comme du code
- Reproductibilité : Environnements identiques à chaque déploiement
- Automatisation : Provisioning automatique, pas d'erreurs manuelles
- Documentation : Le code sert de documentation
- Auditabilité : Traçabilité des changements
🔝 Retour à la table des matières
2 - Exercice 1 : Analyse de situation
Contexte
Vous êtes consultant DevOps appelé par une entreprise de 50 développeurs. Voici leur situation actuelle :
- Déploiements : 1 fois par mois, le weekend
- Temps de déploiement : 4-6 heures manuellement
- Incidents post-déploiement : 40% des releases
- Tests : Manuels, effectués par une équipe QA séparée
- Infrastructure : Serveurs physiques, configurés manuellement
- Monitoring : Logs consultés manuellement en cas de problème
- Communication : Emails et tickets entre équipes
Questions
1. Identifiez les 5 principaux problèmes de cette organisation.
2. Pour chaque problème, proposez une solution DevOps.
3. Définissez un ordre de priorité pour les améliorations.
4. Estimez le temps nécessaire pour une transformation complète.
Voir la solution proposée
1. Problèmes identifiés :
- Déploiements rares et risqués
- Processus manuel et lent
- Taux d'échec élevé (40%)
- Tests non automatisés
- Infrastructure non reproductible
- Monitoring réactif
- Silos organisationnels
2. Solutions :
| Problème | Solution |
|---|---|
| Déploiements rares | CI/CD, déploiements fréquents |
| Processus manuel | Automatisation des pipelines |
| Taux d'échec | Tests automatisés, déploiements progressifs |
| Tests manuels | Test automation, shift left |
| Infra manuelle | Infrastructure as Code |
| Monitoring réactif | Observabilité proactive |
| Silos | Équipes cross-fonctionnelles |
3. Priorités :
- Version control et CI basique (quick win)
- Tests automatisés
- IaC et environnements reproductibles
- CD et déploiements automatisés
- Monitoring et observabilité
- Réorganisation des équipes
4. Timeline :
- Quick wins : 1-3 mois
- Transformation complète : 18-24 mois
🔝 Retour à la table des matières
3 - Exercice 2 : Conception de pipeline
Objectif
Concevoir un pipeline CI/CD pour une application web (frontend React + backend Node.js + base de données PostgreSQL).
Contraintes
- Hébergement sur AWS
- Tests unitaires, intégration et E2E requis
- Environnements : Dev, Staging, Production
- Approbation manuelle pour la production
- Rollback automatique en cas d'échec
Travail demandé
1. Dessinez le pipeline complet (utilisez un diagramme).
2. Listez les outils choisis pour chaque étape.
3. Rédigez un fichier pipeline basique (GitHub Actions ou GitLab CI).
Voir la solution proposée
1. Diagramme du pipeline :
2. Outils :
| Étape | Outil |
|---|---|
| CI/CD | GitHub Actions |
| Build | npm, webpack |
| Tests unitaires | Jest |
| Tests E2E | Cypress |
| Deploy | AWS CDK / Terraform |
| Registry | Amazon ECR |
| Hosting | ECS Fargate |
| Monitoring | CloudWatch |
3. Pipeline GitHub Actions :
name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: build
path: dist/
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
- run: npm run test:e2e
deploy-staging:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v4
- name: Deploy to Staging
run: ./deploy.sh staging
deploy-production:
needs: deploy-staging
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v4
- name: Deploy to Production
run: ./deploy.sh production
🔝 Retour à la table des matières
4 - Étude de cas 1 : Startup en croissance
Contexte
TechStartup est une startup de 15 personnes (10 devs) qui a développé une application mobile. Ils sont passés de 1 000 à 100 000 utilisateurs en 6 mois.
Situation actuelle
- Application monolithique sur un serveur dédié
- Déploiements manuels via SSH
- Pas de tests automatisés
- Downtime fréquent lors des pics d'usage
- 2 développeurs passent 50% de leur temps sur les "ops"
Problèmes
- L'application ne scale pas
- Les déploiements sont risqués
- Temps de développement perdu sur l'ops
Questions
1. Proposez une architecture cible pour supporter la croissance.
2. Définissez un plan de migration en 3 phases.
3. Estimez les ressources nécessaires (humaines et financières).
Voir la solution proposée
1. Architecture cible :
2. Plan de migration :
Phase 1 (Mois 1-2) : Fondations
- Containeriser l'application (Docker)
- Mettre en place CI/CD basique
- Ajouter des tests automatisés
- Migrer vers RDS
Phase 2 (Mois 3-4) : Scalabilité
- Déployer sur ECS Fargate
- Configurer auto-scaling
- Ajouter CDN et cache
- IaC avec Terraform
Phase 3 (Mois 5-6) : Optimisation
- Monitoring complet
- Alerting
- Optimisation coûts
- Documentation
3. Ressources :
| Ressource | Estimation |
|---|---|
| DevOps Engineer (recrutement ou consultant) | 1 FTE |
| Coût AWS mensuel | 2-5K€/mois |
| Formation équipe | 5-10K€ |
| Outils (monitoring, etc.) | 500-1K€/mois |
ROI attendu :
- 2 devs récupèrent 50% de leur temps = 1 FTE
- Réduction downtime = meilleure rétention
- Capacité à scaler = croissance business
🔝 Retour à la table des matières
5 - Étude de cas 2 : Entreprise traditionnelle
Contexte
BanqueTraditionnelle est une banque régionale avec 500 employés IT. Leur système core banking a 20 ans.
Situation actuelle
- Releases trimestrielles après validation CAB
- Change freeze de 2 mois par an
- Équipe Dev (100 personnes) vs Ops (50 personnes) vs Security (30 personnes)
- Incidents majeurs : 2-3 par trimestre
- MTTR moyen : 4 heures
- Conformité réglementaire stricte (PCI-DSS, RGPD)
Défis spécifiques
- Réglementaire : tout changement doit être auditable
- Legacy : système monolithique COBOL + Java
- Culture : silos forts, résistance au changement
- Risque : "si ça marche, on ne touche pas"
Questions
1. Comment adapter DevOps à ce contexte réglementé ?
2. Proposez une stratégie de transformation sur 3 ans.
3. Comment gérer la résistance au changement ?
Voir la solution proposée
1. DevOps en contexte réglementé :
DevOps n'est pas incompatible avec la conformité. Au contraire :
| Exigence | Solution DevOps |
|---|---|
| Auditabilité | Git history, pipeline logs, IaC |
| Traçabilité | Tout est versionné et tracé |
| Séparation des tâches | Approbations dans le pipeline |
| Tests de conformité | Automatisés dans le CI |
| Documentation | Documentation as Code |
2. Stratégie 3 ans :
Année 1 : Fondations
- Former 20 ambassadeurs DevOps
- Projet pilote : 1 application non-critique
- Mettre en place CI basique
- Commencer l'automatisation des tests
Année 2 : Expansion
- Étendre à 5-10 applications
- IaC pour les nouveaux projets
- CD vers staging automatisé
- Réorganisation en feature teams
Année 3 : Maturité
- 50% des applications en CI/CD
- Déploiements hebdomadaires
- Monitoring proactif
- Culture DevOps établie
3. Gestion du changement :
| Action | Objectif |
|---|---|
| Sponsorship C-level | Légitimité |
| Communication | Expliquer le "pourquoi" |
| Quick wins | Démontrer la valeur |
| Formation | Développer les compétences |
| Ambassadeurs | Relais dans les équipes |
| Célébrer les succès | Motivation |
| Tolérer l'échec | Apprentissage |
Dans une grande organisation, comptez 3-5 ans pour une transformation complète. La patience est clé.
🔝 Retour à la table des matières
6 - Projet final
Objectif
Créer un environnement DevOps complet pour une application simple.
Livrables
-
Repository Git avec :
- Application (simple API ou site web)
- Dockerfile
- docker-compose.yml
- Pipeline CI/CD
- README documentation
-
Infrastructure :
- Terraform ou Ansible pour le provisioning
- Environnement de test
-
Monitoring :
- Dashboard Grafana basique
- Alertes configurées
Critères d'évaluation
| Critère | Points |
|---|---|
| Code versionné et documenté | 20 |
| Application conteneurisée | 20 |
| Pipeline CI/CD fonctionnel | 25 |
| IaC pour l'infrastructure | 20 |
| Monitoring basique | 15 |
| Total | 100 |
Conseil
Commencez simple et itérez. Un projet fonctionnel basique vaut mieux qu'un projet ambitieux incomplet.
🔝 Retour à la table des matières
Félicitations !
Vous avez terminé le cours Introduction à DevOps.
Prochaines étapes recommandées
- Réalisez le projet final
- Poursuivez avec les cours spécialisés :
- Docker et conteneurisation
- Kubernetes
- CI/CD avec GitHub Actions
- Terraform et IaC
- Monitoring avec Prometheus
Ressources pour continuer
- DevOps Roadmap
- Communauté DevOpsDays
- Certifications : AWS, CKA, Terraform