53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
---
|
|
title: Architecture Microservices
|
|
created: 2026-06-06
|
|
updated: 2026-06-06
|
|
type: concept
|
|
tags: [tech, architecture]
|
|
confidence: high
|
|
contested: false
|
|
sources: [synthesized]
|
|
---
|
|
# 🧩 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
|
|
- [[patterns-architecture]]
|
|
- [[docker]]
|
|
- [[traefik]]
|
|
|
|
## 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) ?
|
|
|
|
## Liens
|
|
- [[message-queue]]
|
|
- [[architecture-monolithique]]
|
|
- [[comparatif-reverse-proxy]]
|
|
- [[kubernetes]]
|