L'architecture micro-services est un style architectural qui structure une application comme un ensemble de petits services indépendants, chacun exécutant un processus métier spécifique et communiquant via des API bien définies.
Chaque micro-service est développé, déployé et mis à l'échelle indépendamment, ce qui permet une plus grande flexibilité et résilience par rapport aux architectures monolithiques.
Point d'entrée unique pour toutes les requêtes clientes. Route les requêtes vers les micro-services appropriés et fournit des fonctionnalités transversales comme la sécurité, la surveillance et la résilience.
Maintient un registre des instances de services disponibles. Les services s'enregistrent eux-mêmes et découvrent dynamiquement les autres services.
Gestion centralisée de la configuration. Fournit une configuration externe pour les applications depuis des sources comme les dépôts Git.
Services indépendants qui exécutent une logique métier spécifique. Chaque service gère un domaine fonctionnel particulier et communique avec les autres via des API.
Fournit la tolérance aux pannes et aux latences. Prévient les échecs en cascade en échouant rapidement et en fournissant des mécanismes de secours.
Fournit l'équilibrage de charge côté client. Distribue les requêtes entre plusieurs instances d'un service pour de meilleures performances et disponibilité.
L'architecture micro-services est particulièrement adaptée aux applications complexes, aux grandes organisations et aux projets nécessitant une grande scalabilité.