Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wasm-SF Meetup - Creating a "Docker-Like" Experience for Wasm in Envoy

Solo.io
October 21, 2020

Wasm-SF Meetup - Creating a "Docker-Like" Experience for Wasm in Envoy

Solo.io is a company building developer and operator tools for Envoy, API gateways and Service Mesh. This talk covers the developer experience and tools we are building to make it easier to build and share WebAssembly modules for Envoy Proxy (and Envoy based solutions). The demos will cover WebAssembly Hub (a public repository to store and share modules), to wasme (a CLI to build, push, pull, and deploy wasm modules), and an OCI image spec to standardize how the wasm modules are stored that can be applied to any module, not just those for Envoy.

https://solo.io
https://webassemblyhub.io/
https://slack.solo.io

Solo.io

October 21, 2020
Tweet

More Decks by Solo.io

Other Decks in Programming

Transcript

  1. Creating a "Docker Like" developer experience for WebAssembly Yuval Kohavi

    - Chief Architect @ Solo.io Shane O’Donnell - Software Engineer @ Solo.io
  2. 2 | Copyright © 2020 2 | Copyright © 2020

    Yuval Kohavi Chief Architect Solo.io Shane O’Donnell Software Engineer Solo.io
  3. 4 | Copyright © 2020 Envoy - Cloud Native HTTP/TCP

    Proxy - Can be used to implement API Gateways, service meshes. - Configurable via API - Extendable - This one of the most compelling Envoy features. Each user can customize it.
  4. 6 | Copyright © 2020 Gloo - Envoy based API

    gateway - Envoy configuration is verbose, and intended to be machine generated - Provides simpler abstractions
  5. 7 | Copyright © 2020 Control Path EXTERNAL AUTH RATE

    LIMITING gRPC TRANSCODER ROUTER UPSTREAM EXTERNAL AUTH SERVER RATE LIMITING SERVER VirtualService : route: / -> svc1 auth: opa: allow = ... auth: opa: allow = ... route: / -> svc1
  6. 8 | Copyright © 2020 Data Path EXTERNAL AUTH RATE

    LIMITING ROUTER UPSTREAM EXTERNAL AUTH SERVER RATE LIMITING SERVER POST /dentists Content-Type: application/json Authorization: Bearer xyz {"name":”Dr. Seuss"} POST /com.example.DentistService/AddDentist Content-Type: application/grpc Authorization: Bearer xyz Binary protobuf: \x12\x011\x12\seuss { Method: "POST", Path: "/dentists", Headers: { "Content- Type”:"application/json", "Authorization": "Bearer xyz" } } OK Descriptors {generic_key: "add-drs"} OK gRPC TRANSCODER
  7. 9 | Copyright © 2020 ⃞ Use other languages ⃞

    Fast ⃞ Safe ⃞ No need to compile ⃞ Easy Very powerful, but leaves a lot to wish for…
  8. 11 | Copyright © 2020 EXTERNAL AUTH RATE LIMITING ROUTER

    UPSTREAM EXTERNAL AUTH SERVER RATE LIMITING SERVER CUSTOM gRPC TRANSCODER Gloo – Custom filters ⃞ Use other languages ✓ Fast ✓ Safe ⃞ No need to compile ⃞ Easy
  9. 13 | Copyright © 2020 “WebAssembly: it’s neither web, nor

    assembly” WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications. -> No Assembly -> Binary Instruction Format -> No Web -> WASI
  10. 19 | Copyright © 2020 ✓ Use any language ✓

    Fast ✓ Safe ✓ No need to compile ✓ Easy Very powerful, but leaves a lot to wish for…
  11. 20 | Copyright © 2020 20 | Copyright © 2020

    Envoy support for WebAssembly
  12. 21 | Copyright © 2020 WASM in Envoy EXTERNAL AUTH

    RATE LIMITING ROUTER UPSTREAM CUSTOM gRPC TRANSCODER
  13. 22 | Copyright © 2020 WASM in Envoy EXTERNAL AUTH

    RATE LIMITING ROUTER UPSTREAM WASM gRPC TRANSCODER
  14. 23 | Copyright © 2020 WASM in Envoy EXTERNAL AUTH

    RATE LIMITING ROUTER UPSTREAM WASM gRPC TRANSCODER Code V8 ABI
  15. 26 | Copyright © 2020 WASM in Envoy EXTERNAL AUTH

    RATE LIMITING ROUTER UPSTREAM WASM gRPC TRANSCODER Code V8 ABI Code + SDK
  16. 27 | Copyright © 2020 ✓ Use any language ✓

    Fast ✓ Safe ✓ No need to compile ⃞ Easy Very powerful, but leaves a lot to wish for…
  17. 32 | Copyright © 2020 ✓ Use any language ✓

    Fast ✓ Safe ✓ No need to compile ✓ Easy Very powerful, but leaves a lot to wish for…
  18. 33 | Copyright © 2020 Beyond Envoy... - OCI Artifact

    Spec - Expand to other projects - OPA, krustlet, … - More tooling - Testing, Debugging, …
  19. 34 | Copyright © 2020 34 | Copyright © 2020

    @soloio_inc github.com/solo-io www.solo.io