EnvoyをベースにしたAPI GatewayのGlooが最新バージョン1.3をリリース

2020年6月5日(金)
松下 康之 - Yasuyuki Matsushita
マイクロサービスのシステムの重要な要素であるAPI gateway分野の一製品Glooが、最新版の1.3をリリースした。

オープンソースソフトウェアのProxy、EnvoyをベースにしたAPI GatewayであるGlooの最新バージョン1.3のリリースが、開発元であるSolo.ioのブログにて発表された。Soloは元EMCのIdit Levine氏がCEOとして起こしたベンチャーで、他にも元Red HatのChristian Posta氏がField CTOという肩書で在籍している。クラウドネイティブなシステムを推進するためのソフトウェアを開発していることで知られている。

GlooはCNCFにもホスティングされ、今はGraduationという状態にある。Soloは、マイクロサービスに最適なEnvoyをベースにしてAPI gatewayであるGlooを開発した。API gatewayはGoogleが買収したApigeeやRed Hatの3Scale、NGINXをベースにして開発されたKong、Datawireが開発を行っているAmbassador(こちらもGlooと同じくEnvoyがベースとなっている)などが競い合っているエリアだ。

GlooはKubernetesをベースにしていることで、すでにKubernetesを使っているシステムであればスムーズに導入が可能であるという。その大きな根拠は、GlooがKubernetesのCRD(Custom Resource Definition)を利用していることが大きい。これはAPI gatewayとして実行される際に必要となる設定情報などのデータストアにCRD、つまりKubernetesがデータを保存している分散型キーバリューストアであるetcdを使っていることに由来している。これによって運用する側が個別にデータストアとなるデータベースを用意する必要がなくなり、Kubernetesの運用と一体化して管理ができるという意味でKubernetesに最適化した優れた設計といえる。

Gloo自体はEnterprise版とオープンソースソフトウェア版の2種が存在し、機能差が存在するようだ。Soloのページから「Enterprise」として記述されている部分がEnterprise版、つまり有償版の差別化ポイントということだ。

Glooの製品ページ:Gloo - Envoy Proxy based API Gateway and Ingress Controller - Solo.io

最新リリースの1.3もエンタープライズ版、オープンソースソフトウェア版それぞれがリリースされている。その特徴について見ていこう。

デベロッパーポータル

これはEnterprise版の機能だが、デベロッパーがAPIを登録して公開するポータル機能が追加された。これはChristian Posta氏のデモでも最初に紹介されていた機能だ。

Christian Posta氏による解説動画:Gloo Developer Portal (Gloo Enterprise 1.3)

マイクロサービスで構成されたシステムではアプリケーションが利用する数多くのAPIが存在している。日々開発が行われて更新が続くようなアジャイル開発を行う場合、そのAPIを利用するデベロッパーがAPIを解説したドキュメントやリポジトリーに格納されたソースコードなどを参照して対応するよりも、デベロッパーが直接更新できる自前のポータルに解説情報などを公開して、それを個々のデベロッパーが参照するという開発手法が有効だ。特に開発チームが大規模、分散化するような場合にはデベロッパーの労力を省く意味で効果的だろう。APIをアクセスする際のトークンやアクセスキーなどの扱いには十分注意が必要だが、ポータルの中でサンプルを参照しながら設定が行えるのは学習コストを抑える意味でも価値がある。Kubernetesが実装されている環境であれば、すべてがCRD上に展開されるため、別のインフラストラクチャーやデータストアを用意する必要がないということも魅力的なオプションだろう。

Glooのデベロッパーポータル

Glooのデベロッパーポータル

またダッシュボード機能も用意されているため、Kubernetes上のAPIの状況を確認することが可能だ。ダッシュボードからの操作を可能にするためにはEnterprise版が必要だが、オープンソースソフトウェア版でもRead-Onlyで利用が可能になるようだ。

Glooのダッシュボード

Glooのダッシュボード

WebAssemblyによる拡張性

