WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり

2023年4月11日(火)
松下 康之 - Yasuyuki Matsushita
ByteDanceのシリコンバレーオフィスで開催されたWebAssemblyのミートアップを紹介。

WebAssemblyが静かに利用を広げている。今回は2022年11月9日にByteDanceのシリコンバレーオフィスで開催されたミートアップのようすを紹介し、それに最も近い内容として動画で公開されているDaprConの動画を紹介する。ByteDanceはTikTokの開発元としても知られている。またDaprConはデトロイトで開催されたKubeCon+CloudNativeCon NA 2022と併催の1dayカンファレンスとして行われたイベントだ。

当日のアジェンダ

当日のアジェンダ

このアジェンダはミートアップの告知内容をカレンダーにメモしたもののスクリーンショットだが、Pizzaをほおばりながらアイスブレークした後に、Second StateのCEOであるMichael Yuan氏によるWebAssemblyを使ったマイクロサービスのセッション、DockerのデベロッパーアドボケイトであるMichael Irwin氏によるDockerとWebAssemblyのセッション、そしてDiagridのCTOであるYaron Schneider氏がDaprを使ったマイクロサービスのセッションを配信で行った。そして最後に、ホスト役となったByteDanceの北米拠点にあるエンタープライズ向けのサービスLarkのGM、Andy Wang氏によるセッションという組み立てだ。

Second StateのMichael Yuan氏、DockerのMichael Irwin氏は対面であるのに対し、DiagridのYaron Schneider氏は配信でのセッションとなったが、ここでDiagridについて簡単に紹介しよう。MicrosoftでDaprとKEDAをMark Fussell氏と立ち上げたSchenider氏が、共同創業者として2021年12月に立ち上げたのがDiagridだ。Diagridは、DaprをKubernetes上で管理するサービスのDiagrid Conductorをエンタープライズ向けに提供するベンチャーだ。もちろんDaprとKEDAのコントリビュータでもあり、メインテナーでもある。オープンソースとしてソフトウェアの開発を続け、それをエンタープライズ企業が利用する際に対価を得る方法はオープンコアとは異なり、コードベースは同じで、運用やオブザーバビリティの部分に付加価値をつける発想だ。

TikTokの紹介を行うMC

TikTokの紹介を行うMC

ミートアップはTikTokのMC役のトークでスタートした。ちなみにシリコンバレーオフィスは、TikTok自体の開発部門ではなくTikTokが提供するエンタープライズ向けのソフトウェアLarkの開発拠点である。

●参考:Lark: ビジネスツール最終進化形

テキサス州オースチン在住のSecond StateのMichael Yuan氏は、さまざまなカンファレンスで精力的に講演を行っているが、今回も参加者数が約20人程度のミートアップにも登壇することでWebAssemblyの啓蒙を行っていた。

WebAssemblyの解説を行うMichael Yuan氏

WebAssemblyの解説を行うMichael Yuan氏

また同じ週に開催されたGitHub Universeのデモブースでも多くの参加者を集めたプレゼンテーションを行っていたDockerのアドボケイトのMichael Irwin氏も、DockerとWebAssemblyの組み合わせによる利点などを解説していた。

プレゼンテーションを行う前に記念撮影をするDockerのMichael Irwin氏

プレゼンテーションを行う前に記念撮影をするDockerのMichael Irwin氏

DiagridのYaron Schneider氏は配信でのセッションとなったが、参加者は慣れているようすで真剣に聴き入っていた。

Yaron Schneider氏のプレゼンテーションは配信で

Yaron Schneider氏のプレゼンテーションは配信で

Schenider氏のマイクロサービスにおける問題というスライドでは、モダンなアプリケーション開発を行うデベロッパーが直面する問題点を総括していた。現代のデベロッパーは単にビジネスロジックを実装するだけではなく、モニタリングやオブザーバビリティ、サービスが落ちた時のリカバリーやリトライ、暗号化や並列化に必須なデータレースへの対応など多くの要点をカバーしながらコードを書かなくてはいけないというのはその通りだろう。そのための仕組みであるKubernetesやサービスメッシュがある程度抽象化してくれるとは言え、多くの要素を開発に追加しなければいけないという負担を強いられている。

現代のデベロッパーが直面する数多くの問題点

現代のデベロッパーが直面する数多くの問題点

その上で、それらの付加的な要点をカバーするプラットフォームとして開発が進んでいるのがDaprだ。

Daprとは

Daprとは

前のスライドで挙げられている問題を解決するプラットフォームがDapr(Distributed Application Runtime)であるというスライド。DaprはMicrosoftの中で開発が始まり、現在はCNCFのプロジェクトとしてホストされている。Kubernetesを下部のレイヤーとして使いながら、デベロッパーがビジネスロジックに注力できるようにするのが目的だ。Daprについては過去の記事を参考にして欲しい。

