The biggest advantage I see is that if you run a wasm runtime instead of a container, you get architecture independence out of the box: if there's a wasm runtime for the arch, your code will run on that arch, without having to think about which archs to support at build time. This is a pain that I'm feeling right now, as I'm setting up my ARM64-based cluster, after coming from an x86-64 based setup. A lot of official packages just don't support ARM.
Hi Viktor, I think you missed one of **THE** major advantages, WASM is platform independent. The Runtime is platform dependent not while building the container image!
Thanks for another great video! I like the idea behind WASM but there is no drop in replacment or magic formula to make your application run in WASM straightaway. There are changes to make and they may be many depending on the size of your projects. Let's not forget that some WASM implementations for popular languages like Java may not support all the features you need (at least not at the moment). I see security and speed as the 2 major advantages in using WASM but I also know that containers in Kubernetes, when done right and with the help of policies, offer comparable security levels and are isolated too through Linux namespaces. About speed one would ideally need to try its own apps in WASM and containers to tell the difference. All in all switching to WASM would still depends on many things, if your needs justify the effort then maybe it's worth it especially considering tools like Kwasm that could simplify placing your apps in Kubernetes.
@@DevOpsToolkit Thanks, I asked because I'm thinking of playing with it on Oracle's free tier which gives 4 arm cpu and 24gb ram for free. So you just inferred it because they don't mention it in the documentation, but they don't explicitly say it doesn't support it right?
Was it by accident that wasmCloud - a CNCF project - missed? It does have a k8s operator, and is architected to stretch across servers and cloud platforms, with or without k8s (thanks to use of NATS as the underlying bus).
That video wasn't a comparison so nothing was missed. Also, i believe that wasmcloud would be better compared (if it was a comparison) with Spin or spinoperator than kwasm which only install WASM runtime on selected nodes on a kubernetes cluster.
I understand; however, in the video it was stated that other WASM providers require installation of a runtime on host (as is the case with Spin/Spinkube or WasmEdge), but KWASM doesn’t (which gets around it by using a privileged pod). So, I was clarifying that wasmCloud doesn’t require the runtime to be installed either. The other feature, node selection is common between all of them. Nevertheless, thank you for introducing WASM to those in the community, who aren’t aware.
Not yet. You would still need to add a mechanism to scale to zero (gpa would work for that) abd, more importantly, something that will queue requests when there are zero replicas, scale up, and only then let those requests pass. Hence, you would still need something like knative but, in this case, the runtime can be wasi instead of containers.
@@DevOpsToolkit I see issues scheduling workloads (runc and spin based) on AKS with kwasm operator and then deleting/recreating them cross nodes (testing functionality), annotated or not, maybe the controller is not yet that reliable? have to investigate further...Possible that apparmor does any harm on MS nodes? pls also check same workloads on restart/deletion after a few hours.
This is really a missing link for wasm adoption. It would seem that wasm apps are becoming viable. But is it even possible to package large projects as wasm binaries?
It is possible to package large projects as Wasm but that's not something I would do, at least not initially. Smaller ones (stateless microservices?) are a better choice to Wasm.
The biggest advantage I see is that if you run a wasm runtime instead of a container, you get architecture independence out of the box: if there's a wasm runtime for the arch, your code will run on that arch, without having to think about which archs to support at build time. This is a pain that I'm feeling right now, as I'm setting up my ARM64-based cluster, after coming from an x86-64 based setup. A lot of official packages just don't support ARM.
Hi Viktor, I think you missed one of **THE** major advantages, WASM is platform independent. The Runtime is platform dependent not while building the container image!
Never used a RuntimeClass or WASM yet. Now it makes sense. Thanks Viktor!
I'm off to play, I'm interested in the start up times, speed of scaling up and down.
Thanks for the video !
Awesome video, thank you! Please update "Transcript and commands" link, currently it goes to the page about Justfile
Sorry for that. It's updated now.
Thanks for another great video! I like the idea behind WASM but there is no drop in replacment or magic formula to make your application run in WASM straightaway. There are changes to make and they may be many depending on the size of your projects. Let's not forget that some WASM implementations for popular languages like Java may not support all the features you need (at least not at the moment). I see security and speed as the 2 major advantages in using WASM but I also know that containers in Kubernetes, when done right and with the help of policies, offer comparable security levels and are isolated too through Linux namespaces. About speed one would ideally need to try its own apps in WASM and containers to tell the difference. All in all switching to WASM would still depends on many things, if your needs justify the effort then maybe it's worth it especially considering tools like Kwasm that could simplify placing your apps in Kubernetes.
Please, why it does not work on Oracle OKE? (as you said at 12:42)
I understood from the docs that it doesn't but I cannot say why since I'm not using OKE myself. I tend to use mostly GKE, EKS, AKS, DO, and Civo.
@@DevOpsToolkit Thanks, I asked because I'm thinking of playing with it on Oracle's free tier which gives 4 arm cpu and 24gb ram for free. So you just inferred it because they don't mention it in the documentation, but they don't explicitly say it doesn't support it right?
@JoaoFerreira-nr8cc to be honest, don't remember any more where i saw that oke is not supported 😔
I wonder how it would run on RKE2 or K3S. As usual thanks for the great content Viktor!
I haven't tried it on rke2. My best guess is that it should work.
Was it by accident that wasmCloud - a CNCF project - missed? It does have a k8s operator, and is architected to stretch across servers and cloud platforms, with or without k8s (thanks to use of NATS as the underlying bus).
That video wasn't a comparison so nothing was missed. Also, i believe that wasmcloud would be better compared (if it was a comparison) with Spin or spinoperator than kwasm which only install WASM runtime on selected nodes on a kubernetes cluster.
I understand; however, in the video it was stated that other WASM providers require installation of a runtime on host (as is the case with Spin/Spinkube or WasmEdge), but KWASM doesn’t (which gets around it by using a privileged pod). So, I was clarifying that wasmCloud doesn’t require the runtime to be installed either. The other feature, node selection is common between all of them.
Nevertheless, thank you for introducing WASM to those in the community, who aren’t aware.
@masoudbaharlouie3371 kwasm installs runtimes like Spin and configures containers. That's essentially all it does.
didn't realize there was so little I knew about WASM and its capabilities...
So would you say that this basically allows serverless computing on kubernetes without all of those extra frameworks like kubeless or knative?
Not yet. You would still need to add a mechanism to scale to zero (gpa would work for that) abd, more importantly, something that will queue requests when there are zero replicas, scale up, and only then let those requests pass. Hence, you would still need something like knative but, in this case, the runtime can be wasi instead of containers.
can I schedule spin and traditional runc containers BOTH on an annotated node or does it break runc?
I like to keep them separate since wasm in kubernetes is still relatively early. It should work though.
@@DevOpsToolkit I see issues scheduling workloads (runc and spin based) on AKS with kwasm operator and then deleting/recreating them cross nodes (testing functionality), annotated or not, maybe the controller is not yet that reliable? have to investigate further...Possible that apparmor does any harm on MS nodes? pls also check same workloads on restart/deletion after a few hours.
@gunnarsinn3868 It could be apparmor.
What about the network namespacing and ephemeral storage for the wasm "pod"?
is the wasm binary namespaced?
It is namespaced.
@@DevOpsToolkit oh my...
Damn I need to check that one out
This is really a missing link for wasm adoption. It would seem that wasm apps are becoming viable.
But is it even possible to package large projects as wasm binaries?
It is possible to package large projects as Wasm but that's not something I would do, at least not initially. Smaller ones (stateless microservices?) are a better choice to Wasm.
Hmmmmmmm 🤔
Second
first
Third