Formation Spring Boot : API REST, sécurité, Kafka et Docker

Spring Boot et Docker : image, CI/CD et déploiement cloud

Docker multi-stage, images optimisées, pipelines CI/CD, health checks, readiness, autoscaling, configuration sécurisée, observabilité et bonnes pratiques…

Réservé aux abonnés

Introduction

Déployer une application Spring Boot en production implique de maîtriser plusieurs briques : containerisation, pipelines CI/CD, Kubernetes, résilience et observabilité.

Ce chapitre vous guide dans la conception d’un déploiement robuste, sécurisé, performant et industrialisé avec Docker, GitHub Actions/GitLab CI, Kubernetes, readiness/liveness probes, scaling horizontal et bonnes pratiques de production.

Lexique essentiel

Multi-stage build

Technique Docker qui produit des images minimalistes.

Readiness Probe

Vérifie si l’application est prête à recevoir du trafic.

Liveness Probe

Vérifie si l’application est vivante (redémarrage automatique).

HPA

Horizontal Pod Autoscaler : scaling dynamique.

ConfigMap / Secret

Configuration externalisée et sécurisée dans Kubernetes.

Rolling Update

Déploiement progressif sans downtime.

1. Docker — Image optimisée (multi-stage)

Construire une image Docker Spring Boot nécessite un build multi-stage pour obtenir une image minimale, rapide à démarrer et sécurisée.

Dockerfile optimisé

# Stage 1 : Build
FROM maven:3.9-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn -B -q dependency:go-offline   # couche de dépendances mise en cache
COPY src ./src
RUN mvn -B -DskipTests clean package  # les tests tournent dans la CI, pas dans l'image

# Stage 2 : Runtime minimal
FROM eclipse-temurin:21-jre-alpine
RUN addgroup -S app && adduser -S app -G app
USER app                               # ne jamais exécuter en root
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

La suite de cette leçon est réservée aux abonnés

Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.