É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.
- ENTRÉESpring Cloud GatewayPoint d'entrée et routage
- IDENTITÉKeycloakRealm et clients dédiés
- DÉCOUVERTEEurekaRegistre de services
- SERVICESSpring BootCinq microservices métier
- DONNÉESPostgreSQL × 5Une base par service
- microservices métier
- 5
- bases PostgreSQL, une par service
- 5
- conteneurs dans Docker Compose
- 13
Parcours d'une requête
- 01Requête du client
- 02La Spring Cloud Gateway la route
- 03Keycloak sécurise l'accès
- 04Eureka localise le service
- 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
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.