最新リリースの2つ目の大きな特徴はWebAssemblyに関するものだ。WebAssemblyはブラウザー上でJavaScript以外のプログラミング言語を実装するという目的の元に、Mozilla Foundationで開発が進められているバイナリーフォーマットだが、WASI(WebAssembly System Interface)という下位のシステムへのアクセスを実装するAPIによって、ブラウザー以外にもさまざまなOS上でプログラムを実行するプラットフォームとして使われるようになっている。

DockerのエンジニアであるSolomon Hykes氏が、2019年3月に「LinuxコンテナやWindowsコンテナと同様にサーバーサイドでコードを実行するプラットフォームとして重要になる」と予言したように、WebAssemblyはブラウザーだけではなく今やサーバーサイドのアプリケーション実行プラットフォームとして大きく注目されている。またGo言語やRustなどの新しいプログラミング言語からコンパイルしてバイナリーを実行する連携機能が強化されており、その面からもGlooがAPI gatewayにWebAssemblyによる拡張性を強化したのは大きな意味がある。

Soloは2019年12月にWebAssembly Hubを発表しており、ポータブルで高速なコード実行プラットフォームとしてWebAssemblyに注目していることがわかる。WebAssembly HubはWebAssemblyで書かれたコードをホストするリポジトリーで、Envoyの拡張のためのコードだけをホスティングするというのが目的だ。元々EnvoyはC++で書かれており、Envoyを拡張するためにはC++をプログラミング言語として選択することは理にかなっている。Envoyを拡張するために毎回C++からビルドするのではなく、Extensionとして機能を随時追加できるようにすれば、WebAssemblyが持つサンドボックスやC/C++と遜色ない高速性、ポータビリティーが得られるという効果は大きい。その意味でも、WebAssemblyをベースにして拡張機能を強化するWebAssembly HubのサポートはGlooにおいては重要だ。

2019年12月に発表されたWebAssembly Hubについては下記のブログを参照されたい。

Introducing the WebAssembly Hub, a service for building, deploying, sharing, and discovering Wasm extensions for Envoy Proxy

ここにはWebAssembly Hubの目的を「WebAssemblyの拡張コードをビルド、実装、共有、発見するためのサービスである(Today, we are announcing WebAssembly Hub, a service for building, deploying, sharing, and discovering Wasm extensions for Envoy.)」と明記している。API gatewayを拡張するためにリポジトリーを用意して実装することで、Solo以外のデベロッパーがコードをここに集約できるようになり、Portalの機能と合わせて開発のためのフローがスムーズになることが予想できる。

使いやすさと障害時対応の改善

使いやすさという部分では、管理ツールであるGlooctlの強化にも注目だ。これはKubernetesの管理ツールであるkubectlになぞったコマンドラインツールだが、Helm 3 Chartのサポートなど地味に進化していることがわかる。

その他にも「パフォーマンスと安定性の向上」、「ドキュメンテーションの向上」などが挙げられており、ドキュメントについてはGloo専用のドキュメントサイトを設けているようにかなり充実しておいる。この辺りからも、デベロッパーに対する情報提供の重要性を理解していることがわかる。

Glooのドキュメントサイト:An Envoy-Powered API Gateway

またコードだけではなく、ドキュメントに対するPull RequestもGitHub上で受け付けられるようになっていることもポイントだ。現状、日本には拠点がなく、エンタープライズ企業においてはサポートが気になるところだが、北米ではすでに多くの企業でGlooが採用されている。GlooはGoogleのApigeeやRed Hatの3Scale、Kongなどに比べて露出が少なく認知度が低いが、これから注目されていくべきソフトウェアと言えるだろう。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

システム開発イベント

OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは

2021/3/2
レッドハット株式会社のクラウドソリューションアーキテクト、北山晋吾氏によるCI/CDのセッションを紹介。
働き方イベント

オンラインならではの工夫でリアル開催を凌ぐ盛り上がりに! 「3年後の未来を描け! 悩み爆発 クリエイター1000人祭り」レポート

2021/2/9
2020年12月にオンラインで開催された「3年後の未来を描け!悩み爆発クリエイター1000人祭り」を紹介します。
ITインフライベント

ビルドからリリースまでを抽象化するWaypointにディープダイブ

2021/2/4
HashiCorpがリリースしたWaypointの内部構造など詳細について解説されたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています