Linkerd 1.0 : un standard pour la fiabilité des microservices
Ce projet apporte un service mesh pour les architectures de microservices et garantit la fiabilité des communications et échanges entre services conteneurisés.
Il faut le voit comme un TCP/IP pour les architectures de microservices. C’est ainsi que peut être décrit le projet Open Source Linkerd, hébergé depuis janvier dernier par la Cloud Native Computing Foundation. Ce projet, désormais dans sa version 1.0, est prêt pour la production.
Cette fondation Open Source, elle-même un projet collaboratif de la très célèbre Linux Foundation, a été initiée à l’été 2015, et bâtie autour de Kubernetes, le moteur d’orchestration qui fut pour l’occasion ouvert par Google. Cette fondation a pour vocation de rassembler socles et frameworks destinés à la création des applications Cloud – on parle d’applications Cloud Natives – qui exploitent les spécificités du modèle Cloud (élastique, distribué et qui s’appuie sur des architectures de microservices et de conteneurs).
Si Kubernetes fut le vaisseau amiral, cette fondation regroupe aujourd’hui 9 projets, dont Containerd, le runtime de Docker, et rtk, celui de CoreOS – parmi les plus connus. Et donc Linkerd.
Linkerd joue un rôle fondamental dans les architectures modernes. Celles-ci ont la particularité de décomposer chaque composant applicatif sous la forme de services ultra-légers, les micro-services, dans lesquels trônent les containers. Le tout sur des infrastructures distribuées. Linkerd a pour mission d’assurer le bon acheminement des messages entre ces services, et donc de rendre une architecture de microservices fiable et sécurisée. D’où cette image de TCP/IP des microservices.
Un service mesh pour fiabiliser les communications entre services
Techniquement, Linkerd est en fait un service mesh qui prend en charge la communication inter-services dans une architecture distribuée. « TCP crée une couche d’abstraction pour cacher la mécanique en charge de délivrer de façon fiable les octets d’un point du réseau à l’autre, le service mesh abstrait la mécanique qui délivre de façon fiable les requêtes entre services », explique Buoyant dans un billet de blog, la société chez qui est née cette technologie – elle a été mise au point par des ingénieurs de Twitter.
« L’application a donc un rôle de plus haut niveau – elle envoie quelque chose de A vers B – alors que la tâche du service mesh, comme celui de TCP, est de garantir cela, tout en gérant les éventuelles défaillances lors des échanges », est-il expliqué. En clair, le développeur ne doit se préoccuper que de la logique de son application ; Linkert prend en charge la couche réseau et communications des services désormais isolée.
Dans sa version 1.0, Linkerd propose une API pour le service mesh, une intégration plus étendue à l’écosystème des containers (Kubernetes, gRPC, Mesos, ou encore Prometheus), rappelle Oliver Gould, le directeur technique de Buoyant. Plus généralement, Linkerd apporte des services de load-balancing, routage, gestion des connexions et reconnexions en cas d’échecs et de la découverte de services, par exemple.
A ce jour, Linkerd dispose d’une communauté de 30 contributeurs et compte parmi ses utilisateurs Paypal, Ticketmaster et Lyft, par exemple.