MODULE 12 - Déploiement et Production
Bienvenue au Module 12! 🚀
Votre application fonctionne en développement... mais comment la mettre en production? Ce module couvre tout le cycle de déploiement: packaging, Docker, CI/CD, et cloud.
🎓 Objectifs d'Apprentissage
À la fin de ce module, vous serez capable de:
- ✅ Préparer une application pour la production
- ✅ Créer des images Docker optimisées
- ✅ Configurer un pipeline CI/CD
- ✅ Déployer sur le cloud (Heroku, Railway, AWS)
- ✅ Gérer les configurations par environnement
📚 Prérequis
Avant de commencer ce module, vous devez avoir:
- ✅ Complété les Modules 1 à 11
- ✅ Docker Desktop installé
- ✅ Un compte GitHub
- ✅ Bases de Git (commit, push, branches)
🗺️ Plan du Module
Partie Théorique (4 chapitres)
Chapitre 1: Préparation pour Production
Durée: 45 minutes
Contenu:
- JAR exécutable vs WAR
- Profils Spring (dev, prod, test)
- Configuration externalisée
- Variables d'environnement
- Sécurité des secrets
Pourquoi important? Préparer correctement l'application
Chapitre 2: Conteneurisation Docker
Durée: 1 heure
Contenu:
- Dockerfile pour Spring Boot
- Multi-stage builds
- Docker Compose
- Optimisations (layers, JVM)
- Images légères
Pourquoi important? Standard de l'industrie
Chapitre 3: CI/CD avec GitHub Actions
Durée: 1 heure
Contenu:
- Introduction CI/CD
- GitHub Actions workflows
- Build et tests automatisés
- Publication d'images Docker
- Déploiement automatique
Pourquoi important? Automatiser les déploiements
Chapitre 4: Déploiement Cloud
Durée: 45 minutes
Contenu:
- Heroku / Railway
- AWS (Elastic Beanstalk, ECS)
- Kubernetes basics
- Bases de données managées
- Monitoring en production
Pourquoi important? Mettre en ligne
Partie Pratique (2 TPs)
TP12.1: Dockerisation Complète
Durée: 1h30
Objectif: Conteneuriser l'application
Vous allez:
- Créer un Dockerfile optimisé
- Builder une image multi-stage
- Configurer Docker Compose (app + DB)
- Tester localement
TP12.2: Pipeline CI/CD
Durée: 1h30
Objectif: Automatiser le déploiement
Vous allez:
- Créer un workflow GitHub Actions
- Automatiser tests et build
- Publier sur Docker Hub
- Déployer sur Railway/Heroku
📊 Durée Totale
| Type | Durée |
|---|---|
| Théorie | 3h30 (4 chapitres) |
| Pratique | 3h (2 TPs) |
| Total | 6h30 (~2 séances) |
🎯 Ce Que Vous Allez Comprendre
Avant ce Module
# Développement local uniquement 😰
mvn spring-boot:run
# "Comment je mets ça en ligne?"
# "C'est quoi Docker?"
# "CI/CD?"
Après ce Module
# Build automatique à chaque push
git push origin main
# → GitHub Actions:
# ✅ Tests passés
# ✅ Image Docker construite
# ✅ Publiée sur Docker Hub
# ✅ Déployée en production
# Votre app accessible sur:
# https://my-app.railway.app
# Dockerfile optimisé
FROM eclipse-temurin:17-jre-alpine
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
🚀 Pourquoi Ce Module Est Essentiel
1. Compétence Incontournable
Offres d'emploi 2024:
✓ "Docker" - 90% des offres
✓ "CI/CD" - 85% des offres
✓ "Cloud (AWS/GCP/Azure)" - 80% des offres
✓ "Kubernetes" - 60% des offres
2. DevOps Culture
Avant:
Dev: "Ça marche sur ma machine"
Ops: "Ça ne marche pas en prod"
Maintenant (DevOps):
- Même environnement partout (Docker)
- Déploiement automatique (CI/CD)
- Infrastructure as Code
3. Vélocité
Sans CI/CD:
- Déploiement manuel: 2 heures
- Risque d'erreur humaine
- Stress le vendredi
Avec CI/CD:
- Déploiement automatique: 5 minutes
- Reproductible
- Déployez quand vous voulez
🗺️ Progression dans la Formation
Module 12 = Votre application accessible au monde!
📖 Comment Aborder Ce Module
Progression Recommandée
- Chapitre 1 → Comprendre le packaging
- Chapitre 2 + TP12.1 → Maîtriser Docker
- Chapitre 3 + TP12.2 → Pipeline CI/CD
- Chapitre 4 → Options de déploiement
Prérequis Techniques
# Vérifiez que vous avez:
docker --version # Docker Desktop
git --version # Git
java -version # Java 17+
mvn -version # Maven
✅ Auto-Évaluation
Avant de commencer, répondez:
- Avez-vous Docker installé? ☐ Oui ☐ Non
- Avez-vous un compte GitHub? ☐ Oui ☐ Non
- Savez-vous ce qu'est un Dockerfile? ☐ Oui ☐ Non
- Connaissez-vous CI/CD? ☐ Oui ☐ Non
- Avez-vous déjà déployé une app? ☐ Oui ☐ Non
Ce module vous rendra compétent sur tout cela!
🎯 Prochaine Étape
Prêt à déployer en production?
➡️ Commencer avec le Chapitre 1: Préparation Production