How to test more complex workloads with Enarx

How to test more complex workloads with Enarx
Photo by Erda Estremera / Unsplash

New! Pre-complied example applications

In a previous article, Confidential Computing: try it now, for free, we introduced our self-service demo site, try.enarx.dev.  You can find out more about what the service offers and why we think it’s so exciting in the original article.  However, we also promised to add more capabilities to the service, and to add an update when we had.  The initial release of the site allowed you to upload WebAssembly applications and run them within an Enarx Keep (a Trusted Execution Environment, the basic primitive for Confidential Computing).  There wasn’t much help provided, and you needed to upload it each time you wanted to run it, which is fine for basic experimentation, but we wanted to provide a better user experience; which is what we did.

There are now three ways to use the service:

  • Examples
  • Drawbridge
  • Upload

All of them run on both Intel SGX and AMD SEV with no changes between them, and all of them support applications written in multiple languages.

Examples

If you choose this option, you’ll find a dropdown list of various example applications pre-compiled to WebAssembly for you to try, with simple instructions.  We’ve chosen a few different example applications, written originally in different programming languages.  This allows you to look and see what we’ve done, and use these as the starting point for writing your own application and compiling it to WebAssembly.  You can find lots of information about doing that from your favourite language in the Enarx project WebAssembly introduction.

Drawbridge

Drawbridge is the repository service for WebAssembly workloads and Enarx.  We’ve provided a free, public server (with no SLAs at this point!) for you to use.  With Drawbridge, you can take an application that you’ve already written and then register it alongside an Enarx.toml file, publishing it to the Drawbridge: you’ll get a slug (a reference to deploy).  You can then reuse this slug (which is unique to your application and changes with each version you upload) to run your application again and again.  The Enarx.toml file includes environment information about how the application should interact with its environment (including server ports, for instance), and, like the application itself, is not visible to the host that’s running the Keep - it’s only uploaded into the Keep itself.

In order to publish the application, you’ll need a copy of the Enarx binary, which you can download from here (or install from source if you prefer!).

We’ve designed the slug approach to be fairly similar to Linux container repositories, so if you’re familiar with them, you’re already off to a good start.

Upload

The quickest, but least complex way to use the service is just to upload an application via your browser.  You’ll need to provide your own Wasm file and Enarx.toml, and it’s a good way to get started without too much complexity.

Comparison of the different options

Examples Drawbridge Upload
Multi-language support
Intel SGX
AMD SEV
Ready-to-run
Use your own application
Enarx binary needed
Persistent / re-usable

There are a few restrictions on things like size (to protect our demo servers) and length of time (to protect the purpose of the demo), but if you hit any of these or have any other problems, please get in touch (easiest is via our Discord server) and we'll talk about how to overcome them.