BLOG

Service Meshes et modernisation des applications

Miniature de Lori MacVittie
Lori MacVittie
Publié le 10 décembre 2018

La manie des conteneurs continue sans relâche. Mais cela ne signifie peut-être pas ce que vous pensez en termes d’ applications et d’architectures.

Il existe toujours une tendance à assimiler les conteneurs aux microservices. Et par assimiler, j'entends « utiliser de manière interchangeable ». 

C’est une mauvaise hypothèse.

Vous voyez, un pourcentage important de conteneurs sont aujourd’hui utilisés pour déployer des applications existantes. Comme indiqué dans Container Journal, une enquête d’IDC a révélé que moins de la moitié (46 %) des conteneurs étaient utilisés pour de nouvelles applications. Les autres utilisaient des applications existantes. (Source: Une enquête d'IDC révèle que les conteneurs sont à l'origine d'applications critiques . ) L'explication souvent citée pour cette étrange combinaison ? Modernisation.

De nombreuses études et recherches soulignent que le nombre de « nouvelles » applications développées en mode cloud-native est encore relativement faible : moins de 1 sur 5 selon les recherches de Cap Gemini. Une étude récente de Diamanti a révélé que 31 % des responsables informatiques se tournaient vers les conteneurs spécifiquement pour moderniser les applications héritées. Ce n’est pas une surprise. Nous vivons à l’ère de l’informatique multigénérationnelle, prenant en charge cinq générations différentes d’architectures application . 

Il existe donc toutes ces applications traditionnelles - et d'autres encore à venir - qui pourraient finir par être déployées dans des conteneurs.

Je dirais que c’est une bonne chose, car les conteneurs et les technologies associées comme les maillages de services peuvent réellement contribuer aux efforts de modernisation.

 

Moderniser la surveillance avec un Service Mesh

L'observabilité, si vous n'êtes pas familier, comprend trois piliers généralement acceptés comme détaillé par Cindy Sridharan dans « Distributed Systems Observability » :

  1. Journaux d'événements
  2. Métrique
  3. Traces

Le contenu sur ce sujet ne manque pas - y compris les défis inhérents aux grandes données opérationnelles générées par les journaux et l'émission de télémétrie - je ne le couvrirai donc pas ici. Il suffit de dire que vous avez besoin des trois pour réaliser tout le potentiel de l’observabilité.

Il suffit de dire également que sur ce dernier point - les traces - les applications existantes et héritées sont désavantagées. Vous voyez, la plupart n’étaient pas équipés pour émettre la télémétrie nécessaire pour retracer une transaction tout au long de son parcours, depuis son origine jusqu’à son exécution. Les journaux d’événements et les mesures sont beaucoup plus faciles à générer et à obtenir, quelle que soit l’architecture et l’environnement de application . Il s’agit d’options standard dans presque toutes les plateformes Web et application . Mais l'instrumentation ? Cela implique généralement du code intégré ou des agents avec une visibilité sur le trafic en temps réel.

C’est l’une des choses qu’un service mesh peut fournir.

Si vous vous en souvenez, un service mesh est principalement composé de proxys side-car à l’intérieur d’un environnement d’orchestration de conteneurs. Ces proxys proxy traitent essentiellement toutes les communications - entrantes et sortantes - d'un conteneur. Ce faisant, ces proxys font évoluer les services mais fournissent également un endroit parfait pour instrumenter le trafic afin de permettre une observabilité complète. Ils peuvent enrichir les messages traversant l' environnement de conteneur pour inclure des balises détaillées et d'autres métadonnées qui permettent aux systèmes de suivre et de corréler le trafic sur plusieurs systèmes et services.

Mieux encore, ils peuvent y parvenir avec très peu de modifications de l’ application . Dans certains cas, comme celui des applications Java, il existe des options basées sur la configuration pour injecter les fonctionnalités appropriées sans modifier le code.

La capacité d’émettre des traces à partir applications existantes est une capacité clé dans la quête d’une véritable observabilité. Si des applications existantes doivent être déployées dans des conteneurs, réfléchissez à la manière dont un service mesh peut contribuer à les moderniser.