WASM Meetup@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自体の開発部門ではなくTikTokが提供するエンタープライズ向けのソフトウェアLarkの開発拠点である。
テキサス州オースチン在住のSecond StateのMichael Yuan氏は、さまざまなカンファレンスで精力的に講演を行っているが、今回も参加者数が約20人程度のミートアップにも登壇することでWebAssemblyの啓蒙を行っていた。
また同じ週に開催されたGitHub Universeのデモブースでも多くの参加者を集めたプレゼンテーションを行っていたDockerのアドボケイトのMichael Irwin氏も、DockerとWebAssemblyの組み合わせによる利点などを解説していた。
DiagridのYaron Schneider氏は配信でのセッションとなったが、参加者は慣れているようすで真剣に聴き入っていた。
Schenider氏のマイクロサービスにおける問題というスライドでは、モダンなアプリケーション開発を行うデベロッパーが直面する問題点を総括していた。現代のデベロッパーは単にビジネスロジックを実装するだけではなく、モニタリングやオブザーバビリティ、サービスが落ちた時のリカバリーやリトライ、暗号化や並列化に必須なデータレースへの対応など多くの要点をカバーしながらコードを書かなくてはいけないというのはその通りだろう。そのための仕組みであるKubernetesやサービスメッシュがある程度抽象化してくれるとは言え、多くの要素を開発に追加しなければいけないという負担を強いられている。
その上で、それらの付加的な要点をカバーするプラットフォームとして開発が進んでいるのがDaprだ。
前のスライドで挙げられている問題を解決するプラットフォームがDapr(Distributed Application Runtime)であるというスライド。DaprはMicrosoftの中で開発が始まり、現在はCNCFのプロジェクトとしてホストされている。Kubernetesを下部のレイヤーとして使いながら、デベロッパーがビジネスロジックに注力できるようにするのが目的だ。Daprについては過去の記事を参考にして欲しい。
●参考:Microsoftがリードするモダンな分散システム用ランタイムDaprとは?
コミュニティとしても活発に活動しているようで、CNCF配下の124のプロジェクトの中で9番目に大きなプロジェクトになっていると紹介した。
最後にLarkの北米の責任者Andy Wang氏が登壇して、Larkの概要とLarkの開発部門でWebAssemblyがどのように使われているのかを紹介した。
Wang氏はLarkの開発においてWebAssemblyがFaaS(Function as a Service)チーム、RPCチーム、クライアントチームで使われていることを紹介。ここではコンテナよりもさらにフットプリントが小さいサーバーレスのアプリケーションで使われているという部分に注目したい。Linuxコンテナでは大き過ぎて起動が遅いという部分にサーバーレスを用い、その中身を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のさまざまなライブラリーが依存関係から含まれてしまうことに由来しており、これによって移植性が低くなってしまうと解説した。
そしてWebAssemblyの特徴を解説。ここではLinuxコンテナの1/100のサイズと高速な起動、そしてプログラミング言語を選ばないことなどを挙げた。
ただし、良いことばかりではないとしてWebAssemblyについて改善するべき点を紹介した。この辺りをキチンと説明するところがエンジニアらしいYuan氏の真骨頂だろう。
そして新しいアプローチとして、JavaScriptにおけるNode.jsなどの標準的なライブラリーを使ってWebAssemblyにコンパイルして実装するという部分を解説。その中核にDaprをマイクロサービスのProxyとして実行されるというモデルを紹介し、ここからデモの説明に移った。
写真:006.png
これはWebページから画像をアップロードし、グレースケールに変換するマイクロサービスとその画像を分類するマイクロサービスが連携するというもので、デモではカニの画像をカラーからグレースケールに変換する機能と分類する機能がそれぞれDaprの上のWebAssemblyのランタイムであるWasmEdgeで実行されていることを解説した。
写真:007.png
Finiky Whiskersと比べると地味ではあるが、ソースコードも公開されているのでぜひ内容を確認して欲しい。
●デモのソースコード:https://github.com/second-state/dapr-wasm
ByteDanceのシリコンバレーオフィスで開催されたミートアップは、パンデミック以前であれば活発に行われていたであろうと想像される通りの内容であった。ByteDanceの中では、すでにWebAssemblyが本番環境で使われていることは、新しい技術を積極的に試すインターネットベンチャーのパワーを感じされられた。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「KubeCon NA 2022」から、WasmEdgeを開発するSecond StateのMichael Yuanのインタビュー
- 写真で見るKubeCon Europe 2024 ベンダーやコミュニティプロジェクトの展示を紹介
- 「KubeCon NA 2022」のプレカンファレンスからCloudNative Wasm DAYを紹介
- KubeCon Europe 2024からWASMとeBPFを使ってストリーム処理を解説するセッションを紹介
- Open Source Summit NA 2023から、分散処理ランタイムのDaprで実装するワークフローを紹介
- WasmCon 2023からLLMをWASMで実装するセッションを紹介
- 写真で見るGitHub Universe 2022、限られた空間で最大限の効果を狙ったイベント作り
- Civo Navigate North America 2024、元Dockerで現DaggerのCEO、Solomon Hykesのインタビューを紹介
- All Things OpenからFermyonTechのMatt Butcher氏のセッションを紹介
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説