📅 Année universitaire : 2025–2026 Ce dépôt contient l'ensemble des ressources pédagogiques et techniques pour le module de développement d'architectures microservices. L'objectif est de transformer une application monolithique de recrutement en un système distribué résilient et scalable.
À l'issue de cette formation, l'apprenant sera capable de :
- AA1 : Distinguer les architectures microservices des monolithes en identifiant leurs avantages et contraintes opérationnelles.
- AA2 : Concevoir et développer des services autonomes en respectant les principes de découplage et de responsabilité unique.
- AA3 : Mettre en œuvre la découverte de services pour automatiser la mise en relation dynamique des composants du système.
- AA4 : Configurer une API Gateway pour centraliser le routage des flux et appliquer des filtres transverses.
- AA5 : Gérer la configuration externalisée pour modifier le comportement des services sans redémarrage manuel.
- AA6 : Sécuriser l'architecture via des mécanismes d'authentification et d'autorisation centralisés.
- AA7 : Conteneuriser les applications avec Docker pour assurer un déploiement fluide et reproductible.
- AA8 : Réaliser un projet complet intégrant la communication inter-services et la validation des flux de bout en bout.
Le projet s'appuie sur un système réel de gestion d'offres d'emploi.
Initialement, toutes les entités (Candidats, Jobs, Candidatures, Meetings) partagent le même espace et la même base de données.
L'application est découpée en domaines métier autonomes (Bounded Contexts) :
-
Candidate Domain (Microservice 1)
-
Job Domain (Microservice 2)
-
Application Domain (Microservice 3)
-
Notification Domain (Microservice 4)
-
Meeting Domain (Microservice 5)
L'architecture finale (Validation AA8) intègre l'ensemble des composants d'infrastructure nécessaires à un environnement de production :
-
API Gateway : Point d'entrée unique (Spring Cloud Gateway).
-
Service Discovery : Annuaire dynamique (Netflix Eureka).
-
Config Server : Gestion centralisée des propriétés (Git/Native).
-
Message Broker : Communication asynchrone (RabbitMQ).
-
Identity Provider : Sécurisation des accès (Keycloak).
| Composant | Technologie |
|---|---|
| Langages | Java (Spring Boot), Python (FastAPI), Node.js |
| Bases de données | H2, MySQL, MongoDB |
| Infrastructure | Docker, Docker Compose |
| Communication | REST (Synchrone) & RabbitMQ (Asynchrone) |
| Front End | Angular |
Enseignante : Badia Bouhdid
Ce workshop a été développé dans le cadre du module Applications Web Distribuées,
à l’École d’Ingénieurs ESPRIT.


