Slide 1

Slide 1 text

1 Why should I care about WebAssembly? Adrian Cole OSS Engineer

Slide 2

Slide 2 text

WebAssembly in the browser is controlled by javascript 2 javascript html css webassembly VM module module WebAssembly is JavaScript’s buddy code in another language!

Slide 3

Slide 3 text

WebAssembly’s core specification is usable outside the browser 3 golang runtime module WebAssembly can be your buddy, too! code in another language! WASI module wazero.io

Slide 4

Slide 4 text

WebAssembly is often an implementation detail of plugins 4 thing binary Using WebAssembly might look more like this.. plugin code in another language! plugin.wasm thing yaml thing SDK

Slide 5

Slide 5 text

Missing links.. things about WebAssembly not everyone gets 5

Slide 6

Slide 6 text

WebAssembly is Web Biased WebAssembly is a Web standard. Two of its specs are around browser use. Features are acceptable if used by at least two browsers. Its virtual stack machine and bytecode formats are used outside the browser. 6

Slide 7

Slide 7 text

WebAssembly is not Assembly WebAssembly defines a virtual stack machine with instructions similar to real hardware. Common hardware are register machines, not stack machines, and their assembly code is architecture specific. 7

Slide 8

Slide 8 text

A WebAssembly Module is a library or quasi executable 8 ● Wasm is bytecode, not a package or image format ● WebAssembly is a compile target for a possibly constrained language ● WebAssembly has no standard library programming WebAssembly is different

Slide 9

Slide 9 text

WebAssembly is a sandbox, architecture that cooperates with its host via shared memory, globals and functions 9 ● no capabilities besides number crunching, more more is often needed ● WASI are function imports for I/O, time, random numbers, ENV, etc ● When acting like an entrypoint, it is using WASI WebAssembly is a coprocessor

Slide 10

Slide 10 text

See also.. things like WebAssembly you already know 10

Slide 11

Slide 11 text

11 ● Oracle JCP ● Dominates the backend ● Language bias. Ex field instructions ● Other languages share object model, GC, stdlib ● W3C Working Group ● Dominates the browser ● Hardware bias. Ex SIMD instructions ● Other languages bring their own object model, GC, stlib Virtual Stack Machines

Slide 12

Slide 12 text

12 ● Images built with Dockerfile instructions ● OS-layer host ● containers shouldn’t see their host ● Binaries built by language compiler ● Application-layer host ● wasm often use host hooks Sandboxes

Slide 13

Slide 13 text

Why do we care? The title of this presentation is about this, right?! 13

Slide 14

Slide 14 text

Serverless, Service Mesh, Event Driven ● Wasm decentralizes language choices ● Extend your service mesh control and data plane ● Is fast start a game changer? 14

Slide 15

Slide 15 text

Developer tools, Delivery, Observability & Monitoring ● Programming in WebAssembly is more constrained than a natural language. What do you do about it? ● Does this allow you to extend otherwise tricky IP? ● Do you know what’s happening inside the Wasm? 15

Slide 16

Slide 16 text

● Can you now share model code between frontend and backend? ● Can hosting 3rd party wasm obviate remote calls? ● Host functions and cooperation can create coupling DevOps and Production 16

Slide 17

Slide 17 text

There’s somewhere to start your journey in WebAssembly 17 ● Mesh and FaaS already use wasm, so you can practice ● Many projects use an SDK approach to enable success ● WebAssembly has a dynamic Spec and vibrant OSS Closing thoughts

Slide 18

Slide 18 text

Ask me about wings WebAssembly at the Tap Room 7:30pm