Slide 1

Slide 1 text

WASMCON2023 Keynoteから⾒るWASMの今 NTTドコモ サービスイノベーション部 CCoE ⼭崎光司 1

Slide 2

Slide 2 text

1. WASMCON 2023 概要 2. WebAssemblyについてのおさらい 3. WASI preview2のComponentモデルについて 今⽇お話すること 2

Slide 3

Slide 3 text

• 主催: The Linux Foundation • 開催場所: Bellevue, Washington • 開催⽇時: 2023/09/06 ‒ 2023/09/07 • 参加者数: 300 ~ 500⼈程度? 前⾝は2021年から開催されているKubeCon内で のOne Dayイベンド”Cloud Native WASM DAY” 会場がコンパクトなこともありロビーでは常に交 流している⼈々がみられ、和やかな雰囲気 参加者はほとんどエンジニアで、技術的な興味で 参加している⽅が多かった印象。 WASMCON2023概要 3 引⽤: https://twitter.com/linuxfoundation/status/1699442849954382015

Slide 4

Slide 4 text

• 2⽇間のキーノートではWebAssemblyを取り巻く現在の状況や今後のロード マップ(WASI preview2など)に関連するトピックが語られた。 • WebAssemblyを取り巻く現在の状況 • WebAssemblyの仕組みが持つ可能性について • クラウドインフラ(Edge含む)とWebAssemblyの関係について • 具体的なユースケースについて WASMCON2023: Keynotes Summery 4 Wasmの現在について語る Chris Aniszczyk(CTO, Linux Foundation CNCF) MidokuraのWASM活⽤について語る 加藤CEO, Dan CTO ShopifyにおけるWasmのプロダクション利⽤ までの軌跡について

Slide 5

Slide 5 text

WebAssemblyの現在地について • Charting a Wasm Landscape ‒ Chris Aniszczyk, Chief Technology Officer, Cloud Native Computing Foundation WebAssemblyの仕組みがもつ可能性について • WASI Standards and the Component Model: Transforming Application Development Forever - Liam Randall, Chief Executive Officer, Cosmonic • What is a Component (and Why)? - Luke Wagner, Distinguished Engineer, Fastly • Are We Componentized Yet? - Bailey Hayes, Engineering Director, Cosmonic クラウドインフラ(Edge含む)とWebAssemblyの関係について • WebAssembly in a Containerized World - Brendan Burns, Corporate Vice President, Azure OSS and Cloud Native, Microsoft • Deploy WASM on the Edge - Brendan Irvine-Broque, Product Manager, Cloudflare Workers, Cloudflare • How WebAssembly can Power the New Wave of Serverless AI - Radu Matei, Co-founder & Chief Technology Officer, Fermyon 具体的な事例・ユースケースについて • When Wasm Meets Cyber-Physical Systems: A Discussion of WebAssembly in Real-Time, Safety-Critical Systems - Emily Ruppel, Research Scientist, Robert Bosch LLC • WEdge Project: Edge AI enabled by Wasm - Tatsuya Kato, Chief Executive Officer & Dan Mihai Dumitriu, Chief Technology Officer, Midokura • Wasm from the Inside Out: A Journey Through the Impact of WebAssembly in Production - Saúl Cabrera, Staff Developer, Shopify WASMCON2023 Keynotes List 5

Slide 6

Slide 6 text

スポンサー企業⼀覧 6

Slide 7

Slide 7 text

Session • 2⽇間で約50セッションが開催。 • WASM/WASIそのものの仕様や内容に関するもの • Android/iOSなどのクロスプラットフォーム関連もの • AI, Machine Learning, LLMもの • OS周りでの活⽤に関するもの • WasmEdge, WasmCloud, Spin, Dapr, nginx unitなどのruntimeやサービスもの Workshop • スポンサー提供のworkshopが4つ開催 • Midokura: Modernizing the Development of AI IoT Devices with WEdge • CNCF: High Performance Network Applications with Wasm • Cosmonic: From Napkin Sketch to Running Your Apps at Scale • Fermyon: Getting Started with Serverless WebAssembly and Spin ※workshopは映像アーカイブなし コンテンツ: Session & Workshop 7

Slide 8

Slide 8 text

WebAssemblyとは WebAssembly Recap 8

Slide 9

Slide 9 text

• 多様なプログラミング⾔語からコンパイルすることができ、ネイティブに近い速度で実⾏でき る軽量なバイナリフォーマット • W3Cにより標準化されており、Mozilla、Microsoft、Google、Appleなどによって開発 • Web(ブラウザ)での利⽤を⽬的として設計されているが、現在はその範囲を超えて適⽤が進ん でいる WebAssembly(WASM)とは 9 Portability 同⼀バイナリを複 数プラットフォー ムで実⾏可能 Speed ネイティブに近い 実⾏速度 Security サンドボックス環 境でセキュアに実 ⾏可能 Language Agnostic 多様な⾔語からコ ンパイルして WASMバイナリ を⽣成可能 Low Footpirnt 最⼩限のメモリと CPUリソースで 実⾏可能

Slide 10

Slide 10 text

