2.0 KiB
2.0 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Architecture Microservices | 2026-06-06 | 2026-06-06 | concept |
|
high | false |
|
🧩 Architecture Microservices
Définition Courte
Style d'architecture qui structure une application comme un ensemble de petits services autonomes, chacun exécutant un processus unique et communiquant via des API légères (souvent HTTP/REST ou gRPC).
Explication Détaillée
Contrairement au monolithe où toute la logique métier est dans un seul codebase, les microservices découpent l'application en services indépendants par domaine métier (auth, paiement, catalogue, etc.). Chaque service :
- Possède sa propre base de données (Database per Service).
- Est déployable indépendamment.
- Communique via des API ou une messagerie asynchrone (Kafka, RabbitMQ, NATS).
- Tolère la panne d'autres services (degraded mode).
Avantages : scalabilité indépendante de chaque service, isolation des pannes, équipes autonomes, polyglotisme technologique. Inconvénients : complexité opérationnelle accrue, latence réseau, transactions distribuées difficiles, debugging distribué.
Cas d'Usage
- Applications à fort trafic avec des composants à scalabilités différentes (ex: Netflix, Amazon, Uber).
- Équipes multiples travaillant en parallèle sur des domaines distincts.
- Migration progressive d'un monolithe legacy.
Outils Liés
- Orchestration : Kubernetes, Nomad, Docker Swarm.
- Service Mesh : Istio, Linkerd.
- API Gateway : Kong, Traefik, Envoy.
- Messagerie : Kafka, RabbitMQ, NATS.
- Observabilité : Prometheus, Jaeger, OpenTelemetry.
Pages Liées
Questions Ouvertes
- Comment gérer les transactions distribuées sans SAGA ?
- Quel est le bon découpage en microservices (taille idéale) ?
- Comment éviter le "distributed monolith" (microservices trop couplés) ?