Pour DevOps / CI-CD
À la fin de ce cours, vous serez capables de :
/actuator/health
Spring Boot Actuator est un module officiel qui expose automatiquement des endpoints techniques pour superviser votre application :
Vous n’avez aucun contrôleur Java à écrire : tout est généré automatiquement par Spring Boot.
Actuator = le tableau de bord de votre application.
Ajouter la dépendance dans pom.xml :
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
puis management.endpoints.web.exposure.include=health dans votre fichier application.properties ou application.yaml
management.endpoints.web.exposure.include=health
Une fois Actuator activé, Spring Boot crée automatiquement un GET /actuator/health
GET /actuator/health
Exemple si tout va bien (réponse retournée en JSON):
{ "status": "UP" }
{ "status": "DOWN" }
Aucun code Java n’est nécessaire : Spring Boot gère tout.
Un healthcheck sert à vérifier que votre application fonctionne réellement après un déploiement:
Après un déploiement automatisé, un pipeline CI/CD doit :
Exemple de job deploy :
deploy: stage: deploy image: eclipse-temurin:17-jdk-alpine script: | java -jar target/app.jar & sleep 12 apk add --no-cache curl if curl -f http://localhost:8080/actuator/health; then echo "Healthcheck OK" else echo "Healthcheck KO" exit 1 fi when: manual
Explication :
Vous pouvez ajouter le healthcheck dans l’image :
HEALTHCHECK CMD curl -f http://localhost:8080/actuator/health || exit 1
Docker pourra alors dire :
Dans un pod Kubernetes :
livenessProbe: httpGet: path: /actuator/health port: 8080 initialDelaySeconds: 10 periodSeconds: 5
Kubernetes relance automatiquement le conteneur si :
Attendu : { "status": "UP" }
Créer un job :
Attendu : le job échoue si l’app ne démarre pas correctement.
server.port=9999
Attendu : healthcheck KO : job en rouge normalement
Correction :
Pas compliqué à mettre en place mais important de le faire !