[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)