Les services maillés sonnent-ils la fin des intergiciels?

24-09-2018 / Flo Adam

Petit à petit, les intergiciels cèdent leur place aux services maillés tandis que Istio et les technologies reliées prennent de l’essor. Ils supervisent tous deux les communications entre les applications et les services variés, mais diffèrent considérablement dans leur paradigme et dans leur façon d’opérer. Les intergiciels occupent une place prépondérante dans les architectures orientées service, pourraient-ils devenir inutiles dans le monde d’aujourd’hui qui est axé sur les conteneurs ?

Intergiciels

Souvent appelés « colle logicielle », les intergicels sont le lien entre une application et ses bases de données sous-jacentes. Ils relient les requêtes d’un client générées par réseau aux données d’arrière-plan, permettant les communications en concentrant tous les messages en un seul pipeline. Les intergiciels orchestrent les fonctions importantes au sein de ce pipeline incluant la validation de la sécurité, l’enregistrement, le routage, la surveillance de performance et la transformation des messages. Traditionnellement, ils orchestraient les communications au sein d’architectures orientées service (SOAs), celles-ci consistent en des éléments réutilisables et peuvent être monolithiques.Service Mesh

Les intergiciels fonctionnent en saisissant des messages de différentes applications et en les amenant vers des bassins de communications centralisés. Ces messages sont ensuite transportés à travers un pipeline de fonctions, se terminant par le service de registres de l’utilisateur. Les messages sont transportés sur des « enterprise service buses (ESBs) ». Les communications convergent pour masquer tant la multiplicité des applications distribuées que l’hétérogénéité du matériel et des systèmes d’exploitation.

Tandis que les organisations continuent d’adopter les conteneurs, certains problèmes avec les intergiciels traditionnels deviennent évidents. Les pratiques DevOps encouragent les environnements modernes qui se fient aux systèmes distribués et aux déploiements automatisés et rapides d’instances immuables. Le mandat CI/CD (intégration et livraison continue) des conteneurs est de constamment mettre à jour les applications et les outils. Les ESBs ne sont pas toujours adéquats pour accomplir cette tâche.

Les points de défaillance – les intergiciels enregistrent et surveillent les messages au niveau de l’enregistrement du service en un seul grand journal centralisé relatif à tous les services. Ils appliquent certaines fonctions, surtout les fonctions d’enregistrement et de surveillance de performance, de façon universelle à toutes les applications. Les messages sont placés en file, et une panne pourrait créer un bouchon au sein du pipeline. Pour découvrir des problèmes isolés, il faut potentiellement trier des milliers de messages d’erreurs non pertinents. Les intergiciels permettent les communications en changeant l’enregistrement du service en un point de défaillance au sein duquel les petits problèmes peuvent déranger toutes les autres communications.

Monolithique – bien que les SOA sont constitués d’éléments réutilisables et de couplage lâche, les pipelines uniformes des intergiciels sont difficiles à adapter. Les fonctions orchestrées par les intergiciels sont étroitement intégrées tant en elles-mêmes que dans les applications environnantes. Les petits changements dans l’interface utilisateur peuvent même exiger une réévaluation complète de l’application. Les intergiciels sont efficaces, car ils offrent un moyen de communication commun, mais cela demande une programmation impérative créant des réseaux isolés.

Les conteneurs et la virtualisation ont fait grandement augmenter le nombre d’instances déployées dans une application. Cela accroît le risque de congestion dans les points de défaillance et exige des changements plus dynamiques. Des solutions de services maillés, telles que Istio, Ambassador, et Envoy, sont de plus en plus considérées comme options de rechange.

Services maillés

Un service maillé est une couche de réseau réservée située au-dessus de la couche de service et qui permet les communications de service à service. Ses réseaux de communication se fient aux API distribuées au lieu d’appareils centralisés et discrets.

Middleware

Les messages sont transportés à l’intérieur du service maillé, mais les fonctions de messagerie sont effectuées à proximité des services qui reçoivent le message. Chaque instance est liée à un mandataire qui transmet les messages vers le service maillé et à partir de celui-ci. Ces mandataires accomplissent plusieurs fonctions se faisant traditionnellement par un intergiciel, comme le routage et le blocage de messages, la découverte de service, l’équilibrage de charge, le cryptage l’authentification et l’autorisation. Ils soutiennent aussi les fonctionnalités comme la découverte, la gestion des failles, le routage, la disjonction et le traçage de requête.

