Open Source Summit NA 2022、マイクロサービスをWASMで実装したデモを紹介
オースチンで開かれたOpen Source Summit NA 2022の3日目のキーノートに、元MicrosoftでKubernetesの絵本を作ったことでも知られているMatt Butcher氏が登壇した。Butcher氏の現在の肩書は、自身が起業したFermyonというベンチャーのCEOだが、KubernetesのパッケージマネージャーであるHelmの開発者でもある。
マイクロサービスとそのプラットフォーム
3日目のキーノートの最初に登壇したButcher氏は「WebAssembly on the Cloud Changes Things」というタイトルで、これまでの仮想マシン~コンテナ~Kubernetesというコンピューティングスタイルの変化の先にある、マイクロサービスとそれを支えるためのプラットフォームについて解説した。
Butcher氏はOSとライブラリー、アプリケーションが密に結合されていた時代から、仮想マシンによってひとつのハードウェアに複数のOSが稼働するようになり、さらにコンテナによってデベロッパーがOSそのものを意識して開発を行うということが少なくなったことを指摘した。その上で「KubernetesはデベロッパーがKubernetesそのものを意識して開発する必要があること」を指摘した。
デベロッパーが実装したいビジネスロジックだけに専念するためにOSやハードウェア、さらにはKubernetesを意識せずに済む新しいコンピューティングスタイルが必要となったというわけだ。このスライドでは、実行形式としてのWebAssembly、そしてSpinというFermyonが開発したWebAssemblyのためのフレームワークを紹介した。ただしここでは、Spinについては深く説明をせずにWebAssemblyが実現する利点について解説を行った。
ここでButcher氏はマイクロサービスを「起動を速め、メモリーなどを無駄に消費しない新しいサービスの形」として紹介しており、KubeConなどの参加者にとっては少し内容を省いた説明を行ったが、KubeConの参加者よりもクラウドネイティブについては知識が少ないであろうOSSummitの参加者を迷わせない工夫だったのだろう。
ここでマイクロサービスとして実装されているデモアプリケーションのFinicky Whiskerを紹介した。これはAWSのインスタンスとして実装されているアプリケーションで、7つのWebAssemblyのモジュールから構成されている。データストアとしてはRedisがコンテナの中にデプロイされているというサンプルアプリケーションだ。AWSのt2.smallという安価なインスタンスを3つ使っており、コンテナのオーケストレーションはKubernetesではなくHashiCorpのNomadを利用している。
デモのURL:https://www.finickywhiskers.com/
デモを開発する過程で、Kubernetesをオーケストレーターとして使うという発想もあったようだが、Kubernetesが必要とする資源が大きくなるという懸念からNomadを選択したという。7つのモジュールのうち5つをRustで開発、WebAssemblyの実行モジュールとして使用するという構成だ。なおブラウザーからのトラフィックをバランスさせるProxyはTraefikを使い、WebAssemblyモジュールのパッケージマネージャーとしてBindleを使っている。
より詳細なFinicky Whiskerの解説は、以下のFermyonのブログを参照されたい。四部構成の非常に詳細な解説となっている。
参考:
Finicky Whiskers (pt. 1): The World's Most Adorable Manual Load Generator
Finicky Whiskers (pt. 2): Serving the HTML
Finicky Whiskers (pt. 3): The Microservices
Finicky Whiskers (pt. 4): Spin
このデモの中では3つのノードに展開された複数のモジュールが、起動~処理~終了を非常に高速に繰り返しており、「これはAWSのサーバーレスサービスであるLambdaと同じような構成なのか?」と自問自答を行い、構成自体はよく似ていると説明した。ただしサーバーレスが往々にしてクラウドサービスにロックインさせるための仕組みとして使われていること、そしてWebAssemblyによるこのサービスは、オンプレミスでもどこのパブリッククラウドサービスでも実行できることを解説し、ポータブルな実装であることを説明した。
このアプリはあくまでもブラウザーからのリクエストを受け取って判定を行い、その結果をRedisに書き込むと同時にブラウザーに返すというシンプルな処理を行うものだが、これをKubernetesで実装しようとすると、3つのt2.smallインスタンスでは終らずにその3倍程度のインスタンスが必要となると語り、近年、クラウドを使う際に問題となっている過剰な支出についても、このアーキテクチャーによってコストの削減が可能になると語った。
Butcher氏はFermyonのブログにおいてクラウドの過剰なコストに関しても記事を公開している。
参考:@<href>{https://www.fermyon.com/blog/underprovisioning-cloud-services,Better Than Overprovisioning: Underprovision Your Cloud ServicesBack when I was at Azure,}
このブログではKubernetesによってオーバープロビジョニングされたサービスを、HashiCorpのNomadをベースにしたSpinによってサーバーレスのように実装する例について解説している。
初日、2日目のキーノートが技術的な部分を避けた内容だったこともあり、Butcher氏のデモとプレゼンテーションは会場の反応も非常に良かった。実際、ショーケースに設置されたFermyonのブースには、実際にFinicky WhiskerをプレイしてTシャツを手に入れる参加者が多数訪れていたことは記しておきたい。
OpenSearchの現状
Butcher氏の後は、OpenSearchの現状を報告するセッションが行われた。OpenSearchは、Elasticsearchのライセンスに関してElastic社と揉めたAWSが、Elasticsearchをフォークして開発したオープンソースソフトウェアである。
CNCFによるエンドユーザーコミュニティの解説
AWSのプレゼンテーションの後は、今回スポンサーとして参加しているCNCFがエンドユーザーコミュニティについて解説を行った。
自動車業界におけるOSSの利用
最後はRed HatのChris Wright氏が登壇。自動車業界におけるオープンソースソフトウェアの利用が拡がっていることを簡単に紹介して3日目のキーノートは終った。
Wright氏のセッションは特にテクニカルな内容を語るわけでもなかったが、Red HatがGeneral Motorsと提携したことに簡単に触れ、伝統的な企業がソフトウェアによる革新に積極的に取り組んでいる姿勢を紹介した。
参考:Red Hatとゼネラルモーターズが協業ソフトウェア・デファインド・ビークルの未来を拓く
3日目のキーノートの動画は以下を参照して欲しい。
テクニカルな内容を期待していた参加者にとって、FermyonのデモとプレゼンテーションはクラウドネイティブなシステムにおけるKubernetesの寡占という現状に対してフレッシュな視点を提供するものとなった。今回は敢えて説明を避けたSpinについては、デトロイトで行われるKubeCon+CloudNativeCon NA 2022で詳細に解説がなされることだろう。
Spinについては公式サイトを参照されたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- All Things OpenからFermyonTechのMatt Butcher氏のセッションを紹介
- 「KubeCon NA 2022」のプレカンファレンスからCloudNative Wasm DAYを紹介
- WasmCon 2023でFermyonのCTO、Radu Matei氏に訊いた。WASI進化の注目ポイントとは
- KubeCon Europe 2024のキーノートからツァイスのWebAssemblyを使った事例を紹介
- WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり
- Wasmの現状と将来の計画をBytecode Allianceが公開。CosmonicのBailey Hayes氏によるセッションを紹介
- 写真で見る「KubeCon NA 2022」活気が戻ったショーケースを紹介
- KubeCon+CloudNativeCon North America 2023のキーノートとショーケースを紹介
- WebAssemblyを取り巻く最新情報をMeetupから紹介(後半)
- 写真で見るKubeCon Europe 2024 ベンダーやコミュニティプロジェクトの展示を紹介