Service Mesh une complexité gratuite ou un vrai game changer pour les microservices

Posté par cohen-emile le 18/04/2026
RÉSOLU

cohen-emile

Membre depuis le 16/11/2024

Je pige pas l'engouement autour des Service Mesh genre Istio ou Linkerd.

On nous rajoute des sidecars partout qui consomment de la CPU et de la RAM, qui ajoutent des points de défaillance, et qui rendent le debug des requêtes inter-services un cauchemar.

Est-ce que K8s nativement avec des Network Policies et un Ingress correct c'est pas largement suffisant pour 90% des boîtes ?

Commentaires

adelaide03

Membre depuis le 06/12/2024

actif secouriste

C'est une question de scale et de besoins. Si t'as 3 microservices oui K8s natif ça passe. Si t'as 200 services sur plusieurs clusters avec des équipes différentes qui touchent au code t'es mort sans un Service Mesh.

mTLS automatisé sans toucher au code des apps c'est un gain SecOps juste énorme. Les politiques de trafic avancées sont un must pour les déploiements complexes.

jules13

Membre depuis le 27/04/2024

actif secouriste

mTLS c'est bien beau mais à quel prix ? Le sidecar Envoy c'est un point de défaillance de plus. Si Envoy pète ta connectivité inter-service est morte. Et si t'as une latence anormale est-ce que c'est l'app Envoy ou le réseau ? Bonne chance pour debugger.

La charge CPU et mémoire pour chaque pod ça se voit sur la facture cloud en fin de mois c'est du FinOps à l'envers.

fgosselin

Membre depuis le 17/07/2024

actif secouriste

Le debugging c'est plus facile avec un Service Mesh si tu sais l'utiliser. Toute l'observabilité est là. Tracing distribué out of the box avec des outils comme Jaeger ou Zipkin.

Les Golden Signals de chaque service sont collectés automatiquement. Tu as une visibilité que tu n'auras jamais avec des outils K8s natifs sans instrumenter chaque ligne de code de chaque service.

adelaide03

Membre depuis le 06/12/2024

actif secouriste

Exactement. Tu externalises les préoccupations réseau et sécurité du code applicatif. Les développeurs n'ont plus à se soucier de retries de timeouts de circuit breaking ou de savoir si la connexion est sécurisée.

C'est le rôle de la plateforme de gérer ça. C'est l'essence du Platform Engineering.

jules13

Membre depuis le 27/04/2024

actif secouriste

Et si ton Service Mesh est mal configuré tu te retrouves avec des règles de firewalling implicites un enfer. Une erreur de config et tout ton trafic est bloqué. C'est le genre de chose que t'as pas envie de debug à 4h du mat.

Les CRD d'Istio sont d'une complexité rare même pour des ingénieurs aguerris.

fgosselin

Membre depuis le 17/07/2024

actif secouriste

La complexité initiale est là oui. Mais le gain de résilience et de sécurité n'a pas de prix. Tu mets en place des politiques de déploiement en canary ou blue/green en quelques lignes de YAML. Sans Service Mesh c'est un script Bash de 200 lignes et des prières.

L'automatisation du mTLS avec SPIFFE/SPIRE c'est la seule solution viable pour gérer l'identité des services à grande échelle.

adelaide03

Membre depuis le 06/12/2024

actif secouriste

Parfaitement. Et pour les environnements avec des exigences SecOps élevées c'est non négociable. Avoir une preuve cryptographique de l'identité de chaque service qui communique sur le réseau interne. Auditable.

Tu peux pas faire ça avec des Network Policies qui sont du simple firewalling L3/L4.

jules13

Membre depuis le 27/04/2024

actif secouriste

Le déploiement en canary on peut le faire avec un bon Ingress Controller comme Nginx ou Traefik avec des poids. Moins complet qu'Istio certes mais tellement plus simple à opérer.

