Journey into the amazing world of WebAssembly (Wasm) and learn about how it can be applied on the cloud. This book is an introduction to Wasm aimed at professionals accustomed to working with cloud-related technologies such as Kubernetes and Istio service mesh.
Author Shashank Jain begins with an introduction to Wasm and its related tooling such as wasm-bindgen and wapc. He then walks you through code examples using Rust, Golang, and JavaScript to demonstrate how they can be compiled to Wasm and consumed from Wasm runtimes deployed standalone, as well as on the cloud. You will see how a wasm module can be run through an http interface, and how Wasm fits into CNCF projects such as Kubernetes and Istio service mesh. After that, you’ll learn how the polyglot nature of WebAssembly can be leveraged through examples written in languages like Rust and consumed via Golang and JavaScript, with a focus on how WebAssembly allows interoperability between them. You’ll gain an understanding of how Wasm-based modules can be deployed inside Linux containers and orchestrated via Kubernetes, and how Wasm can be used within the Istio proxy to apply rules and filters.After reading this book, you’ll have the knowledge necessary to apply WebAssembly to create multi tenanted workloads which can be polyglot in nature and can be deployed on cloud environments like Kubernetes.
What You Will Learn
- Understand how Wasm can be used for server-side applications
- Learn about Wasm memory model and Wasm module layout
- How communication between host and Wasm module is facilitated
- The basics of Wasm sandboxing and security
- The fundamentals of tooling around Wasm, such as WAT and Wasm-pack
- Create a Wasm module in Rust and consume it from JavaScript, Rust and Golang.
- Grasp how Kubernetes can be used to orchestrate Wasm-based workloads
- How Wasm fits into service mesh
Who Is This Book For
Software developers/architects who are looking to hone their skills in virtualization and explore alternatives to Docker and container-based technologies for their workload deployments. Readers should have a basic programming background in languages such as Rust and Golang to get the most out of this book.