Aller au contenu principal

Exercices et Études de Cas


Table des matières

  1. Quiz de validation
  2. Exercice 1 : Analyse de situation
  3. Exercice 2 : Conception de pipeline
  4. Étude de cas 1 : Startup en croissance
  5. Étude de cas 2 : Entreprise traditionnelle
  6. 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
  1. Deployment Frequency : Fréquence de déploiement
  2. Lead Time for Changes : Temps entre le commit et la production
  3. Mean Time to Recovery (MTTR) : Temps de récupération après incident
  4. 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
  1. Versionnement : L'infrastructure est versionnée comme du code
  2. Reproductibilité : Environnements identiques à chaque déploiement
  3. Automatisation : Provisioning automatique, pas d'erreurs manuelles
  4. Documentation : Le code sert de documentation
  5. 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èmeSolution
Déploiements raresCI/CD, déploiements fréquents
Processus manuelAutomatisation des pipelines
Taux d'échecTests automatisés, déploiements progressifs
Tests manuelsTest automation, shift left
Infra manuelleInfrastructure as Code
Monitoring réactifObservabilité proactive
SilosÉquipes cross-fonctionnelles

3. Priorités :

  1. Version control et CI basique (quick win)
  2. Tests automatisés
  3. IaC et environnements reproductibles
  4. CD et déploiements automatisés
  5. Monitoring et observabilité
  6. 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 :

ÉtapeOutil
CI/CDGitHub Actions
Buildnpm, webpack
Tests unitairesJest
Tests E2ECypress
DeployAWS CDK / Terraform
RegistryAmazon ECR
HostingECS Fargate
MonitoringCloudWatch

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

  1. L'application ne scale pas
  2. Les déploiements sont risqués
  3. 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 :

RessourceEstimation
DevOps Engineer (recrutement ou consultant)1 FTE
Coût AWS mensuel2-5K€/mois
Formation équipe5-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

  1. Réglementaire : tout changement doit être auditable
  2. Legacy : système monolithique COBOL + Java
  3. Culture : silos forts, résistance au changement
  4. 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 :

ExigenceSolution DevOps
AuditabilitéGit history, pipeline logs, IaC
TraçabilitéTout est versionné et tracé
Séparation des tâchesApprobations dans le pipeline
Tests de conformitéAutomatisés dans le CI
DocumentationDocumentation 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 :

ActionObjectif
Sponsorship C-levelLégitimité
CommunicationExpliquer le "pourquoi"
Quick winsDémontrer la valeur
FormationDévelopper les compétences
AmbassadeursRelais dans les équipes
Célébrer les succèsMotivation
Tolérer l'échecApprentissage
remarque

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

  1. Repository Git avec :

    • Application (simple API ou site web)
    • Dockerfile
    • docker-compose.yml
    • Pipeline CI/CD
    • README documentation
  2. Infrastructure :

    • Terraform ou Ansible pour le provisioning
    • Environnement de test
  3. Monitoring :

    • Dashboard Grafana basique
    • Alertes configurées

Critères d'évaluation

CritèrePoints
Code versionné et documenté20
Application conteneurisée20
Pipeline CI/CD fonctionnel25
IaC pour l'infrastructure20
Monitoring basique15
Total100

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

  1. Réalisez le projet final
  2. 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

🔝 Retour à la table des matières


← Chapitre précédent | Retour à la table des matières →