Développement cloud : Dapr passe en production

Dapr Microsoft production

Destiné à faciliter le travail des développeurs sur les architectures de microservices, le projet Dapr est passé en version 1.0.

Dapr est désormais suffisamment mature pour un usage en production. C’est le message que fait passer Microsoft. Le groupe américain avait ouvert ce projet à la communauté – sous licence MIT – en octobre 2019. Avec une promesse : faciliter le travail des développeurs sur les architectures de microservices.

La démarche repose sur un catalogue de blocs « prêts à l’emploi ». Ils encapsulent des fonctionnalités telles que la gestion des secrets, des états, des messages ou des appels entre services. On y accède par API (HTTP ou gRPC), avec « tout langage et tout framework ».

Dapr schéma général

Pour exposer ces blocs, Dapr (Distributed Application Runtime) utilise des sidecars. Sur Kubernetes, focus actuel du projet, ces sidecars s’exécutent dans des conteneurs, au sein des mêmes pods que les applications qu’ils pilotent.

Dapr Kubernetes

Dapr remplit partiellement le rôle d’un maillage de services. Il peut par exemple assurer l’authentification TLS mutuelle et la journalisation.

Dapr sécurité

L’initiative regroupe aujourd’hui environ 700 contributeurs. Elle est en transition vers une gouvernance ouverte, avec l’objectif de passer « à court terme » sous l’aile d’une fondation.

Du côté de Microsoft, on propose notamment une extension Dapr pour Visual Studio. Elle vient compléter un ensemble de SDK, dont certains restent en préversion.

SDK

Qu’en est-il de l’impact de ce modèle sur les performances des applications ? D’après les benchmarks officiels du projet, les appels entre sidecars induisent une latence inférieure ou égale à 1,2 ms dans 90 % des cas.

Qu’y a-t-il sur la feuille de route de Dapr ? Entre autres, les requêtes multiples sur les magasins d’état, le traçage distribué et un mécanisme de proxy.
ZEISS est l’un des utilisateurs référents du runtime. L’entreprise allemande s’en est servie pour moderniser un système de gestion de commandes reposant sur Azure.

ZEISS