Les services maillés permettent aux messages d’être envoyés directement d’un service à un autre au lieu de passer par des pipelines intermédiaires. Cela harmonise le couplage de la messagerie d’une application à ses services, et, dans le cas de la plupart des applications conteneurisées, ce couplage est lâche. Leur nature distribuée allège la dépendance aux points de défaillance et facilite le dynamisme du changement.

Conteneurs – les services maillés sont, de bien des façons, parfaitement adaptés aux conteneurs. Ils sont indépendants au niveau de la plateforme et peuvent s’intégrer à n’importe quelle architecture basée sur les conteneurs. Leur retrait des points de défaillance permet une reprise rapide après une panne de réseau ou de service. En distribuant le service de messagerie, ils facilitent la mise à l’échelle et la programmation déclarative des conteneurs. Les services maillés soutiennent les environnements extrêmement instables dans lesquels les conteneurs semblent prospérer. Pour ces raisons, des outils comme Istio sont de plus en plus utilisés afin d’amener la prise de décision et le pouvoir informatique des intergiciels dans le sillage de Kubernetes et des systèmes basés sur les conteneurs.

Istio est une solution qui offre un contrôle opérationnel sur les services maillés ainsi qu’une introspection comportementale dans ceux-ci. Il est conçu pour utiliser le mandataire Envoy ELK, Kibana, et EFK apportent à Istio une visibilité et une capacité de surveillance.

La fin des intergiciels ?

Les services maillés se développent tandis que leur adoption continue de croître. Istio 1.0 a récemment été publié, ce qui signifie que les services maillés deviennent de plus en plus stables et sécuritaires. Envoy est déjà sous l’égide de la Cloud Native Computing Foundation (CNCF), et Istio planifie de s’y joindre. Les solutions de services maillés évoluent en un écosystème infonuagique prospère et sont utilisées dans des applications infonuagiques.

Par contre, il y a certains cas d’utilisation qui bénéficient de la stabilité et de la sécurité offertes par les intergiciels. Ils existent depuis des décennies et un plus grand nombre de personnes savent utiliser les intergiciels que les services maillés. De plus, il y a des mesures éprouvées depuis longtemps qui assurent la sécurité des intergiciels et leur conformité aux normes telles que HIPAA, LPRPDE et PCI DSS.

La sécurité des services maillés augmente rapidement, mais la sécurité des conteneurs exige une approche différente de la sécurité des MV. Entre autres choses, cela dépend de l’intégration des processus opérationnels dans la phase de développement. Lorsqu’elles sont mises en œuvre dans une pile technologique, de telles pratiques DevOps favorisent la sécurité, l’agilité et l’innovation à long terme d’une application. On réussit à tirer profit des outils infonuagiques lorsqu’ils sont implémentés côte à côte et dans les méthodologies et processus DevOps.

Les organisations vont devoir réévaluer leurs processus et méthodologie organisationnels si elles espèrent mettre de côté certains de leurs intergiciels pour privilégier des services maillés. Bien que les services maillés facilitent les communications entre de nombreux conteneurs, les intergiciels sont idéaux pour transporter de l’information entre les applications monolithiques. Ils sont conçus à l’intérieur de différents paradigmes et, afin d’effectuer des changements, les organisations devront modifier la façon dont leur application et leur infrastructure sont conçues et soutenues.

Il est impossible pour une organisation de retirer une partie de ses intergiciels hérités avant d’installer une structure d’outils et de pratiques DevOps. La collaboration dynamique entre l’infrastructure en tant que code, les services, la sécurité, la surveillance et le pipeline CI/CD d’une pile sera favorisée. L’intergiciel ou le service maillé d’une application doit refléter les éléments entre lesquels la communication est facilitée.

Une transformation DevOps assurera que la culture et les processus de prise de décision d’une organisation alignent leurs outils avec la rapidité d’innovation. Contactez-nous pour apprendre comment transformer, soutenir et faire évoluer vos pratiques DevOps et infonuagiques.

 

 

Flo Adam

Flo Adam est développeuse infonuagique chevronnée chez CloudOps. Après une décennie comme ingénieure d’intergiciel de niveau entreprise chez Linux, Flo se concentre maintenant sur l’informatique infonuagique. Elle s’intéresse particulièrement aux défis auxquels font face les équipes d’ingénierie lorsqu’elles migrent les charges de travail dans le nuage.

New call-to-action