ÉTUDE DE CAS 05 / ACADÉMIQUE / MICROSERVICES

E-story — Plateforme de lecture et d'apprentissage en microservices

Projet académique

Une plateforme de lecture et d'apprentissage découpée en microservices Spring Boot derrière une Spring Cloud Gateway, avec authentification Keycloak et une base PostgreSQL par service, le tout exécuté avec Docker Compose.

microservices métier
5
bases PostgreSQL, une par service
5
conteneurs dans Docker Compose
13

Parcours d'une requête

  1. 01Requête du client
  2. 02La Spring Cloud Gateway la route
  3. 03Keycloak sécurise l'accès
  4. 04Eureka localise le service
  5. 05Le service lit sa propre base PostgreSQL

Problème

E-story réunit des catalogues de livres, des demandes de cours particuliers, l'évaluation de textes soumis avec leurs corrections et les réclamations des utilisateurs. Chaque domaine devait pouvoir évoluer et être déployé indépendamment.

Architecture

Une Spring Cloud Gateway sert de point d'entrée unique et route les requêtes vers les services enregistrés dans Eureka. Chaque microservice Spring Boot possède sa base PostgreSQL et appelle les autres via OpenFeign.

  • Authentification : utilisateurs, rôles, jetons de vérification et intégration Keycloak
  • Catalogues : catalogues de livres
  • Cours particuliers : demandes de cours
  • Évaluation : textes soumis et corrections
  • Réclamations : pièces jointes et tableau de bord

Sécurité avec Keycloak

Keycloak tourne dans son propre conteneur avec un realm dédié. Chaque microservice est enregistré comme client Keycloak, et le service d'authentification associe Spring Security, JWT et le Keycloak Admin Client pour gérer les comptes et les rôles.

Livraison conteneurisée

Chaque service possède son Dockerfile. Docker Compose démarre toute la plateforme sur un réseau commun : cinq bases PostgreSQL, le serveur Eureka, la gateway, Keycloak et les cinq services métier, avec les dépendances de démarrage et la configuration passée par l'environnement.

Détails techniques

Documentation Swagger / OpenAPI sur chaque service, Lombok, Bean Validation et un modèle « une base par service » qui garde chaque domaine indépendant.

Technologies

  • Java
  • Spring Boot
  • Spring Cloud Gateway
  • Eureka
  • OpenFeign
  • Keycloak
  • Spring Security
  • JWT
  • PostgreSQL
  • Hibernate / JPA
  • Docker
  • Docker Compose
  • OpenAPI / Swagger
  • Maven

PROJET SUIVANT

DevOps CI/CD

Une API Spring Boot de gestion de stock livrée par un pipeline CI/CD Jenkins : build Maven, tests unitaires, dépôt d'artefacts Nexus, image Docker et déploiement Docker Compose.