SlideShare une entreprise Scribd logo
1  sur  13
gRPC
AYMERIC LAGIER
Présentation
 gRPC Remote Procedure Calls
 Framework RPC
 Développé par Google puis rendu open source
 Basé sur HTTP/2
 Utilisation de Protocol Buffers comme IDL (Interface Definition Language) par défaut
 Licence Apache 2.0
HTTP/2
 Présentation
 Successeur du HTTP 1.1 (1997)
 Développement initié par Google en 2009 avec le projet SPDY
 Focus sur les performances
 Caractéristiques
 Meilleure gestion du TLS
 Chargement en parallèle des ressources (CSS, JS, etc.)
 Compression des headers HTTP
 Push de ressources par anticipation depuis le serveur
 Compatibilité
 Tous les navigateurs récents (CanIUse)
 Apache, Nginx, etc.
Protocol Buffers
 Présentation
 Interface Definition Language
 Protocole développé par Google
 Caractéristiques
 Indépendant du langage utilisé
 Définition des objets véhiculés avec le langage protobuf
 Sérialisation/désérialisation binaire
 Compatibilité
 C#, C++, Go, Java, Python
Types de communication
 1-to-1 classique
 Streaming côté serveur
 Streaming côté client
 Streaming bidirectionnel
Avantages/Inconvénients
 Avantages
 Performance
 Full-duplex
 Gestion des erreurs
 Gestions des flux (annulation, validation, etc.)
 Inconvénients
 Debug
Compatibilité
 Versions stables
 C++, Java 8, Python, Go, Ruby, C#, Node.js, Android Java, Objective-C, PHP
 Versions publiques en développement
 Swift, Haskell
 Version privée en développement
 Web client
Exemple
 Déclaration de l’interface
Exemple
 Implémentation côté serveur
Exemple
 Implémentation côté client
Qui l’utilise et pourquoi ?
 Qui ?
 Google
 Netflix
 Docker
 Cisco
 Pourquoi ?
 Architecture microservices
 API pour applications mobiles
Ressources
 Site officiel gRPC
 Site officiel Protocol Buffers
 Benchmark gRPC/REST
 Test de performance HTTP/1.1 vs. HTTP/2
 HTTP/1.1 : http://http2.golang.org/gophertiles?latency=0
 HTTP/2 : https://http2.golang.org/gophertiles?latency=0
 Projet grpc-web
 Projet grpc-gateway
Questions
?

Contenu connexe

Tendances

Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHPMoncef Essid
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
Programmation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorProgrammation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorFlorian Beaufumé
 
05 2014-varnish
05 2014-varnish05 2014-varnish
05 2014-varnishthomaslc
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesosebiznext
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Sébastien Prunier
 
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...Sébastien Prunier
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & TechniquesRachid NID SAID
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Christophe Furmaniak
 

Tendances (12)

Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHP
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Programmation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorProgrammation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et Reactor
 
05 2014-varnish
05 2014-varnish05 2014-varnish
05 2014-varnish
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Devoxx fr 2015 HAProxy
Devoxx fr 2015 HAProxyDevoxx fr 2015 HAProxy
Devoxx fr 2015 HAProxy
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
 
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...
Nantes JUG - Traçabilité dans une architecture distribuée avec Node.js et Mon...
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & Techniques
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
 

Similaire à gRPC

API Web Moderne avec GRPC
API Web Moderne avec GRPCAPI Web Moderne avec GRPC
API Web Moderne avec GRPCAppstud
 
Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.netMSDEVMTL
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesGaëtan LAVENU
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
Annexe1   éTude Comparative Sur Les Moteurs De RechercheAnnexe1   éTude Comparative Sur Les Moteurs De Recherche
Annexe1 éTude Comparative Sur Les Moteurs De RechercheMohamed Ben Bouzid
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017AFUP_Limoges
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engineGDG Nantes
 
Presentation article rest : How-to
Presentation article rest : How-toPresentation article rest : How-to
Presentation article rest : How-toDamien Cavaillès
 
2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleanslgilbon
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxHamzaElgari
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisationSébastien Letélié
 

Similaire à gRPC (20)

API Web Moderne avec GRPC
API Web Moderne avec GRPCAPI Web Moderne avec GRPC
API Web Moderne avec GRPC
 
Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Atmosphere Framework
Atmosphere FrameworkAtmosphere Framework
Atmosphere Framework
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
Annexe1   éTude Comparative Sur Les Moteurs De RechercheAnnexe1   éTude Comparative Sur Les Moteurs De Recherche
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
 
Flex4.5 air3.0
Flex4.5 air3.0Flex4.5 air3.0
Flex4.5 air3.0
 
Meteor js 1.0
Meteor js 1.0Meteor js 1.0
Meteor js 1.0
 
Presentation article rest : How-to
Presentation article rest : How-toPresentation article rest : How-to
Presentation article rest : How-to
 
2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Le web en http 2
Le web en http 2Le web en http 2
Le web en http 2
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Partie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptxPartie 1_Matriser les bases PHP v0555555555555.pptx
Partie 1_Matriser les bases PHP v0555555555555.pptx
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 

gRPC

  • 2. Présentation  gRPC Remote Procedure Calls  Framework RPC  Développé par Google puis rendu open source  Basé sur HTTP/2  Utilisation de Protocol Buffers comme IDL (Interface Definition Language) par défaut  Licence Apache 2.0
  • 3. HTTP/2  Présentation  Successeur du HTTP 1.1 (1997)  Développement initié par Google en 2009 avec le projet SPDY  Focus sur les performances  Caractéristiques  Meilleure gestion du TLS  Chargement en parallèle des ressources (CSS, JS, etc.)  Compression des headers HTTP  Push de ressources par anticipation depuis le serveur  Compatibilité  Tous les navigateurs récents (CanIUse)  Apache, Nginx, etc.
  • 4. Protocol Buffers  Présentation  Interface Definition Language  Protocole développé par Google  Caractéristiques  Indépendant du langage utilisé  Définition des objets véhiculés avec le langage protobuf  Sérialisation/désérialisation binaire  Compatibilité  C#, C++, Go, Java, Python
  • 5. Types de communication  1-to-1 classique  Streaming côté serveur  Streaming côté client  Streaming bidirectionnel
  • 6. Avantages/Inconvénients  Avantages  Performance  Full-duplex  Gestion des erreurs  Gestions des flux (annulation, validation, etc.)  Inconvénients  Debug
  • 7. Compatibilité  Versions stables  C++, Java 8, Python, Go, Ruby, C#, Node.js, Android Java, Objective-C, PHP  Versions publiques en développement  Swift, Haskell  Version privée en développement  Web client
  • 11. Qui l’utilise et pourquoi ?  Qui ?  Google  Netflix  Docker  Cisco  Pourquoi ?  Architecture microservices  API pour applications mobiles
  • 12. Ressources  Site officiel gRPC  Site officiel Protocol Buffers  Benchmark gRPC/REST  Test de performance HTTP/1.1 vs. HTTP/2  HTTP/1.1 : http://http2.golang.org/gophertiles?latency=0  HTTP/2 : https://http2.golang.org/gophertiles?latency=0  Projet grpc-web  Projet grpc-gateway

Notes de l'éditeur

  1. Attention à la sécurité (cf MISC)