Et pour le mTLS tu peux monter cert-manager pour gérer tes certificats et les injecter dans tes pods. C'est de l'effort oui mais ça reste plus transparent que d'avoir un proxy pour chaque app.

fgosselin

Membre depuis le 17/07/2024

actif secouriste

Un proxy pour chaque app c'est le modèle sidecar. C'est justement ça qui permet d'intercepter tout le trafic et d'appliquer les politiques de manière transparente pour l'application.

Essayer de réimplémenter ça avec des outils natifs K8s c'est faire du Service Mesh avec les pieds.

adelaide03

Membre depuis le 06/12/2024

actif secouriste

Et l'uniformité des politiques. Si chaque équipe déploie sa propre implémentation de retry ou de timeout en fonction du langage ou du framework tu as un chaos d'interopérabilité.

Le Service Mesh force une uniformité essentielle pour la stabilité des Distributed Systems.

jules13

Membre depuis le 27/04/2024

actif secouriste

La "résilience" via le Service Mesh c'est de la poudre aux yeux si ton application n'est pas résiliente de base. Un circuit breaker ne sauvera pas une base de données qui crash.

Ça ajoute de la complexité sur un problème qui doit être résolu à la base dans le code applicatif.

fgosselin

Membre depuis le 17/07/2024

actif secouriste

C'est complémentaire pas substituable. L'application doit être résiliente mais le Service Mesh ajoute une couche de protection réseau que l'app ne peut pas toujours contrôler.

Et la visibilité c'est crucial. Tu peux voir chaque requête chaque latence chaque erreur entre services ce que tes logs d'app ne te donneront pas sans instrumenter de manière absurde.

adelaide03

Membre depuis le 06/12/2024

actif secouriste

La capacité à injecter des fautes pour tester la résilience (Chaos Engineering) est facilitée par le Service Mesh. Tu peux tuer le trafic entre deux services simuler une latence sans toucher aux pods.

C'est un outil puissant pour les SRE et le DevOps.

jules13

Membre depuis le 27/04/2024

actif secouriste

Oui enfin pour faire du Chaos Engineering t'as des outils dédiés comme LitmusChaos ou Chaos Mesh. Pas besoin de rajouter une usine à gaz comme Istio.

Et puis le plus gros problème c'est la migration. Tu balances ça sur une infra existante t'en as pour 6 mois à régler les problèmes de DNS de certificats de latence fantôme.

fgosselin

Membre depuis le 17/07/2024

actif secouriste

La migration est un projet oui mais le ROI est là pour les systèmes complexes. La sécurité par défaut l'observabilité de bout en bout et la gestion de trafic avancée.

Tu peux même intégrer ça avec de l'eBPF pour la couche réseau basse si tu veux encore plus de contrôle et d'observabilité.

adelaide03

Membre depuis le 06/12/2024

actif secouriste

eBPF c'est une autre technologie super intéressante mais qui ne résout pas tous les problèmes de la couche 7. Un Service Mesh fait de la gestion d'identité de l'autorisation de la couche 7.

Ce sont des niveaux d'abstraction différents.

jules13

Membre depuis le 27/04/2024

actif secouriste

Et le coût des ressources ? On en revient toujours au FinOps. Si tu ne l'exploites pas à 80% de ses capacités tu surdimensionnes ton infra pour rien.

Un cas d'usage précis comme du mTLS obligatoire pour la régulation oui mais pas un déploiement systématique.

cohen-emile

Membre depuis le 16/11/2024

Bon je vois les arguments des deux côtés.

La complexité et l'overhead sont réels et je comprends les réticences. Mais la sécurité le mTLS et l'observabilité automatique sont des arguments très forts pour nos microservices critiques.

Je pense qu'il faut viser une adoption progressive. Commencer par les services les plus sensibles en terme de sécurité ou ceux qui nécessitent des schémas de déploiement complexes. Pas un big bang sur toute l'infra.

Merci pour les perspectives très tranchées ça aide à y voir plus clair.

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire