[HN Gopher] WASM-Native Orchestration
       ___________________________________________________________________
        
       WASM-Native Orchestration
        
       Author : fofoz
       Score  : 62 points
       Date   : 2025-02-12 07:43 UTC (1 days ago)
        
 (HTM) web link (wasmcloud.com)
 (TXT) w3m dump (wasmcloud.com)
        
       | firtoz wrote:
       | What are some real life use cases for this, instead of let's say
       | edge functions or durable objects etc?
        
         | stpedgwdgfhgdd wrote:
         | This is an abstraction on top of edge functions. So you do not
         | have to tie into a provider like Cloudflare. At least that is
         | suggested.
         | 
         | An orchestration engine like this will replace k8s one day.
         | Kubernetes is great for enterprise development, but just too
         | knowledge intense to get most out of it.
        
         | mirekrusin wrote:
         | I think it starts to be interesting because wasm modules are so
         | lightweight it opens interesting ways of orchestration.
         | 
         | Each node can easily have copy of every deployed module.
         | 
         | Having modules locally means you can skip network and just call
         | functions in memory directly.
         | 
         | Startup time is also tiny.
         | 
         | Scaling by replication is so efficient that it becomes a whole
         | new thing (on demand, extremely high upper limits, write easy
         | serial code everywhere and scale it for concurrency).
         | 
         | etc.
         | 
         | The whole thing is lightweight and performant enough that it
         | could as well be part of OS.
         | 
         | Looks like early days of the future and like people say has
         | potential of dethroning docker.
         | 
         | K8s will probably eventually have first class support for wasm
         | but it may not dovetail so much with their current setup.
         | 
         | If they don't keep up somebody else is going create wasm
         | orchestration that takes advantage of that and this wasm-native
         | orchestration seems to be doing just that.
         | 
         | Ie. this "link" type looks like wasm linking, it's a bit like
         | dynamic linking of libraries for native apps.
        
           | tootie wrote:
           | I'm reading docs and barely following what actual mechanism
           | is involved to enable any of the stuff they are selling. Am I
           | correct in reading that this is like a modern version of the
           | JVM with WASM in place of bytecode? So I can compile Python
           | or Go or whatever into WASM and wasmcloud provides a portable
           | runtime? So instead of packaging an entire containers worth
           | of OS primitives, it's runtime with an API?
        
       | diggan wrote:
       | I feel like this landing page has so many buzzwords I don't quite
       | understand what the application/project itself is, but I do
       | understand it's universal, runs everywhere and can run anything
       | anywhere.
       | 
       | Could someone who knows what it is, give a simpler description?
       | Is it a OS/kernel? Runtime? Orchestrator? Self-hosted platform?
       | Cloud platform?
        
         | arccy wrote:
         | k8s is for docker containers, this thing is like k8s but for
         | wasm (and even uses similar apis).
        
           | diggan wrote:
           | Ok, so wasmCloud is like Kubernetes, but then I don't
           | understand their tagline: "Build, manage, and scale Wasm apps
           | across any cloud, K8s, or edge" or the "Run wasmCloud
           | standalone or on Kubernetes" part.
           | 
           | Why would you want to run a orchestrator (wasmCloud) on top
           | of another orchestrator (Kubernetes)? Are they competitors?
           | No, then it wouldn't make sense to run it on Kubernetes, so
           | that makes them complements?
        
             | jcmfernandes wrote:
             | You use k8s to manage the machines where wasmCloud runs,
             | and wasmCloud to manage the WASM apps that run on top of
             | it. That's at least my understanding.
        
               | magicalhippo wrote:
               | [delayed]
        
         | hsuduebc2 wrote:
         | Apparently something that can replace docker or build on top of
         | it. Buzzword here once again.
        
       | mentalgear wrote:
       | Mh... I would be most interested in how this could be used for
       | running a local-first software infrastructure cloud. Does anyone
       | has maybe some infos in how it could be used in that way ?
        
       | srameshc wrote:
       | Too much marketing fluff on the website. How about showing simple
       | example as how is it easier or useful to deploy some service to
       | fly.io , AWS or GCP or maybe a Postgres deployment to Digital
       | Ocean, Render or whatever. I want to use it but before I want to
       | know how can I move my dependency from managed XYZ and easily
       | run/manage my own deployment of databas, services.
        
       | digdugdirk wrote:
       | Question for everyone - I've long wondered if it would be
       | possible to use WASM to create a p2p "cloud" to reduce reliance
       | on datacenters?
       | 
       | My thought would be to encrypt all data packets prior to
       | shuffling them into the network, and have some sort of incentive
       | for people to keep their devices running on the network to
       | enhance reliability - probably with a blockchain of sorts that
       | serves as the main "map" of content in the network.
       | 
       | The dream goal would be to create a digital "data cooperative"
       | that enables opt-in selling of your data/usage habits, with a
       | default setting of total privacy. Ideally this would be backed by
       | the blockchain to close the loop on the incentive for usage.
       | 
       | Is there already something like this that I'm not aware of? Are
       | there any areas of research I should look into?
        
         | pipo234 wrote:
         | You mean like BOINC? But with crypto?
        
         | concerndc1tizen wrote:
         | You can't trust third party compute.
        
           | JFingleton wrote:
           | Perhaps we could:
           | 
           | https://en.m.wikipedia.org/wiki/Homomorphic_encryption
           | 
           | Someone far smarter than me could probably tell us if this
           | actually works in the real world?
        
         | bhelx wrote:
         | yes it's certainly possible. i don't know if it exists but
         | there are many things like it. not exactly what you describe,
         | but many blockchains use wasm as the contract execution
         | runtime. also, it kind of sounds like filecoin but with
         | compute. i'm sure "protocol labs" has a project close to what
         | you are talking about.
         | 
         | edit: the hard part to note is probably the "trust" part. might
         | be trickier to solve than just giving incentives.
        
         | ImHereToVote wrote:
         | You would need Middle-out compression for this to scale. Lepton
         | from Dropbox uses Middle-out to compress jpg images.
        
       | NewMountain wrote:
       | I've seen this project pop up two or three times in the last few
       | days. I'm really excited about this and wasm in general and spent
       | last night working through the docs page
       | (https://wasmcloud.com/docs/intro/).
       | 
       | I set up hello world in TS, Rust and Go and went through the
       | happy path of saying hello world. That was a really nice and
       | encouraging dopamine hit.
       | 
       | My biggest critique is once you need to go any further and turn
       | hello world into even something pretty small but useful, the
       | wheels fall off fast. Almost immediately after the "ooooh cool"
       | of creating a hello world container with `wash dev` and seeing it
       | on port 8000, which was my favorite part, things started to get
       | weird.
       | 
       | After the tutorial introduces `wash dev`, a sort of create-react-
       | app for wasm that bootstraps the project, generates a ton of
       | boilerplate and generates a hot-reloading server, the tutorials
       | immediately introduces `wash up` and `wash ui`. I figured out
       | `wash ui` is an admin dashboard of sorts. Why can't I just have
       | admin dashboard as an option in my hosting command like `wash dev
       | --dashboard=true`? It never really explains why I want `wash up`
       | vs `wash dev`, where they differ, why they differ and why each
       | exists. The `wash up` experience is much more clunky and, to be
       | honest, I'd really just want to keep going with the same command
       | that was working for me like `wash dev --dev` and then `wash dev
       | --prod` with a heavy emphasis in the tutorial on the difference
       | for each as it's really not clear.
       | 
       | Confusion aside, the project seems very optimized for everything
       | up to `wash dev` and then gets weird after that. I originally
       | tried to create three components: hello-go, hello-rust and hello-
       | ts. I used `wash new component hello-{lang} --template-name
       | hello-world-{language}` and it created a sub-directory for each
       | component. Each sub-directory looks like it's own self-contained
       | universe and it is not _at all_ clear how to get each component
       | invoking other components (which is heavily emphasized as one of
       | the killer apps throughout the introduction page). Furthermore,
       | the `wash dev` command seems to only work within a single
       | component. It is not clear how, if at all, I can run `wash dev`
       | in the main directory and rebuild each component in its sub-
       | directory (how I would like this to work). Also, it seems like
       | each component's `.wadl` defines the component behavior (the url
       | via spec.components[http-component]) but I don't want to think
       | about each individual component, I really want to have one infra
       | definition in root that defines the behavior of every component
       | (particularly the spreadscaler and http address).
       | 
       | There are no examples for anything beyond super-trivial /get of
       | hello world. Could you show a post? Can I run multiple components
       | on different routes? What about different components on different
       | ports? If the intent is to run a "super lambda" that handles all
       | traffic and routes internally, at least show that as an example.
       | 
       | Finally after a lot of digging, I found a link to a multi-
       | component example
       | (https://github.com/wasmCloud/wasmCloud/tree/main/examples/ru...)
       | which introduces a half dozen new tools and commands not
       | discussed anywhere in the tutorials and introduces a ton a clunky
       | steps. In my head, I was thinking about all the steps in a Github
       | Action runner I would need to make this seamless and just
       | thought...this ain't it.
       | 
       | Also, about half way through the docs make a throwaway reference
       | to hosting with Wasmtime and JCo....wat? I thought the point of
       | the wash tool was to take me from dev on localhost to hosting in
       | production. Is it not? If not, make that _very clear_ in the
       | docs.
       | 
       | To be clear: I _REALLY_ want WasmCloud to be successful. A
       | lightning fast (virtually cold-start free) self-hostable,
       | serverless function platform is my dream. I would love nothing
       | more than a platform where I and/or a small team could write
       | functions in Go/Rust/JS/TS/Python, bundle and deploy them to a
       | serverless platform we host. It's even better that this platform
       | out of the box provides support for metrics, monitoring, logging
       | and tracing. The first article I read about you a few days ago I
       | jumped out of my chair in joy that my dream was finally coming
       | true. While I didn't dig into it too much, it seems the platform
       | also provides idioms for distributed systems (some mechanism to
       | distribute load across self-organizing hosts on different
       | machines). The reality is more rough and after using it, it's not
       | clear if I misunderstood what this project is and was confusing
       | it for something else or if it just needs more polish and DX
       | focus.
       | 
       | I am rooting for you so much and wanted to give this feedback as
       | I can't think of anything better than a self-hosted cold-start-
       | less distributed serverless function platform but the rough edges
       | would mean either I incur a ton of CI automation to smooth the
       | rough edges, or I just keep watching this project before
       | adopting.
        
       | lenkite wrote:
       | I don't see the advantage of this over simply using kubernetes
       | and the Kwasm Operator which adds WebAssembly support to
       | Kubernetes nodes. No need for yet another flimsy later of
       | abstraction.
       | 
       | Maybe after 5-10 years it will be mature enough to support many
       | k8s features out of the box and can then replace k8s itself. But
       | it is very far from that currently.
        
         | williamstein wrote:
         | I've never used wasmcloud, but they claim the following
         | advantage over k8s on this page: "Leverage WebAssembly
         | components to extend Kubernetes and distribute applications
         | across clouds, regions, clusters, and edges."
         | 
         | I think they use NATS.io to include "edge" services, which is
         | something that is challenging to do in a single k8s cluster.
         | 
         | I don't think they are trying to replace k8s, but instead are
         | solving a slightly different problem, which is attempting to
         | build something somewhat like k8s, but with very different
         | networking and security constraints.
        
       | thesurlydev wrote:
       | Taking a quick look around on their website it seems you can have
       | them host for you or self-host but absolutely requires k8s. If
       | I'm wrong, point me to the doc that shows you how to self-host
       | without k8s and I'll officially be excited.
        
       ___________________________________________________________________
       (page generated 2025-02-13 23:00 UTC)