I have no idea what this article is saying. It reads like an AI put together a bunch of buzzwords: A quasi-serverless WebAssembly CLI by former Microsofters will free you from Kubernetes and get you a bunch of GitHub stars from women and minorities in different time zones.
Skimming through it, I think they mean they've created a PaaS that would run your code (i.e., platform for "serverless" apps). But under the hood your code will not be started as a docker container & stuff but rather compiled to WASM allowing them to reduce the overhead. They've created an open-source tool for pushing your code to their proprietary platform and it's already got 1000 stars on Github. They are a remote company that, obviously, hires people (including women & minorities) in different time zones. They're using Slack for communication.
So it's just a serverless function running in WASM? The article didn't make that very clear.
> If you’re thinking the solution sounds a lot like serverless, you’re not wrong...
> So the idea was to take the best of serverless and microservices, and combine them on this new platform that mostly removed Kubernetes...
> “What we really wanted was the serverless experience, right?...
Still sounds just like serverless. But it's not? Or it is, and then some? I dunno.
> Spin is an instrumental piece of Fermyon that makes it easy for users to run production workloads with WebAssembly, and it achieved 1,000 GitHub stars within the first six weeks after its release,” according to the company.
Still doesn't tell us what it does...
> using Slack
Lol, definitely the thing I need to know in order to understand a new company & service. They use time zones too? Oh wow, now THAT's innovation. Thanks, TechCrunch...
Read this bit again, it feels very bizarre to me and is like they're misunderstanding how server side development and containers work...?
> The whole isolation model that keeps WebAssembly from being able to attack the hosts through the browser was the same kind of [security] model we wanted on the cloud side,” Butcher explained.
I then went to the fermyon.com website, and their first line says
> Embeddability: design components to be embedded in a diverse set of host execution environments, including browsers, servers, intermediaries, small devices and data-intensive systems.
So now I'm extra confused. WASM lets you run compiled languages like C# in the browser. You can already run that on the server side. You can run it in a container. What problem is WASM solving here? Unfortunately the language is hard to follow so even if they have answered it, it's not very accessible.
> You can already run that on the server side. You can run it in a container. What problem is WASM solving here?
As I understand it, they let you run your code on their servers. Their proprietary WASM solution is used for isolation of different processes instead of containers, virtualization & stuff.
The article is so obfuscated it's hard to know what they're actually selling. My guess is that it's something similar to Cloudflare Workers + WebAssembly (https://blog.cloudflare.com/webassembly-on-cloudflare-worker...), meaning a serverless function. In Cloudflare's case, the main worker itself works in JS, but can import WASM modules.
In Fermyon's case, you can compile directly to WASM, skip the JS layer, and the framework will set you up with HTTP endpoints to handle requests. Why WASM? It's faster, and lets you transpile from other common backend languages so you don't have to write JS, I guess.
So like they containerize WASM for you into serverless functions that you don't have to micromanage yourself. Send it some data-intensive task and get back some data. Like a remote procedure call, almost?
Or at least that is my GUESS. No idea if any of that's right... the article and website aren't clear at all.
My understanding is that it's mostly solving sandboxing for multitenant cloud operators. I don't know how right they are, but if they are it's a big deal, because virtualizing and isolating users from one another is very costly today (containerization is not strong enough for isolation – you need vms or something like gvisor). A large portion of that cost comes from overprovisioning, since vms don't scale up and down quickly or cheaply. If wasm holds up to its ambitious aspirations, it could act as a packaging format, a sandbox across users and it could even run in kernel mode (let's pretend spectre and I guess side-channel attacks in general doesn't exist for a moment).
For the customer, it's a compile target, which is a promising direction and means in theory that you can mix and match languages at a granular level, but in practice of course this has countless unknowns (did I hear anyone ask about ABIs?). It's more nimble than containers – you no longer need to think or care about the OS and all it's gritty details. At the same time it's also unclear where exactly the runtime boundary lies. File descriptors? A full https stack? And so on. I've come to believe that this boundary is extremely important, and difficult, to get right.
So yeah, dreamy and utopian, never failed us before right? If you put on rose tinted glasses it could have implications ranging much further than just cloud. I, for one, am crossing my fingers (and yes, I know how naive I sound).
Not nearly as ambitious as wasmCloud[1]. Fermyon will do simple wasm worker hosting with a "spin deploy"
https://www.fermyon.dev has more information about how the underlying platform operates on their end. Nomad is mentioned but not the VM of choice that will underpin the cold-start times they boast of. e.g. SecondStateVM(wasmEdge) claims fastest 20ms cold-start [2]
14 comments
[ 3.7 ms ] story [ 31.2 ms ] threadHuh?
> If you’re thinking the solution sounds a lot like serverless, you’re not wrong...
> So the idea was to take the best of serverless and microservices, and combine them on this new platform that mostly removed Kubernetes...
> “What we really wanted was the serverless experience, right?...
Still sounds just like serverless. But it's not? Or it is, and then some? I dunno.
> Spin is an instrumental piece of Fermyon that makes it easy for users to run production workloads with WebAssembly, and it achieved 1,000 GitHub stars within the first six weeks after its release,” according to the company.
Still doesn't tell us what it does...
> using Slack
Lol, definitely the thing I need to know in order to understand a new company & service. They use time zones too? Oh wow, now THAT's innovation. Thanks, TechCrunch...
> The whole isolation model that keeps WebAssembly from being able to attack the hosts through the browser was the same kind of [security] model we wanted on the cloud side,” Butcher explained.
I then went to the fermyon.com website, and their first line says
> WebAssembly-powered cloud tools
And later in the page leads to the WASM 'component model' at https://github.com/WebAssembly/component-model/blob/main/des... which actually mentions that!
> Embeddability: design components to be embedded in a diverse set of host execution environments, including browsers, servers, intermediaries, small devices and data-intensive systems.
So now I'm extra confused. WASM lets you run compiled languages like C# in the browser. You can already run that on the server side. You can run it in a container. What problem is WASM solving here? Unfortunately the language is hard to follow so even if they have answered it, it's not very accessible.
As I understand it, they let you run your code on their servers. Their proprietary WASM solution is used for isolation of different processes instead of containers, virtualization & stuff.
In Fermyon's case, you can compile directly to WASM, skip the JS layer, and the framework will set you up with HTTP endpoints to handle requests. Why WASM? It's faster, and lets you transpile from other common backend languages so you don't have to write JS, I guess.
So like they containerize WASM for you into serverless functions that you don't have to micromanage yourself. Send it some data-intensive task and get back some data. Like a remote procedure call, almost?
Or at least that is my GUESS. No idea if any of that's right... the article and website aren't clear at all.
My understanding is that it's mostly solving sandboxing for multitenant cloud operators. I don't know how right they are, but if they are it's a big deal, because virtualizing and isolating users from one another is very costly today (containerization is not strong enough for isolation – you need vms or something like gvisor). A large portion of that cost comes from overprovisioning, since vms don't scale up and down quickly or cheaply. If wasm holds up to its ambitious aspirations, it could act as a packaging format, a sandbox across users and it could even run in kernel mode (let's pretend spectre and I guess side-channel attacks in general doesn't exist for a moment).
For the customer, it's a compile target, which is a promising direction and means in theory that you can mix and match languages at a granular level, but in practice of course this has countless unknowns (did I hear anyone ask about ABIs?). It's more nimble than containers – you no longer need to think or care about the OS and all it's gritty details. At the same time it's also unclear where exactly the runtime boundary lies. File descriptors? A full https stack? And so on. I've come to believe that this boundary is extremely important, and difficult, to get right.
So yeah, dreamy and utopian, never failed us before right? If you put on rose tinted glasses it could have implications ranging much further than just cloud. I, for one, am crossing my fingers (and yes, I know how naive I sound).
https://www.fermyon.dev has more information about how the underlying platform operates on their end. Nomad is mentioned but not the VM of choice that will underpin the cold-start times they boast of. e.g. SecondStateVM(wasmEdge) claims fastest 20ms cold-start [2]
[1] https://wasmcloud.com/blog/globally_distributed_webassembly_... [2] https://github.com/WasmEdge/WasmEdge