Introduction à gRPC

Home » FR » Blog » Introduction à gRPC


* Ce billet est le premier d'une série consacrée à gRPC.


Dans les années 90, lorsque j'ai commencé dans ce monde, si vous aviez de la chance et possédiez un ordinateur, la seule chose que vous pouviez faire était de travailler en local, en jouant à vos jeux installés ou en rédigeant vos documents dans Word Perfect.

Aujourd'hui, c'est le contraire qui se produit. Presque tous les appareils sont connectés à un réseau quelconque et tous les nouveaux développements sont axés sur l'informatique dématérialisée. Cela nous permet d'avoir des machines moins puissantes et toute la puissance de calcul est transférée vers ces méga machines qu'Amazon, Google, Microsoft ont ... mais c'est une autre histoire.

De nouveaux développements sont réalisés en mettant l'accent sur le cloud.

Les logiciels d'aujourd'hui sont constitués de services qui interagissent avec d'autres services pour atteindre un objectif plus ou moins complexe. Ces services sont généralement petits et dotés d'une fonctionnalité très spécifique, d'où leur nom de microservices.

La communication entre les microservices s'effectue sur des réseaux informatiques et, comme les personnes, les processus communiquent également en s'envoyant des messages. Les logiciels basés sur les microservices sont appelés logiciels distribués. Elle présente, comme toute chose dans la vie, des avantages et des inconvénients dont je vais vous parler.

Les processus peuvent échanger des messages de manière synchrone ou asynchrone :

  • Communication Synchrone : le processus client envoie un message au processus serveur via le réseau et attend un message de réponse. Un exemple d'échange d'informations synchrone dans la vie quotidienne serait une conversation téléphonique. Une personne pose une question et l'autre personne y répond. Tout cela est synchronisé et se passe en temps réel.

  • Communication asynchrone : les processus échangent des messages asynchrones en utilisant un intermédiaire appelé courtier d'événements. Un exemple serait l'échange d'informations via Whatsapp. Je vous envoie un message et vous répondez quand vous le pouvez.

Il n'y a pas une option qui soit meilleure que l'autre. Il vous suffit de choisir celle qui convient le mieux à votre cas d'utilisation.

La plupart des applications actuelles communiquent de manière synchrone, en envoyant une requête et en attendant une réponse plus ou moins immédiate. Les microservices sont construits comme des services RESTful, qui mettent en œuvre des ressources auxquelles on peut accéder et dont l'état peut être modifié par des appels réseau et en utilisant le protocole HTTP/2. Ces services sont appelés API (Application Programming Interface).

Pour la plupart des cas d'utilisation, les services RESTful sont assez lourds, inefficaces et sujets aux erreurs. Souvent, vous aurez besoin que la communication entre vos processus soit hautement évolutive et faiblement couplée, c'est-à-dire plus efficace que les services RESTful. C'est là qu'intervient gRPC, qui n'est rien d'autre qu'une méthode de communication interprocessus pour la création d'applications distribuées et de microservices.

Google a développé gRPC et vous pouvez penser que le g dans gRPC fait référence à Google, mais la signification du g a changé à chaque version. La version actuelle est la 1.41 et dans cette version, le g de gRPC signifie "chèvre". Vous pouvez trouver toutes les significations du g pour les différentes versions ici.

Dans le prochain billet, je vous expliquerai ce qu'est gRPC et vous donnerai un exemple.

Si vous souhaitez en savoir plus sur gRPC, voici quelques livres qui pourraient vous intéresser :



Learning HTTP/2: A Practical Guide for Beginners

Stephen Ludin


gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes

Kasun Indrasiri