A New Kind of Cloud System Interface with WebAssembly
10-23, 11:10–11:40 (US/Eastern), Main Room

Engineering distributed applications has never been harder. The development process is filled with work that distracts from business logic, such as state persistence, event-handling, and knowledge about orchestrators, schedulers, and cloud providers. What if we create a new POSIX for the cloud?

The SpiderLightning Project experiments with capabilities as interfaces that extend WASI to create a new POSIX for the cloud. For example, developers can use a key-value interface to manage application states without requiring provider specific knowledge (e.g., Redis) because the host implements this interface and will be configured with the proper implementation. This creates common distributed application APIs and decouples application development from operational knowledge.

Like how Kubernetes and Istio abstract away networking and the lifecycle of distributed applications, SpiderLightning is an experiment to abstract away common distributed application capabilities and offer developers a set of provider-agnostic APIs, which enable developers to write portable applications without directly depending on vendor specific SDKs. Applications can leverage these interfaces to reduce the amount of code written to achieve tasks such as persisting key/values, participating in pub/sub, handling messages from a message queue, and much more. By reducing the code footprint, this experiment also enables application binaries to be much smaller than similar container-based applications. This feature further increases the maintainability and portability of applications to target constrained runtime environments like edge devices. Most critically, we want to facilitate community discussions on building a consensus on cloud-agnostic distributed application profiles.

Jiaxiao Zhou is a software engineer at Deis Labs, Microsoft. He works on bringing Wasm outside of the browser through projects like

  • runwasi, a containerd wasm shim that can run wasm images and be orchestrated by Kubernetes.
  • SpiderLightning, a set of interfaces for common distributed application APIs.

Jiaxiao likes learning distributed systems, programming languages, type theory and hopes to build tools that make programming less difficult.