Introduction à gRPC avec Fiddler Everywhere

gRPC gagne en popularité en raison de ses nombreux avantages. En savoir plus sur le cadre et comment capturer et inspecter le trafic gRPC avec Fiddler Everywhere !
Qu’est-ce que gRPC ?
Le sigle « gRPC » nous entoure de plus en plus chaque jour. Nous entendons dire que de grandes entreprises comme Google utilisent gRPC (il faut s’y attendre car « gRPC » signifie « Google Appels de procédure à distance »), ainsi que d’autres comme Netflix, Spotify, Salesforce, IBM, Cisco, Dropbox et Slack — la liste est longue.
Alors, qu’est-ce que gRPC exactement et comment aide-t-il les développeurs aujourd’hui ?
Techniquement, gRPC est une infrastructure d’appel de procédure à distance (RPC) qui peut s’exécuter dans n’importe quel environnement. Il peut également être appelé un style architectural similaire à REST, SOAP, WebSockets, etc. Alors que la plupart des applications dans la nature reposent encore principalement sur REST, il est devenu évident que le API REST est loin d’être parfait, et ne compter que sur lui pourrait être problématique à mesure que votre entreprise se développe. L’adoption massive du style d’architecture des microservices a également montré la nécessité d’une technologie différente pour résoudre divers problèmes.
C’est là que gRPC est entré en jeu ! Le framework gRPC est efficace, a des performances élevées (certains disent jusqu’à sept fois plus rapide que REST), est multiplateforme, dispose d’un compilateur de code natif et est idéal pour les microservices et le streaming de données. gRPC n’est pas là pour remplacer REST mais doit être considéré comme une alternative pour résoudre des problèmes spécifiques.
En regardant dans le cadre lui-même, la première chose que nous pouvons remarquer est qu’il utilise le Format protobuf (au lieu de JSON ou XML). Les avantages du format sont qu’il est léger et compressé (c’est là que le gRPC gagne en performance). Les inconvénients sont que les messages Protocol Buffers ne sont pas lisibles par l’homme.
Violoniste partout de Progress Telerik peut aider les développeurs qui possèdent le fichier .proto – chaque message Protobuf est disponible avec Fiddler et peut être utilisé pour une enquête approfondie.
Prise en charge de gRPC dans Fiddler Everywhere
Au fur et à mesure que gRPC gagnait en popularité, il est devenu évident que les développeurs avaient besoin d’un outil de débogage pour les aider à capturer et à inspecter le trafic gRPC. L’outil devait prendre en charge HTTP/2 (car gRPC est basé sur HTTP/2 et n’est pas compatible avec HTTP/1.1) et doit également être prêt à visualiser les informations de canaux gRPC spécifiques, y compris une poignée de main, des messages, des en-têtes de fin, etc. N’attendez plus…
Fiddler Everywhere à la rescousse !
Après le L’équipe Fiddler a récemment présenté prise en charge de HTTP/2 et TLS 1.3, il était naturel de poursuivre la mise en œuvre de la prise en charge de gRPC. Avec Fiddler Everywhere version 4.2.0 et ultérieure, la prise en charge de gRPC est une réalité et vous pouvez commencer à capturer et à inspecter son trafic dès le départ. OK, pas précisément prêt à l’emploi, car l’API gRPC se relaye sur HTTP/2, vous devez vous assurer que votre application Fiddler Everywhere a activé la capture HTTP/2 via Paramètres > Connexions > Activer la prise en charge HTTP/2 (BETA).
C’est tout ce dont vous avez besoin du côté de Fiddler Everywhere !
L’étape suivante consiste à indiquer à votre application cliente gRPC de respecter le proxy de Fiddler pour ses requêtes HTTP et HTTPS. La configuration spécifique du proxy dépend entièrement de la technologie d’application du client utilisé (par exemple, différentes approches s’il s’agit d’une application Python, d’une application GO, d’une application Java, etc.). En savoir plus sur la façon de définir Fiddler Everywhere comme proxy pour votre technologie ici.
Inspection gRPC
Lors de la capture d’une session gRPC, Fiddler Everywhere affiche les canaux gRPC ouverts et fermés dans la liste du trafic en direct. Un badge vert dans la colonne ID (par défaut, la première colonne à gauche) indique un canal gRPC actif, tandis qu’un badge rouge indique que le canal gRPC est fermé. Fiddler Everywhere prend en charge tous les cycles de vie gRPC et capture avec succès le RPC unaire, le RPC de streaming client, le RPC de streaming serveur et le RPC de streaming bidirectionnel.
Vous pouvez sélectionner une session d’un simple clic pour observer la Poignée de main onglet et ses détails. Le Poignée de main L’onglet contient des informations sur les en-têtes HTTP utilisés et les bandes-annonces gRPC spécifiques. Le serveur envoie des bandes-annonces au client après avoir traité la demande. Un scénario typique est que les remorques contiennent des informations communes aux méthodes de service.
Vous pouvez ouvrir le messages en double-cliquant sur la session sélectionnée (ou en sélectionnant manuellement l’onglet) et inspectez chaque message diffusé dans le canal gRPC. Chaque message gRPC utilise le format Protobufqui est sous une forme illisible et reçu en binaire.
Vous pouvez inspecter le message binaire à partir du Message inspecteur. Fiddler Everywhere fournit également des instruments (Décoder la valeur et HEX inspecteur) pour visualiser partiellement le contenu textuel qui pourrait faire partie du message Protobuf. Il est important de noter qu’il s’agira toujours du contenu Protobuf brut qui a été capturé sur le câble, et non des valeurs décodées des champs de message. Seul le créateur et propriétaire du .proto schéma peut entièrement décoder un message Protobuf. Dans une prochaine version, nous ajouterons la possibilité de fournir un .proto schéma à Fiddler Everywhere pour décoder automatiquement les messages Protobuf.
Conclure
gRPC est là pour rester – en 2022, la technologie a gagné en popularité et a augmenté sa diffusion (de 8 % à 11 % des développeurs qui ont déclaré aimer gRPC). C’est désormais l’un des styles architecturaux les plus reconnaissables aux côtés de REST, WebSocket, SOAP, Webhooks et GraphQL. Il est probable qu’un programmeur devra y faire face tôt ou tard, et Fiddler résoudra ce casse-tête potentiel.
Fiddler Everywhere lui-même évolue davantage après chaque version et est loin d’être simplement un proxy direct ou un outil de débogage Web. La prise en charge supplémentaire de gRPC, ainsi que la prise en charge d’autres technologies modernes telles que HTTP/2, TLS 1.3, les fonctionnalités avancées de règles, le compositeur de requêtes HTTP, la collaboration et bien d’autres encore, font de Fiddler un couteau suisse pour résoudre une gamme différente de tâches.
Pour les ingénieurs et développeurs QA, les personnes de support, les administrateurs Web, les responsables de l’application des politiques et les experts en sécurité, Fiddler est un outil qui peut apporter beaucoup de valeur. Avons-nous mentionné que Fiddler est multiplateforme ? Oui, il fonctionne sur macOS, Windows et Linux et peut capturer le trafic de pratiquement n’importe quel client utilisant le protocole HTTP(S).
Au cas où vous venez d’entendre parler de nous, l’équipe vous souhaite la bienvenue ! Allez-y et essayez Fiddler Partout et dites-nous ce que vous en pensez !
Source link