グーグルのクラウドを支えるテクノロジー > 第24回 マイクロサービス・システムにおけるgRPCの役割(前編
CTC教育サービスは私が編集支援している中井悦司氏のコラム「グーグルのクラウドを支えるテクノロジー」の第24回 「マイクロサービス・システムにおけるgRPCの役割(前編 」を公開しました。
人気の中井悦司氏のコラムです!興味がある方は是非ご覧ください!!
###
はじめに
今回は、2017年に開催されたSREcon17 Asia/Australiaでの講演「SRE Your gRPC--Building Reliable Distributed Systems」をもとにして、マイクロサービス型のアプリケーションにおけるgRPCの役割を解説します。この講演では、複数のマイクロサービスを組み合わせた、分散アーキテクチャーのアプリケーションを安定運用するためのガイドが示されており、gRPCを用いたサンプルコードによる解説が加えられています。ここでは特に、マイクロサービス・システムの安定稼働という観点から、gRPCの活用法を紹介したいと思います。
gRPCとは?
Googleにおけるアプリケーション開発では、スケーラブルなマイクロサービス型のアーキテクチャーが基本となっており、サービス間の通信処理を担うコンポーネントとして、Stubbyと呼ばれる独自のRPCライブラリーが利用されてきました。gRPCは、このライブラリーをオープンソースとして再実装したもので、さまざまなプログラミング言語で使用することができます。
マイクロサービスの呼び出しには、REST APIもよく利用されますが、REST APIが既存のHTTP(S)プロトコルをそのまま利用しているのに対して、gRPCでは、HTTP/2プロトコルをベースとして、マイクロサービスの連携に必要なさまざまな機能が実装されています。具体的には、アプリケーションレイヤーでのフロー制御、多段階にわたるサービス呼び出しの連携、ロードバランスとフェイルオーバー、双方向のストリーミング通信などがあります。詳細については、gRPCのホームページの説明が参考になるでしょう。
この続きは以下をご覧ください
https://www.school.ctc-g.co.jp/columns/nakai2/nakai224.html