Les entreprises doivent-elles adopter les service mesh en 2019 ?

Si les services mesh sont une technologie clé pour le maillage de services, ils ne doivent pas être envisagés comme une fin en soi. A ce titre, Kubernetes permet de mettre en œuvre efficacement des conteneurs d’applications.

Depuis plusieurs mois, les services mesh sont au cœur de l'attention et figurent à l’agenda de toutes les conférences. Si les experts ne tarissent pas d’éloges sur cette technologie, elle n’a pas encore atteint le degré de maturité nécessaire pour un déploiement efficace à l’échelle des entreprises. Ces dernières hésitent ainsi à franchir le pas et délaisser les outils existants. Mais comment peuvent-elles savoir si les service mesh répondent à leurs besoins actuels ?

Evaluer les besoins réels

Si les services mesh sont une technologie clé pour le maillage de services, ils ne doivent pas être envisagés comme une fin en soi. A ce titre, Kubernetes fournit une puissante plateforme open source permettant de mettre en œuvre efficacement des conteneurs d’applications. Elle offre une couche de réseau combinant la découverte des services, l’équilibrage de charge, les vérifications de l’état et le contrôle d’accès, afin de prendre en charge des applications distribuées complexes. Elle permet de déployer des applications en toute confiance, de les dimensionner selon les besoins tout en contournant les défaillances inattendues. Des fonctionnalités amplement suffisantes pour des applications simples et héritées conteneurisées.

Par ailleurs, l’API Kubernetes intègre des objets de ressources ingress afin de contrôler l’accès aux services sélectionnés en dehors du cluster Kubernetes. Les règles d’accès sont ensuite implémentées grâce à Ingress Controller. La combinaison de ces outils constitue une solution simple et efficace pour gérer la plupart des applications.

Enrichir les solutions existantes

La gestion d’applications en cours de production implique souvent un contrôle et une visibilité accrue pour les équipes. En effet, les applications les plus sophistiquées présentent un comportement réseau complexe et des fréquents changements d’exploitation peuvent constituer une menace pour leur stabilité.

Il peut donc être nécessaire de chiffrer le trafic entre les différents composants lors de l’exécution sur un cluster Kubernetes partagé.

Plusieurs solutions permettent de répondre à ces besoins :

  • Afin de garantir le cryptage des données et sécuriser le trafic entre les services il est possible d’implémenter le protocole mutual TLS avec SPIFFE ou une méthode équivalente.
  • Pour identifier les problèmes de performances et de fiabilité, les équipes peuvent s’appuyer sur des outils tel que Prometheus afin d’exporter les metrics des microservices vers des logiciels de visualisation et d’analyse comme Grafana.
  • Pour résoudre ces défaillances, un logiciel de traçage comme OpenTracing, qui prend en charge plusieurs langages et frameworks, peut être intégré à tous les microservices.
  • Un déploiement tactique des proxys et des équilibreurs de charge permet d’optimiser le développement des règles d’équilibrage de charge, des disjoncteurs et du Blue/Green et Canary deployements.
  • Les légères modifications nécessaires, comme la définition de certificats pour les conteneurs et l'ajout de modules pour Prometheus et OpenTracing, peuvent être facilement orchestrées grâce à des équilibreurs de charge dédiés. 

Ainsi, la majorité des applications conteneurisées en développement s’appuient sur ces techniques afin de garantir un contrôle et une transparence optimales. 

Identifier le moment opportun

Si les solutions décrites précédemment s’avèrent simples et efficaces, elles peuvent cependant devenir chronophages à mesure que le volume et la complexité des applications augmentent. Pour les équipes exploitant des applications à grande échelle, cette gestion service par service peut rapidement devenir contre-productive. C’est justement la promesse des service mesh, fournir une solution unifiée clé en main pour optimiser la conception des microservices, tout en restant totalement invisible pour l’application.

Mais le déploiement de ce type d’architecture est relativement récent. Les précurseurs ont réalisé des implémentations personnalisées et parfois si complexes qu’elles finissent par alourdir le processus.

Une approche plus universelle, baptisée sidecar, a été mise au point afin de contourner cet écueil et simplifier les services mesh. Le sidecar utilise des proxy Layer 7 placés en front de chaque microservice qui permettent de capter l’ensemble du trafic réseau et offrent des fonctionnalités supplémentaires comme le mutual TLS, les metrics, le contrôle du trafic…

Privilégier une approche de long terme

Vendeurs et fournisseurs open source sont pleinement mobilisés pour mettre au point des solutions toujours plus stables et fonctionnelles. L’année 2019, considérée comme celle des service mesh, devrait ainsi marquer l’avènement de solutions opérationnelles à une large échelle. 


 
A moins que les solutions existantes ne soient plus du tout adaptés, l’adoption des services mesh semble donc encore prématurée. Les technologies et les approches ne vont cesser d’évoluer, or des changements brutaux peuvent entraîner des risques et des coûts supplémentaires pour les entreprises. Elles ont donc tout intérêt à faire preuve de patience et attendre que les solutions se perfectionnent.