BT

Accueil InfoQ Actualités Google publie gRPC, un Framework HTTP/2 RPC pour Microservices

Google publie gRPC, un Framework HTTP/2 RPC pour Microservices

Favoris

Google a rendu open-source gRPC, un framework RPC utilisé en interne pour connecter des microservices. gRPC offre le support de 10 langages, le rendant attractif pour la création de services cloud d'un back-end polyglotte, servant des applications mobiles.

gRPC est un système RPC agnostique aux langages et aux plateformes, développé et utilisé en interne par Google dans différents domaines, incluant les services de cloud computing. Ils vont également exposer la plupart de leurs APIs publiques via ce protocole. Google considère gRPC comme "un moyen de créer des systèmes massivement distribués qui relie les data-centers, et renforçant les applications mobiles, les communications en temps réel, les appareils IoT et les APIs, tout en étant efficace en termes de CPU et de bande passante, et à faible latence".

Bien qu'il puisse être utilisé dans de nombreux scénarios, gRPC vise principalement les architectures microservices. L'interface et le type de données supportées par un service est défini en utilisant un IDL Protocol Buffers. Avec l'aide des compilateurs disponibles, il est possible de générer des stubs serveurs et clients pour 10 langages : C, C++, C#, Go, Java, Node.js, Objective-C, PHP, Python, Ruby. L'implémentation Java semble mature, alors que les autres sont en Alpha (prêtes pour les early-adopters) ou pre-Alpha. A l'exception des implémentations Go et Java, elles sont en fait construites par dessus la core librairie en C. Il n'y a pas encore d'implémentation pour le navigateur, mais Google "explore activement" cette option et accepte les contributions sur le sujet.

Le format de sérialisation des données utilisé par défaut est Protocol Buffers, une nouvelle version Proto3 venant de sortir. En plus d'une syntaxe simplifiée, Proto3 apporte le support de plus de langages et l'encoding JSON. gRPC peut être étendu pour supporter d'autres formats.

A la question "Pourquoi choisir gRPC plutôt que REST pour des microservices", Google a répondu :

gRPC suit largement la sémantique HTTP de HTTP/2, mais nous apportons explicitement la possibilité de faire du full-duplex streaming. Nos conventions divergent des conventions typiques de REST puisque nous utilisons des routes statiques pour des raisons de performances durant la répartition des appels : le parsing des paramètres et du corps du payload ajoutent de la latence et de la complexité. Nous avons également formalisé un set d'erreurs qui, nous le croyons, sont plus directement applicables aux cas d'utilisations des APIs que ne le sont les codes de statut HTTP.

En fournissant le support de librairies clientes pour iOS et Android fonctionnant avec HTTP/2, Google espère que les développeurs utiliseront gRPC pour la création de services back-end pour des applications mobiles. Ils considèrent que "le streaming bi-directionnel, le contrôle du débit, la compression des headers, et le multiplexage des requêtes via une unique connexion TCP" va "réduire la consommation batterie et l'utilisation de data sur les mobiles tout en accélérant les services et applications web fonctionnant dans le cloud".

Le code source de gRPC est disponible sur GitHub sous license BSD.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Votre profil est-il à jour? Merci de prendre un instant pour vérifier.

Note: en cas de modification de votre adresse email, une validation sera envoyée.

Nom de votre entreprise:
Rôle dans votre entreprise:
Taille de votre entreprise:
Pays/Zone:
État/Province/Région:
Vous allez recevoir un email pour confirmer la nouvelle adresse email. Ce pop-up va se fermer de lui-même dans quelques instants.