Aller au contenu principal

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:

  1. ✅ Préparer une application pour la production
  2. ✅ Créer des images Docker optimisées
  3. ✅ Configurer un pipeline CI/CD
  4. ✅ Déployer sur le cloud (Heroku, Railway, AWS)
  5. ✅ 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​

TypeDurée
Théorie3h30 (4 chapitres)
Pratique3h (2 TPs)
Total6h30 (~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​

  1. Chapitre 1 → Comprendre le packaging
  2. Chapitre 2 + TP12.1 → Maîtriser Docker
  3. Chapitre 3 + TP12.2 → Pipeline CI/CD
  4. 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:

  1. Avez-vous Docker installé? ☐ Oui ☐ Non
  2. Avez-vous un compte GitHub? ☐ Oui ☐ Non
  3. Savez-vous ce qu'est un Dockerfile? ☐ Oui ☐ Non
  4. Connaissez-vous CI/CD? ☐ Oui ☐ Non
  5. 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


⬅️ Retour au Plan de Cours