●参考:Microsoftがリードするモダンな分散システム用ランタイムDaprとは?

コミュニティとしても活発に活動しているようで、CNCF配下の124のプロジェクトの中で9番目に大きなプロジェクトになっていると紹介した。

Daprコミュニティの概要を紹介

Daprコミュニティの概要を紹介

最後にLarkの北米の責任者Andy Wang氏が登壇して、Larkの概要とLarkの開発部門でWebAssemblyがどのように使われているのかを紹介した。

Larkの紹介をするAndy Wang氏

Larkの紹介をするAndy Wang氏

Wang氏はLarkの開発においてWebAssemblyがFaaS(Function as a Service)チーム、RPCチーム、クライアントチームで使われていることを紹介。ここではコンテナよりもさらにフットプリントが小さいサーバーレスのアプリケーションで使われているという部分に注目したい。Linuxコンテナでは大き過ぎて起動が遅いという部分にサーバーレスを用い、その中身をWebAssemblyにすることで起動の遅さをカバーしセキュリティを担保するという発想だ。

さまざまなチームで使われているWebAssembly

さまざまなチームで使われているWebAssembly

最後にMichael Yuan氏が行ったDaprConでのセッションを紹介する。これは「Lightweight Microservices in WebAssembly」と題されたセッションで、約16分程度でLinuxコンテナの問題点、WebAssemblyの紹介、WebAssemblyの改善点、そしてサンプルのアプリケーションを使ったデモの解説を行っている。

●動画:Lightweight Dapr Microservices in WebAssembly

WebAssemblyの起動の速さを見せるデモという点では、Open Source Summit 2022 NAでも人気だったFermyonのFinicky Whiskersというデモを紹介したが、今回は画像データの変換と分類という機械学習ではよくある機能をデモとして実装している。Finiky Whiskersについては以下の記事を参照して欲しい。

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

まずLinuxコンテナの欠点として指摘したのは、主に重いことと安全でないことの2点だ。これはLinuxのさまざまなライブラリーが依存関係から含まれてしまうことに由来しており、これによって移植性が低くなってしまうと解説した。

Linuxコンテナの問題点を指摘

Linuxコンテナの問題点を指摘

そしてWebAssemblyの特徴を解説。ここではLinuxコンテナの1/100のサイズと高速な起動、そしてプログラミング言語を選ばないことなどを挙げた。

WebAssemblyの特徴を解説

WebAssemblyの特徴を解説

ただし、良いことばかりではないとしてWebAssemblyについて改善するべき点を紹介した。この辺りをキチンと説明するところがエンジニアらしいYuan氏の真骨頂だろう。

WebAssemblyの改善が必要な部分を説明

WebAssemblyの改善が必要な部分を説明

そして新しいアプローチとして、JavaScriptにおけるNode.jsなどの標準的なライブラリーを使ってWebAssemblyにコンパイルして実装するという部分を解説。その中核にDaprをマイクロサービスのProxyとして実行されるというモデルを紹介し、ここからデモの説明に移った。

Daprを相互接続するProxyとしてマイクロサービスを実装したデモを紹介

Daprを相互接続するProxyとしてマイクロサービスを実装したデモを紹介

写真:006.png

これはWebページから画像をアップロードし、グレースケールに変換するマイクロサービスとその画像を分類するマイクロサービスが連携するというもので、デモではカニの画像をカラーからグレースケールに変換する機能と分類する機能がそれぞれDaprの上のWebAssemblyのランタイムであるWasmEdgeで実行されていることを解説した。

画像を変換分類するデモ。カニを使ったのはRustのキャラクターFerrisへのリスペクトか

画像を変換分類するデモ。カニを使ったのはRustのキャラクターFerrisへのリスペクトか

写真:007.png

Finiky Whiskersと比べると地味ではあるが、ソースコードも公開されているのでぜひ内容を確認して欲しい。

●デモ:Welcome to WasmEdge!

●デモのソースコード:https://github.com/second-state/dapr-wasm

ByteDanceのシリコンバレーオフィスで開催されたミートアップは、パンデミック以前であれば活発に行われていたであろうと想像される通りの内容であった。ByteDanceの中では、すでにWebAssemblyが本番環境で使われていることは、新しい技術を積極的に試すインターネットベンチャーのパワーを感じされられた。

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

連載バックナンバー

OSSイベント

Open Source Summit Japan 2022開催。車載からストレージ、Kubernetesまで幅広いトピックをカバー

2023/4/26
2022年12月、横浜でOpen Source Summit Japanが開催された。リアルでは約500名が参加し、車載システムからSBoM、AIまで広範なセッションが行われた。
開発言語イベント

WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり

2023/4/11
ByteDanceのシリコンバレーオフィスで開催されたWebAssemblyのミートアップを紹介。

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

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

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

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