主にパフォーマンスとソフトウェア開発の柔 軟性に関する利点が主に開発者を引き付ける 理由となっている • より⾼速なロード時間(23%) • 新しいユースケースや技術を探求する機会(22%) • プロジェクト間でのコード共有(20%) • JSを上回るパフォーマンス改善(20%) • どこでも実⾏できるバイナリの使⽤(18%) • 技術が⾔語に依存しないこと(18%) WebAssemblyへの期待値 10 引⽤元: The State Of WebAssembly 2023 ただし、実態として各項⽬に差はほとんどなく、様々な観点が 複合されて注⽬度が⾼まっていることがわかる

Slide 11

Slide 11 text

• WASMをwebブラウザ以外で動かすための標準仕様 • WASMにホストのファイルシステムやネットワークなどのOS機能へのアクセ スを提供するための仕様 • WASMと同じくW3Cで仕様の策定が進められている • WASIの仕様を実装したWASM Runtime上で実⾏することで、Linuxマシン上で の動作などが可能になる • 現在はWASI Preview1がメインストリームで、Preview 2の仕様策定と実装が Bytecode Allianceによって進められている。 WASI(WebAssembly System Interface)とは 11

Slide 12

Slide 12 text

• WASIは, WasmEngine側でWasmバイナリが利⽤できるシステムインター フェースのAPIを⽤意し、実際のOS内のシステムコールはWasmEngineが⾏う。 WASMプログラムとWASIの関係 12 Wasm Engine (includ e WASI API) OS clock_time_get() path_open() fd_write() fd_close()

Slide 13

Slide 13 text

• 各種⾔語からWasmバイナリを⽣成し、ブラ ウザなどの環境内(正確にはStackベースの仮 想マシン上)で実⾏される。 • Wasmというレイヤーを加えることで、⾔語 に依存しない(Language Agnostic)、複数の環 境で実⾏可能(Portability)、などのメリットを 享受できる。 WASM/WASIのエコシステム 13 Browser / Wasm Engine 引⽤: https://www.youtube.com/watch?v=tAACYA1Mwv4 x86 x64 ARM32 ARM64 RISC-V ... ... x86 x64 ARM32 ARM64 RISC-V 別カンファレンスではWrite Once, Run Anywhereの再来だ! と語っている⼈も The Return of Write Once, Run Anywhere by Tyler McMullen @ Wasm I/O 2023

Slide 14

Slide 14 text

プラットフォーム事業者のWASI対応 14 Edge Functionsにて Wasmをサポート Shopify Functionsにて Wasmをサポート Nginx Unitで Wasmの実⾏をサポート Cloudflare Workersで Wasmをサポート Azure Kubernete Service にてWasmの実⾏をサポート Compute@Edgeにて Wasmをサポート

Slide 15

Slide 15 text

ランタイム/Wasmエコシステム関連プロジェクト 15 スタートアップ CNCFプロジェクト Bytecode Allianceプロジェクト • Wasmtime • Cranelift • WAMR • Javy

Slide 16

Slide 16 text

「Compoment」モデルについて Hot Topic in WASMCON 2023 16

Slide 17

Slide 17 text

• Wasm Componentは、Wasmで書かれたプログラム同⼠を組み合わせることが できるように定めたIFのこと。WASI Preview2の⼤きな⽬⽟。 • interface-type: ⼊出⼒の定義(import/export) • module-linking: wasmのモジュールを別のwasmモジュールに対して動的にリンク • WIT(Wasm Interface Type)というIDLで記述 Wasm Component 17 wasmの世界における「型」を定めることで、各⾔語で記述され る型の違いを吸収し、別⾔語でコンパイルされたwasm module であっても相互にやり取りできるようになる

Slide 18

Slide 18 text

「Component」とはなにか 18 What is a Component (and Why)? - Luke Wagner, Distinguished Engineer, Fastly

Slide 19

Slide 19 text

Componentがもたらす恩恵の例 19

Slide 20

Slide 20 text

• Wasmはコンテナより⼀段階上の抽象化レイヤーであり、今後のクラウドインフラにおける新 しい層になる(かもしれない • WASIでOS以下を抽象化した実⾏環境を⼟台とし、Wasm Componentでアプリケーションのラ イブラリをビルディングブロック化することで、アプリケーションだけにフォーカスできるよ うになるというビジョンをCosmonicのCEO Liam Randallが語っていた Wasm Componentは新しいコンテナレイヤー説 20 CosmonicはwasmCloudという Wasmの実⾏基盤を提供するOSSの 開発とSaaS版のサービス提供を⾏っている企業 引⽤: Keynote「WASI Standards and the Component Model」より

Slide 21

Slide 21 text

WASMCONを更にRecapしたい⽅向け 21 https://www.youtube.com/@LinuxfoundationOrg/videos The Linux FOUNDATION の公式 YoutubeチャンネルにKeynote & Sessionがほぼ全てアップされてい ますのでチェックしてみてください。

Slide 22

Slide 22 text

• THE Linux FOUNDATION Youtube Channel - https://www.youtube.com/@LinuxfoundationOrg/videos • The State Of WebAssembly 2023 - https://www.cncf.io/wp-content/uploads/2023/09/The-State-of- WebAssembly-2023.pdf • CNCF CloudNative Interactive Landscape - https://landscape.cncf.io/wasm 参考リンク 22