L'essor des microservices basés sur des proxys : dévoilement de l'architecture
L'essence des microservices basés sur des proxys
Les architectures de microservices basées sur des proxys interposent un proxy réseau léger entre les instances de service et le monde extérieur, qu'il s'agisse d'autres services ou de clients. Ce proxy, souvent appelé « side-car », est bien plus qu'un simple agent de la circulation : c'est une sentinelle silencieuse qui intercepte, inspecte et transforme les requêtes à mesure qu'elles circulent dans le maillage éphémère des microservices.
Pourquoi adopter cette approche ?
- Séparation des préoccupations:Décharger les préoccupations transversales (sécurité, observabilité, fiabilité) de la logique métier
- Application uniforme des politiques:Centraliser le contrôle d'accès, la limitation du débit et la coupure de circuit
- Modèles de résilience: Injecter des nouvelles tentatives, des replis et des délais d'expiration de manière transparente
- Observabilité: Capturez les traces et les métriques sans modification de code
- Sécurité Zero Trust: Crypter tout le trafic et vérifier les identités automatiquement
Anatomie architecturale : comment les proxys incarnent l'éthique des microservices
Modèle de side-car
Chaque pod de service est accompagné d'un processus proxy : Envoy, Linkerd ou HAProxy sont des choix courants. Le trafic destiné au service est acheminé via le side-car, qui applique les politiques réseau, collecte la télémétrie et gère le chiffrement mTLS.
Exemple de manifeste (Kubernetes + Istio) :
apiVersion : v1 kind : Pod metadata : name : poets-service spec : conteneurs : - name : poets-app image : registry.example.com/poets:latest - name : istio-proxy image : docker.io/istio/proxyv2:1.18.0 args : ["proxy", "sidecar"]
Istio injecte automatiquement le istio-proxy
side-car, tissant une tapisserie invisible de contrôle autour de votre service.
Service Mesh : le réseau comme organisme vivant
Un maillage de services, comme Istio, Linkerd, ou Consul Connect, orchestre la configuration et le cycle de vie de ces proxys, rendant le réseau de service à service programmable et observable.
Ressource:
– Documentation officielle d'Envoy Proxy
– Architecture Linkerd
Avantages pratiques : un tableau des compromis
Fonctionnalité | Microservices basés sur des proxys | Microservices traditionnels |
---|---|---|
Traçage distribué | Natif, transparent | Instrumentation manuelle |
mTLS partout | Automatisé | Responsabilité de l'application |
Disjoncteur | Déclaration, basée sur des politiques | Explicite dans le code |
Limitation de débit | Centralisé, dynamique | Décentralisé, statique |
Sorties de Canary | Répartition du trafic au niveau du proxy | Géré par l'équilibreur de charge |
Découverte de services | Intégré, dynamique | Registre externe nécessaire |
Isolation des pannes | Par requête, au niveau du proxy | Niveau code ou infrastructure |
Ce tableau évoque un monde où le réseau n’est plus un handicap, mais une toile propice à l’innovation.
Modèles exploitables : mise en œuvre de microservices basés sur des proxys
1. Déploiement d'un proxy Sidecar
Dans Kubernetes, l'injection side-car peut être automatisée avec des outils comme Istio ou Linkerd.
Étape par étape : exemple Istio
- Installer Istio :
frapper
curl -L https://istio.io/downloadIstio | sh -
cd istio-*
exportation PATH=$PWD/bin:$PATH
istioctl install --set profile=demo -y
espace de noms d'étiquette kubectl par défaut istio-injection=enabled - Déployez votre service :
« `yaml
Version de l'API : v1
genre : Service
métadonnées:
nom : poets-app
spécifications:
ports:- port : 80
nom : http
sélecteur:
application : poètes
- port : 80
Version de l'API : apps/v1
type : Déploiement
métadonnées:
nom : poètes-déploiement
spécifications:
répliques : 1
sélecteur:
Étiquettes de correspondance :
application : poètes
modèle:
métadonnées:
étiquettes:
application : poètes
spécifications:
conteneurs:
– nom : poets-app
image : registry.example.com/poets:latest
“`
L'injection Sidecar ajoutera automatiquement le proxy Envoy ; plus de code standard fastidieux.
- Appliquer la politique de circulation :
yaml
Version de l'API : networking.istio.io/v1alpha3
type : DestinationRule
métadonnées:
nom : poètes-destination
spécifications:
hôte : poets-app
Politique de trafic :
connexionPool :
tcp:
maxConnections : 1
2. Observabilité sans modification de code
Une fois les proxys en place, la télémétrie circule comme un vin lors d'une soirée française. Istio et Linkerd exposent les métriques via les points de terminaison Prometheus, prêtes à être utilisées. Grafana tableaux de bord.
Extraire les métriques :
kubectl -n istio-system port-forward svc/prometheus 9090 # Ouvrez http://localhost:9090 pour interroger les métriques
3. Application de mTLS sans intervention du développeur
Configurez les règles d’authentification et de destination des homologues, et le maillage crypte toutes les communications de service à service.
Exemple d'authentification entre pairs Istio :
apiVersion : security.istio.io/v1beta1 kind : PeerAuthentication metadata : name : default namespace : default spec : mtls : mode : STRICT
Plus besoin de créer manuellement des tunnels TLS dans chaque service.
Exemple de niveau de code : coupure de circuit sans code
DestinationRule (Istio) pour la coupure de circuit :
apiVersion : networking.istio.io/v1alpha3 kind : DestinationRule metadata : name : circuit-breaker spec : host : poets-app trafficPolicy : outlierDetection : consecutive5xxErrors : 1 interval : 1 s baseEjectionTime : 30 s maxEjectionPercent : 100
Cette incantation YML confère à votre service de la résilience, aucune modification de code n'est requise.
Quand ne pas utiliser de microservices basés sur des proxys
Scénario | Maillage basé sur un proxy | Alternative plus simple |
---|---|---|
< 5 services, faible complexité | Aérien | Communication directe |
Services Edge, réservés au public | Inutile | Passerelle API |
Environnements aux ressources très limitées | Peut être lourd | Proxies légers |
Lectures et ressources complémentaires
- Concepts de sécurité Istio
- Chaîne de filtres proxy Envoy
- Comparaison entre Linkerd et Istio
- Maillage de services Consul Connect
Le pouls du cloud moderne
Les architectures de microservices basées sur des proxys, avec leur chorégraphie complexe de proxys et de politiques, illustrent la quête d'ordre et de créativité de l'ère numérique. Le réseau, autrefois un monde souterrain obscur, devient désormais une scène : chaque proxy, chaque acteur, chaque requête, un vers fugace dans la poésie des systèmes distribués.
Commentaires (0)
Il n'y a pas encore de commentaires ici, vous pouvez être le premier !