Open Source Summit NA 2022、マイクロサービスをWASMで実装したデモを紹介

2022年10月4日(火)
松下 康之 - Yasuyuki Matsushita
OSSummit NA 2022の3日目に元MicrosoftのMatt Butcher氏が登壇。マイクロサービスをWASMで実装したデモを実演。

オースチンで開かれたOpen Source Summit NA 2022の3日目のキーノートに、元MicrosoftでKubernetesの絵本を作ったことでも知られているMatt Butcher氏が登壇した。Butcher氏の現在の肩書は、自身が起業したFermyonというベンチャーのCEOだが、KubernetesのパッケージマネージャーであるHelmの開発者でもある。

マイクロサービスとそのプラットフォーム

プレゼンテーションを行うMatt Butcher氏

プレゼンテーションを行うMatt Butcher氏

3日目のキーノートの最初に登壇したButcher氏は「WebAssembly on the Cloud Changes Things」というタイトルで、これまでの仮想マシン~コンテナ~Kubernetesというコンピューティングスタイルの変化の先にある、マイクロサービスとそれを支えるためのプラットフォームについて解説した。

オンプレ~仮想マシン~コンテナの先にSpinとWasmによるアプリがある

オンプレ~仮想マシン~コンテナの先にSpinとWasmによるアプリがある

Butcher氏はOSとライブラリー、アプリケーションが密に結合されていた時代から、仮想マシンによってひとつのハードウェアに複数のOSが稼働するようになり、さらにコンテナによってデベロッパーがOSそのものを意識して開発を行うということが少なくなったことを指摘した。その上で「KubernetesはデベロッパーがKubernetesそのものを意識して開発する必要があること」を指摘した。

デベロッパーが実装したいビジネスロジックだけに専念するためにOSやハードウェア、さらにはKubernetesを意識せずに済む新しいコンピューティングスタイルが必要となったというわけだ。このスライドでは、実行形式としてのWebAssembly、そしてSpinというFermyonが開発したWebAssemblyのためのフレームワークを紹介した。ただしここでは、Spinについては深く説明をせずにWebAssemblyが実現する利点について解説を行った。

デベロッパーが担当する部分が多い古いスタイルとプラットフォームが担う新しいスタイルを紹介

デベロッパーが担当する部分が多い古いスタイルとプラットフォームが担う新しいスタイルを紹介

ここでButcher氏はマイクロサービスを「起動を速め、メモリーなどを無駄に消費しない新しいサービスの形」として紹介しており、KubeConなどの参加者にとっては少し内容を省いた説明を行ったが、KubeConの参加者よりもクラウドネイティブについては知識が少ないであろうOSSummitの参加者を迷わせない工夫だったのだろう。

「Finicky Whisker」というマイクロサービスのデモを紹介

「Finicky Whisker」というマイクロサービスのデモを紹介

ここでマイクロサービスとして実装されているデモアプリケーションの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を使っている。

Redisはコンテナの中に、そのほかはRustで書かれたWebAssemblyモジュールで構成

Redisはコンテナの中に、そのほかはRustで書かれたWebAssemblyモジュールで構成

より詳細な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によるこのサービスは、オンプレミスでもどこのパブリッククラウドサービスでも実行できることを解説し、ポータブルな実装であることを説明した。

24行という短さのセッション管理モジュール

24行という短さのセッション管理モジュール

このアプリはあくまでもブラウザーからのリクエストを受け取って判定を行い、その結果を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シャツを手に入れる参加者が多数訪れていたことは記しておきたい。

Finicky Whiskerをメインに押し出したFermyonのブース

Finicky Whiskerをメインに押し出したFermyonのブース

OpenSearchの現状

Butcher氏の後は、OpenSearchの現状を報告するセッションが行われた。OpenSearchは、Elasticsearchのライセンスに関してElastic社と揉めたAWSが、Elasticsearchをフォークして開発したオープンソースソフトウェアである。

ElasticsearchとKibanaからフォークしたAWSがリードするOpensearch

ElasticsearchとKibanaからフォークしたAWSがリードするOpensearch

CNCFによるエンドユーザーコミュニティの解説

AWSのプレゼンテーションの後は、今回スポンサーとして参加しているCNCFがエンドユーザーコミュニティについて解説を行った。

ユーザーコミュニティについて解説するCNCFのTaylor Dolezal氏

ユーザーコミュニティについて解説するCNCFのTaylor Dolezal氏

自動車業界におけるOSSの利用

最後はRed HatのChris Wright氏が登壇。自動車業界におけるオープンソースソフトウェアの利用が拡がっていることを簡単に紹介して3日目のキーノートは終った。

自動車業界におけるOSSについて語るChris Wright氏

自動車業界におけるOSSについて語るChris Wright氏

Wright氏のセッションは特にテクニカルな内容を語るわけでもなかったが、Red HatがGeneral Motorsと提携したことに簡単に触れ、伝統的な企業がソフトウェアによる革新に積極的に取り組んでいる姿勢を紹介した。

参考:Red Hatとゼネラルモーターズが協業ソフトウェア・デファインド・ビークルの未来を拓く

3日目のキーノートの動画は以下を参照して欲しい。

動画:Day 3 Keynote Sessions

テクニカルな内容を期待していた参加者にとって、FermyonのデモとプレゼンテーションはクラウドネイティブなシステムにおけるKubernetesの寡占という現状に対してフレッシュな視点を提供するものとなった。今回は敢えて説明を避けたSpinについては、デトロイトで行われるKubeCon+CloudNativeCon NA 2022で詳細に解説がなされることだろう。

Spinについては公式サイトを参照されたい。

Spin:https://github.com/fermyon/spin

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

連載バックナンバー

OSSイベント
第5回

写真で見るOSSummit North America 2022

2022/10/14
OSSummit NA 2022の展示ブースやパーティなどのアトラクションを紹介する。
クラウドイベント
第4回

OS Summit NA 2022でLFに参加したことが紹介されたOPIとは?

2022/10/6
OSSummit NA 2022のキーノートで簡単に紹介されたOPI(Open Programmable Infrastructure)について解説する。
OSSイベント
第3回

Open Source Summit NA 2022、マイクロサービスをWASMで実装したデモを紹介

2022/10/4
OSSummit NA 2022の3日目に元MicrosoftのMatt Butcher氏が登壇。マイクロサービスをWASMで実装したデモを実演。

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

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

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

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