API gatewayのGlooとAmbassadorがそれぞれ最新バージョンをリリース
API gatewayの最新バージョンが複数のベンダーからほぼ同時期にリリースされた。API gatewayは外部のWebサービスを呼び出す際に利用するだけではなく、エンタープライズ企業にとってはマイクロサービス化されたシステムが相互に呼び出し合うような場合にも大きな効果を出すことができる。また運用チームにとっても最新の機能を実装したバージョンと一つ前のバージョンを切り替えながら運用する場合や、トラフィックの割合をダイナミックに変化させながらようすを見る場合などにも利用可能で、単にキャッシング以上の意味を持つようになってきている。
またCNCFがホストしているオープンソースの軽量ProxyサーバーであるEnvoyを組み込んで、マイクロサービスに最適なAPI gatewayが実装できるようになったことも大きいだろう。
オープンソースソフトウェアの世界では常に新しいソフトウェアが開発されているため、これまで商用ソフトウェアベンダーが採っていたような定期的にイベントなどを開いて最新の製品や機能を解説するというモデルが崩れてきている。
そのようなイベントは、例えばクラウドネイティブの界隈では、CNCFが毎年開催してきたKubeCon+CloudNativeConが挙げられる。このイベントは、Kubernetesをベースにしたクラウドネイティブなソフトウェア(オープンソースもプロプライエタリなソフトウェアも含む)が一堂に会する最適な機会であった。
しかし、新型コロナウイルスの影響でKubeCon+CloudNativeConがオンラインイベントに移行した結果、新しいソフトウェアやリリースに巡り合う機会が減っているのが実情だ。しかしKubeConのような大規模なイベントにスポンサーとしては参加できない企業や産学協同のオープンソースプロジェクトなどにとっては、Red HatやGoogle、AWSなどと同じネットという土俵の上で勝負ができるという意味ではチャンス、良いことなのかもしれない。
そんな中、複数のアプリケーションのAPI Callを集約するAPI gatewayは今、非常に注目を集めている領域だ。今回紹介するGloo、Ambassador、Kong以外にもGoogleのApigee、Red Hatが買収した3Scale、AWSのAWS API Gateway、MicrosoftのAzure API Managementなど大小のベンダーがひしめき合っているレッドオーシャンと言える。その中から自社に最適なソリューションを見つけるのは至難の業だろう。
今回の記事では、Solo.io, Inc.が開発をリードするGlooの最新バージョン1.3と、Datawireが開発をリードするAmbassadorの最新バージョン0.50がリリースされたことを紹介したい。またこれまでNGINXをベースにAPI gatewayを開発していたKongが新たにリリースしたツールInsomnia Designerも紹介する。InsomniaはKongが2019年10月に買収したAPIをベースにしたアプリケーションを開発、テストするためのツールである。
Soloが手がけるGloo
GlooはSoloが開発するオープンソースソフトウェアだが、オープンコアモデルに則り、Soloもエンタープライズ版としてGloo Enterpriseを提供している。今回の最新バージョン1.3の新機能Developer Portalは、このEnterprise版の新機能だ。
GlooのCTO、Christian Posta氏が行ったWebinarでは、主な機能であるDeveloper Portalを、デモを交えて紹介した。
このセッションでは紹介のプレゼンテーションだけではなく、実際にDeveloper Portalを使ってデモアプリケーションを実装し、ユーザーを登録、APIを使うユーザーを個別に認識するためにAPIキーを発行してDeveloper Portalから検証を行うという一連の作業を実施した。
最新バージョンの1.3ではDeveloper Portalの他に、Mozillaが開発をリードするWebAssemblyが取り上げられている。元々WebAssemblyは、WebブラウザーでJavaScript以外のプログラミング言語を実装しようという目的で開発されたバイナリーフォーマットだが、コンテナーの代わりにさまざまなプログラミング言語で書かれたコードを安全に実行するための機能として、サーバーサイドでも注目されている技術だ。SoloはWebAssemblyにも意欲的で、WebAssembly HubというEnvoyの上で実行されるWebAssemblyのコードをホスティングするリポジトリーも提供している。
Developer Portalの紹介の部分で最初に出てくる特徴が「宣言的な構成(Declarative Configuration)」だが、これの意味するところはKubernetesのCRD(Custom Resource Definition)をベースにしているということだ。これはKubernetesが利用する分散キーバリューストアetcd上にすべての構成データを保存することを意味しており、CRD(つまりetcd)をベースにしたKubernetesを利用する場合に他のデータベースを必要としないということになる。
また提供されるのが、Developer Portalであり包括的な管理ダッシュボードではないということも注目だ。これは外部の委託先などと開発を行うような場合、必要最小限のAPIやエンドポイントだけを公開し、開発を行うグループごとに分離、セルフサービスでAPIの実装が行えるような使い方を想定しているということだろう。
APIキーの生成については、マイクロサービス化したシステムにおいては「何が起こっているのか?」を可視化するために、これまでのログに頼ったモニタリングでは不足であることは知られている。一方で、メトリクスやトレーシングを行うためには、どのAPI Callがどのユーザーから発行されたのかを識別する必要がある。これは社内のシステムにおいても重要で、そのために個別のAPIキーを生成してそれを元にユーザーの識別を行い、可視化することが必要だ。それをGUIから簡単に行えるのはありがたい機能だ。
このスライドにあるように「カスタムブランデッドクライアントポータル」というサブタイトルは「個別の開発プロジェクトごとにカスタマイズした開発者用のポータルサイト」を用意できるという意味である。
デモを見てもらえばわかるが、APIの設定だけではなくAPI Editorなども装備されており、APIを利用したコードを書くための必要最低限の機能が、このGUIの中で完結していると言える。いちいちコマンドラインを使わなくても検証が行える機能などもデベロッパーにとってはありがたいのではないだろうか。動画は以下のリンクから参照されたい。
Gloo 1.3の紹介ビデオ:Gloo API Gateway 1.3 - Developer portal and more enhancements
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- EnvoyをベースにしたAPI GatewayのGlooが最新バージョン1.3をリリース
- KubeCon EU 2022のショーケースからみるKubeConの変化とは
- 写真で見るKubeCon Europe 2019ショーケース
- KubeCon NA 2020 LinkerdとAmbassadorを使ったマルチクラスター通信を紹介
- All Things OpenからSolo.ioのBrian Gracely氏にインタビュー。サイドカーレスサービスメッシュとは?
- Istioがマイクロサービスからモノリシックなアプリに変化。その背景とは
- Kubernetesクラスターの遠隔操作による開発を支援するTelepresence
- Kubernetesの新しいネットワーク機能、Gateway APIを理解する(後編)
- KongのCMO、Juliette Rizkallah氏が語る、API活用の最前線と日本市場におけるDX推進の展望とは
- 「KubeCon NA 2022」から、サイドカーレスを実装したサービスメッシュのIstioのセッションを紹介