Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Cloud Native WebAssembly with Nigel Poulton image

Cloud Native WebAssembly with Nigel Poulton

S3 E3 · Kubernetes Bytes
Avatar
620 Plays1 year ago

In this episode of Kubernetes Bytes, Bhavin and Ryan sit down with Cloud Native expert Nigel Poulton of https://nigelpoulton.com/ to discuss WebAssembly and in particular its current and future role in the cloud native ecosystem. Nigel, Bhavin and Ryan discuss everything from "What is WebAssembly" to how it can run on Kubernetes with a WASM runtime called runwasi.

Stay till the end to hear our new segment where we ask out guests a question that ChatGPT came up with for some good fun!

Show Links

Recommended
Transcript

Introduction and Hosts

00:00:03
Speaker
You are listening to Kubernetes Bites, a podcast bringing you the latest from the world of cloud native data management. My name is Ryan Walner and I'm joined by Bob and Shaw coming to you from Boston, Massachusetts. We'll be sharing our thoughts on recent cloud native news and talking to industry experts about their experiences and challenges managing the wealth of data in today's cloud native ecosystem.
00:00:28
Speaker
Good morning, good afternoon, and good evening wherever you are. We're coming to you from Boston, Massachusetts.

Personal Updates and Weather

00:00:34
Speaker
Today is February 9th, 2023. I hope everyone is doing well and staying safe. Let's dive into it. Bobbin, how have you been? What are you up to?
00:00:42
Speaker
I've been okay. Like today, I'm not great. I'm just okay. That's fair. You're allowed to be, you know, as humans, we all we don't have to have great days every day. I know. Yeah, I was like, yeah, I can't I can't do the great thing today. And it's nothing specific. I think the VVS arrived and Arctic Chill win this

Super Bowl and Sports Talk

00:01:02
Speaker
weekend. So I'm happy. I was able to stay indoors. I was glad that I have a remote working job. I didn't have to get outside.
00:01:08
Speaker
So I was glad for that. And then I'm glad that this weekend is the Super Bowl, but that's about it. Like just staying busy with work, I guess. Are you in any Super Bowl squares? Do you have a team you're looking for? Like what? So again, love both the teams, but for some reason,
00:01:28
Speaker
supporting the Eagles for the Super Bowl win. Like I was supporting the Chiefs in the conference finals and versus when they were playing the Bengals and all in on the Chiefs. But then now I was like, OK, no, I'm supporting the Eagles. So let's see how they do. Like I've been looking at like some sports shows, right? And they are like 76 percent of the money that has been placed on bets has been put on the Eagles. So, you know, the Chiefs can always come back and do an upset, but I'm still like, yeah.
00:01:57
Speaker
I always like to see the upset, and I'd like to see Mahomes sort of rebuttal himself, so to speak.

Cold Weather and Hiking

00:02:05
Speaker
Like, it's so crazy that Chiefs are considered underdogs going into the game. So, like, okay. To be very frank, it will probably be the first football game I watched all year.
00:02:15
Speaker
Oh, nice. We spoke a couple of weeks ago, I was like, Oh, yeah, it's football season. I guess life with a toddler and a busy, you know, person didn't even realize. Yeah, I'm looking forward to that. My one of my neighbors reached out and was like, Hey, you want to put some
00:02:35
Speaker
you know, money down for squares. I'm not usually like gambling, whatever, but this seems friendly enough. And so, you know, worst case, I lose a little bit of money. Best case, I make out on something I didn't pay attention to. Sort of, I guess.
00:02:55
Speaker
Yeah. Um, yeah. The Arctic blast was, uh, quite chilly. Did you see the amount Washington news? Yeah. Like minus 101, right? I didn't know that was possible. It was, uh, it's lowest. I believe it was minus 110.
00:03:11
Speaker
out of the water since like the 60s. I probably went off like 50 years ago or something like that. And they matched the stagnant air, which was negative 47. So without wind chill, negative 47 is what it was up there. And that's the all time record. And then yeah, the wind chill was 110. I couldn't even imagine. I don't
00:03:35
Speaker
Okay. Do you just like die if you go outside?

Industry News and Updates

00:03:40
Speaker
People go up there. I mean, not, not at that extreme weather. A hike in the winter. I had a friend who was going up the end of February and I was like, are you still going? It's like, what's that called? So, uh, power to those people. That's what I say. You don't find me hiking in the middle of winter up Mount Washington. That's why I don't have any fun stories too, right? Like my, all of my hiking is from spring to fall. And then winter is when I hibernate.
00:04:05
Speaker
Nice. Cool. All right. So we do have an awesome guest today, Nigel Poulton. He's an author and video trainer for containers, Kubernetes, WebAssembly, and Cloud Native. We're going to be talking about WebAssembly with him today. And we'll dive into all that in just a bit, but we're going to
00:04:26
Speaker
go through a bit of news, which we have a decent amount of news here. Why don't you kick us off? Yeah, sure. I think I have a few things. Let's start with the analyst report that came out. I know we have discussed the GigaOM radar a few times over the past couple of years as well. They just came out with their Kubernetes data protection radar. I don't think there are any
00:04:47
Speaker
crazy surprises. Yeah. If you've been following that. Okay. Yeah. If you have been following it. Yes. No crazy surprises. They're all the same vendors kind of in the same positions. It's really difficult to see movement when it's a concentric circle with arrows coming out of dots. Like you don't really know where the dots are. Are we considering arrows or not? So I don't know. Yeah.
00:05:11
Speaker
I'm probably on purpose too, right? And if you don't know what we're talking about, I've never seen it, right? The Giga one puts out a couple of different reports based on radars. They are concentric circles. And then within those are companies that play in that space. This one that we're talking about specifically is for, uh, protection. Yes.
00:05:29
Speaker
Uh, so backup recovery, those kinds of things. And so you'll see a whole bunch of names and towards the center is, uh, uh, better, right? We're going to put it that way towards the, you know, and then the top is mature, right? His platform low is innovation. And the other side is a feature play. So
00:05:47
Speaker
You know, a different variation of magic quadrants, if you're familiar with those, et cetera. But the industry has generally been paying attention to these. I know we kind of made fun of the radar, like the actual radar. But they do have a table and good description about features in the vendor from all the different vendors. So if you are looking at a solution or you are in the phase of evaluating them, they do do a good breakdown. So not taking away the authority. We're not bashing it. We're not bashing it. The radar looks funny.
00:06:17
Speaker
But that's it. Yeah, so that was like one piece of news. I think I have a few others. The first one being the second one being like a new feature to GitOps from Weave GitOps called GitOps run. So now right now, right, if you're a developer, you might be spinning up Kubernetes clusters, you might be spinning up kind clusters on your own, you might
00:06:38
Speaker
ask your platform engineering team to spin up development environments for you.

Local Development Tools Discussion

00:06:42
Speaker
What GitOps run does is it gives you a CLI-based interface where if you already have Kind or Minikube or K3D or K3S installed, it will work with that, create these sandbox environments for you where you can test out your code. It will help you create those customization files, those YAML files by just putting code into that specific repo. It saves valuable hours that the developers don't have. And then from a platform engineering team perspective,
00:07:06
Speaker
It eliminates the work of having to manually provision these environments for your developers. So if you're using Weave GitOps, check it out. We'll have a link in the show notes. They also have a cool demo where they show how this actually works. They have a Visual Studio Code interface in the demo as well. Very cool.
00:07:22
Speaker
The next piece of article was around chat GPT or GPT 3 and how one of the Kubernetes security vendor Armosec has published an article. It looked like a clickbait article because they said how Kubernetes security can be done better with chat GPT. Good article, maybe five steps of how to create a quote unquote.
00:07:40
Speaker
Kubernetes Security Control. Maybe control is something that they use in their tool. But what I found funny is, at the end, they have a disclaimer which says, the results generated by GPT-3 are not verified to work. So they encourage everybody to test this before putting it into production. So I know everybody is talking about chat GPT these days. So I think they just felt this might be an interesting way to get some eyeballs on their website. Crowdsourcing the testing of it.
00:08:08
Speaker
of a GPT produced security device. Oh, by the way, it's a good way to bring up the, we're going to do a new segment on the show where we basically ask chat GPT to come up with a fun question to ask our guest. If it's just us, it'll be the last get to ask us. And we can either let the guest or ourselves come up with a creative answer to that question, or we'll ask the question right back at chat GPT and see what it has to say.
00:08:35
Speaker
So that'll be a fun way to, we'll work it in, in the intro, in the, um, interview itself or in the exit, but, uh, keep an eye out for those. They're quite fun. Um, and, uh, yeah, just, uh, uh, this is definitely a cool idea, right? Like if, if you like our answer, let us know if you don't, and if you have a better answer to that question, like ping us, like send us an email. The following show. Yeah.
00:09:00
Speaker
But yeah, that was another piece of news. I think a couple more. We spoke about K3S kind Docker Desktop and Minikube as tools that can be used for local development. So I found a good link which lists these tools as the best tools for local development. Again, the list is great, but they actually have like getting started guides like two or three steps for each of these tools. So we link it in the show notes if you are looking for instructions on how to like use any of these. And then the final piece was around Astra block. So Astra is
00:09:30
Speaker
Datastaxes, Cassandra is a managed service that they offer. They added a new service called AstraBlock, which allows Web3 developers to use real-time blockchain data service. Right now, they are completely synced with Ethereum, and in the future, they'll also have streams for Bitcoin, Polygon, Solana, Binance, and other blockchains.
00:09:52
Speaker
Again, why is this interesting? This is interesting because if you were playing in the Web3 space, you can get a node and query the blockchain and get all of the results that you want. But if you're looking for complex applications or if you're looking to build these complex applications, there's a lot of overhead. So I think having this as a managed service where you can get access to real-time blockchain data in a human-readable format for your apps to consume,

Interview with Nigel Poulton

00:10:16
Speaker
I think that really will help you work faster or innovate faster if you are building something in the web3 space. But yeah, that's news for me. Cool. So what do I have here? So the first one is a company coming out of stealth. Maybe you've heard of it. I haven't yet bothered, but volumes or volumes. Yeah. I don't know actually how to say that, but I'm going to say volumes. I think it says volumes. So I'm just checking with that. Yeah.
00:10:45
Speaker
But it came out of stealth and is really focused in sort of like a cross-cloud delivery of a data path to containers. So they do have a CSI driver and they work across EC2, Google, Azure, those kind of things.
00:11:00
Speaker
Really focusing, it seems like, on the AI ML space, maybe around performance and things like that, and security around consuming volumes. That being said, I don't know a ton about it, but it is yet another player in the space. Maybe we'll try to get someone from there to come on and talk to us about what it's all about. First time I read that article, I was like, maybe this is storage or volumes for Gen Z.
00:11:26
Speaker
They do seem a little late to the party, but all four having other players in the space just shows how valid I think it all is still. Then there is a new to me platform called Section. I don't know if you've heard section.io. Their whole thing is deployed containers globally.
00:11:49
Speaker
We're seeing more of this abstraction, abstraction, abstraction on top of multi-cloud use cases and things like that. And they've officially supported now the persistent volumes. So as far as I can tell, that wasn't something they supported prior. It's a new to me platform, but now you can use persistent volumes. So yet another place where the relevancy of what we talk about
00:12:12
Speaker
seen. But I'll have to go check it out and see what section is all about. Yeah, interesting. Like they look like a cloud data hosting platform. I am surprised that they are adding persistent storage right now, which is weird. But
00:12:26
Speaker
Yeah, but like I said, we see more and more of this, right? Where it's like, okay, multiple platforms, multiple Kubernetes sort of plays. Well, now you don't manage them individually to manage them above that, right? We've talked to other folks like Cycle and on the show that are...
00:12:42
Speaker
work in similar spaces, so very cool to see. The next one is GKE Filestore Multishare Support. If you're a user of GKE and are looking for a shared volume multi, using their Filestore Multishare stuff, there's more support for it and nothing too crazy there.
00:13:06
Speaker
Yeah, just a feature. Yeah, just a feature. But, you know, I think I try to make sure we're catching all this. It seems like there's there's months and months that there's not a ton comes out in the storage space. But then you see a whole bunch of movement, which just shows you, you know, there's there's still a lot going on every day. So very cool stuff. And that's the end of the news, Bobbin. So let's get into our interview with Nigel. Let's get him on the show.
00:13:33
Speaker
All right, Nigel, welcome to Kubernetes Bites. It's really great to have you on the show. Why don't you give the listeners a quick introduction of who you are and kind of what you've been up to. Okay, so my name's Nigel. I live in the UK. That's the accent. And I have spent too long now working with containers, Kubernetes, and honestly, anything that I find interesting,
00:13:59
Speaker
So I like, I mean, I don't live life on the bleeding edge, don't get me wrong, but I like to feel like I do. I feel like I get bored with technologies quite quickly. So I mean, I'm not bored with containers and Kubernetes yet, but I feel like I might have been almost getting there. And if it wasn't for the fact that I've kind of not pivoted, but I'm trying to add WebAssembly or Wasm to my current list of cool technologies that I play with and work with.
00:14:27
Speaker
Nice. I've been following Nigel for years. When he co-hosted the InTech We Trust podcast, he has been helping me learn about Docker and the early days of Kubernetes. I was so glad that you started looking into Wasm and I was following your tweets during the Wasm day at KubeCon Detroit.
00:14:47
Speaker
If you're talking about Waz and Ryan, we need to get Nigel on so he can explain it to everyone. I know it's come up with a few other guests we've had, mostly in the crypto side of things that we've had a few guests on, but yeah, I'm looking forward to this one.

Exploring WebAssembly (Wasm)

00:15:00
Speaker
Can I just say two things, Gents? The InTech We Trust podcast back in the day, I mean, that was a long time ago, but we talked mainly about data storage back then and the wider tech field, but I think most of the people that were on that podcast were kind of storage experts, and I spent about 10 years
00:15:17
Speaker
in the storage world. And when I think about that now, like 10 years, specializing on one technology, I'm like, how on earth did I do it without just giving up tech in total? But then if I like flip to where I am now with this kind of more bleeding edge, I don't want to lead too much with the bleeding edge, but when I was at cloud native Wasmday, JubeCon in Detroit,
00:15:41
Speaker
It was so new and so in-depth tech that I think I walked away at the end of the day, having taken in about 5% of what had been served out. And by the time I woke up the next morning, I'd rounded that down to about 2%. I'm working my way back up to about 5% now, so don't expect too much, right?
00:16:02
Speaker
No, we're just looking for 101. I had a severe feeling. I didn't attend that day in person, but I watched the recordings later on. And after the couple of intro and keynote sessions on the day, everything else was just too in detail for me. I was like, I need to start using this for me to actually understand those remaining sessions. So this is going to be a great podcast.
00:16:25
Speaker
So I think that I've watched one of the sessions three times now. And I need to watch another three before I'm up to speed. But yeah, anyway.
00:16:34
Speaker
No worries. You bring up 10 years, and I actually think I just hit my 10th year in data storage. So maybe I'm going to bring up something. We'll see. This podcast actually started off mostly focusing on persistence and storage. But it's grown beyond that. And Avid and I are both, I think, mostly thankful for all of that. So Ryan, no offense with what I said earlier about 10 years in data storage. You have me thinking of it.
00:17:00
Speaker
Okay, so let's start the part, right? Let's talk about what is WebAssembly, what is Wasm, like if we had to give that elevator pitch or just a one-on-one level, right? Nigel, let's go. Right, so if there's higher than one-on-one, let me go there first, okay? So I'm going to say it's the next wave of cloud computing, okay? And the easiest way to frame that is by saying, okay, the first wave of cloud computing was driven by virtual machines.
00:17:24
Speaker
and they did a great job. But then something came along that was smaller, faster, more lightweight, and could kind of drive the clouds to the next level, and that was containers. So containers being that second wave. Well, if we're about to approach the third wave, obviously there's a technology needed for that. It looks like it is going to be WebAssembly or Wasm. And it's for the very same reasons. Containers were smaller, faster, more lightweight than virtual machines. Well, guess what? WebAssembly is the same when compared to containers.
00:17:52
Speaker
But I'm going to throw in that it's also, well, actually, containers are more portable than VMs as well. And so is WebAssembly. It's more portable than a container. And it is potentially more secure as well. And we might come to that a little bit later on. But that's like...
00:18:08
Speaker
If you want to total elevate a pitch to an absolute noob, it's that next wave of cloud computing. But the detail is that it's detail at 101, right? It does to containers what containers did to virtual machines. Now, I'm not saying, well, I'm getting ahead of myself here. I'm not saying WebAssembly is going to replace containers, probably in the same way that containers have never 100% replaced virtual machines. We do still have VMs and things out there. Heck, I mean, still got mainframes out there, right?
00:18:36
Speaker
But I think there is a good chance that WebAssembly will start to eat away given enough time to the kind of share of the cloud that Containers has at the moment. And for those reasons that I said before, it's smaller, faster, more lightweight, more portable, and potentially more secure.
00:18:52
Speaker
So it's talking about smaller, faster, more lightweight, right? When we were talking about containers in the early days, everybody used this one slide where we had the bare metal nodes and virtual machines and containers, and every time we showed that you don't need the OS layer and things like that, is WebAssembly removing another layer from a container image or what's going on there?
00:19:13
Speaker
Yeah. So I suppose in the container model, the kind of core kernel elements are shared with the host system that it's running on. But within the container, you still usually build from a base image that has a bunch of operating system constructs in there, you know, files for a file system and stuff like that. WebAssembly doesn't have that. So being super high level, again, like I did a test recently and it's not a perfect test. Okay. But I did a Hello World container, pushed it to Docker Hub.
00:19:43
Speaker
I'm picking the numbers from my head right now, but it was something like 345 meg. I did the same for a WebAssembly artifact, a WebAssembly module, pushed that to Docker Hub, and that was about 500k. Still a lot for Hello World when you think about it.
00:20:01
Speaker
There are ways to do it and make it smaller, don't get me wrong. But I just wanted it to be like the kind of test that anybody can do, just a standard container built from a small base image, hello world, 345 meg. Same thing again for WebAssembly, half a meg.
00:20:18
Speaker
And I think one of the reasons, I guess, probably technically for that is that you're not even throwing in any operating system, file system components or anything like that. It's really just your application code, which then executes on a WebAssembly runtime, but I might be getting ahead again.
00:20:35
Speaker
Yeah, no worries. You know, I keep thinking of this analogy of, you know, cell phones to becoming smaller and smaller and smaller and a comedy skit that's coming up in my head of like this tiny little, you know, tiny flip phone. And maybe this leads to my next question, which is, you know, we're striving for smaller and, you know, more portable and all these things. Is there a time when things become too small? Like, is there a good idea of when to use something like Wasm? And more importantly, when not to use something
00:21:03
Speaker
Okay. So I think, I think three questions there. So the first one, is there ever a time when something, you know, when we'll get to a point where it's too small? What a question, right? I've never considered that before. Wow. Boom. Head explosion.
00:21:19
Speaker
I feel like we're not there yet. It probably leads into the next question of when should we use WebAssembly or Wasm? This is a very time-constrained question. When I say that, I mean like in two or three years time, this won't necessarily apply. But right now, if you are wanting to use WebAssembly because it's so early days for WebAssembly outside of the browser and in the Cloud or server side,
00:21:46
Speaker
Those use cases are serverless functions because WebAssembly modules have crazy amazing cold start times that enable true scale to zero architectures where you don't need a few pre-warmed containers. These things can start up so fast, you can go from zero, not to hero, but you can go from zero to handling requests very, very quickly.
00:22:10
Speaker
I would say probably the other place is anywhere where your resource constrained. Places like the Edge, where despite the fact that containers are way smaller than virtual machines, and we do now have Edge-driven Kubernetes distros like K3D and the likes of those. I still feel like WebAssembly is
00:22:33
Speaker
orders of magnitude smaller and more resource lightweight, so much better solutions for the edge at the moment. So right now, where should you use WebAssembly? If you're brave enough, then it's serverless functions, event-driven stuff, and it's on the edge. Where should you not use it? Again, I'm really careful how I say this. We are at the beginning of 2023 for anybody that wants to talk to me in the future for this, right?
00:22:57
Speaker
And I would say you would have to be extremely brave to use it outside of those use cases right now. I do think going forward and relatively quickly like, you know, maybe next year, we are pushing it a lot further. But right now,
00:23:13
Speaker
I feel like WebAssembly, the standards have to mature quite a bit, and also the tooling in the ecosystem as well. Just to be able to say to development teams, actually, it's not really, really complicated to use WebAssembly, which it kind of is at times now. There's still a lot of friction there.
00:23:35
Speaker
Once the tools are better, once the standards evolve more, then like I was saying before, we're going to start seeing it eat into a container land for a term.
00:23:45
Speaker
So like you brought up a couple of terms, right? So I want to double click on those. You said WebAssembly on the server and WebAssembly on the browser. What's the difference there? What does that mean? Okay, right. So WebAssembly was effectively born in the browser. It's not super true, but that's where it's
00:24:06
Speaker
cut its teeth. It's grown to where it is now by being in a browser. And the idea was that JavaScript can be somewhat clunky and bloated and heavyweight. And if you're wanting to run high performance web apps, games, and things like that, it's not always the best solution. Along comes something like WebAssembly that compiles down to very small byte code that executes very quickly. And
00:24:31
Speaker
You can now do high-performance stuff in a browser without having to wait, I don't know, five seconds for it to load and that kind of stuff. But honestly, when we talk about the web and browsers and things, the people that work there and the technologies that operate on the web in the browser, they do not mess about. And when I say that, I mean like,
00:24:53
Speaker
If you get something wrong in a browser, like let's say you mess up Chrome or you mess up your website so that it is five, six seconds to load and processes can escape from the browser and take over your machine and stuff like that. If you make those kinds of mistakes, I'm being a bit cheesy here, but you're almost making headline news. The browser is at the forefront of everybody's life on a mobile device and stuff like that.
00:25:17
Speaker
The likes of us who work in the cloud, and I include myself in no disrespect, but we're small fry compared to what goes on in the browser. WebAssembly has spent quite a few years now maturing on the web, which is such a good thing for us in the cloud because it means if it meets the security requirements and the size requirements of things that work on the web, it is, once we've got the tooling and stuff available,
00:25:42
Speaker
going to be a dream for us in the cloud. The WebAssembly engine is embedded in every browser that you run today. The JavaScript engine in most browsers also does WebAssembly. Brilliant.
00:25:59
Speaker
Doing it in the cloud is quite a different model because we don't run browsers in our cloud apps. There are a bunch of companies out there that have built what we call WebAssembly runtimes. I guess this is the Kubernetes Bites podcast, so we kind of know what a runtime is. For now, we'll just call it container D or run C or something like that.
00:26:19
Speaker
It's an environment that allows you to execute code. For WebAssembly, a WebAssembly runtime creates an environment on a cloud server or on a server that lets you execute WebAssembly code. I think the big picture, and I'm waffling a little bit here, is you write your application. I'm just going to say you write it in Rust.
00:26:38
Speaker
because that's got the most support for WebAssembly at the moment. You compile that down to a WebAssembly binary. So instead of when you compile it, you don't say, let's compile this for Linux on ARM64 or ARH64, whatever you want to call it. You say, we're going to compile this for WebAssembly.
00:26:55
Speaker
But actually, there isn't really a WebAssembly computer out there, is there? So you install a WebAssembly runtime on that computer. It can be a laptop, a server, an on-premises data center. It can be an instance in the cloud. As long as you have a WebAssembly runtime, it doesn't matter if it's Linux or Windows or ARM64 or whatever, x86 underneath. The WebAssembly runtime takes care of all of that and means you can just run your code anywhere, which is what I hinted to before when I said it's much more portable than a container.
00:27:22
Speaker
Because

Wasm and Kubernetes Integration

00:27:23
Speaker
if you think about a container, if you want to run it on different architectures and platforms, like I've just said, you've got to build a different image for each one. You don't have to do that for WebAssembly. You compile it as a WebAssembly binary. And as long as you have a runtime running somewhere, it will execute that code for you.
00:27:41
Speaker
I know that's a real challenge with containers, right? Like everybody's building applications for that x86 architecture. But if you want to take it to arm, a lot of free tooling and recoding is needed to just run it. I think progress has been made in the container community there to make it easier to build across different architectures and platforms. But you're still maintaining multiple images and looking after them and storing them and stuff like that. So it's not as ideal as WebAssembly. But of course, I'm going to keep saying this right at the moment, WebAssembly is really
00:28:11
Speaker
kind of new on the cloud. So, and we spoke about the Kubernetes community, right? And since this is Kubernetes byte, so how does cloud native community work with Wasm? Or how can they get started with Wasm? Is there an easy route?
00:28:25
Speaker
Right. Yeah. Okay. So I think there's two major ways of doing it, right? Um, let's say the first way is by integrating it with your existing container tools and platforms. And I include Kubernetes in that, right? So, um, maybe we can include a link in the podcast or something. But I have a blog out there on
00:28:44
Speaker
how to get started with WebAssembly and Docker Desktop. That walks you through the steps of writing just a Hello World WebAssembly application, compiling it, then packaging it. This might blow your mind, right? If you've not heard this before, but packaging it inside of a container image, so an OCI image, then pushing it to Docker Hub.
00:29:04
Speaker
pulling it on another machine and running it using a WebAssembly runtime somewhere else. So one of those ways is by saying, we'll take our existing tools and Docker or Docker desktop has all of the tooling involved to do that. So you would build your WebAssembly binary in your favorite programming language, whatever that is, a bunch of them will compile to WebAssembly now. And then you're straight over to familiar Docker, probably Podman and other tools as well, don't get me wrong, I'm not picking favorites here.
00:29:32
Speaker
And they will, you can then just do a Docker build and you can build it into an OCI image, Docker push, push the Docker hub, you hold it down, run it using the WebAssembly runtime somewhere else. Or if you're into Kubernetes, and it's super early with this as well, right? But Kubernetes is now, or there are projects that will now allow Kubernetes to orchestrate WebAssembly workloads. So just cut me off if I'm waffling here. No, no, no, don't do that.
00:30:00
Speaker
It's the thing we know that like Kubernetes, I'm looking at myself in the camera now, I'm going to sit at the top of the diagram, right? And it's kind of the boss or the piece of software that's in charge of saying, okay, I've got workloads to run, where am I going to run them, right? And the scheduler in Kubernetes takes care of that. And it says,
00:30:17
Speaker
Okay. Whatever node five, you're going to run this, this piece of work and node five has got a cubelet running on it, which is, you know, watching the API server all the time and says, Oh, I've got a piece of work I need to run. And it pulls down that piece of work and runs it only.
00:30:32
Speaker
sticking with containers, right? So the kubelet in Kubernetes, it can't run containers. It needs some help. Usually, not picking favorites again, but usually that's going to be a container D as a kind of high level container runtime. And container D says, all right, even I don't know how to run containers. Run C, will you please run this as a container for me? Fabulous. Okay.
00:30:54
Speaker
I know, but if Kubernetes now schedules a WebAssembly workload, and there's stuff going on in the background here, and we can get into it if we want to, but it says, I'm going to pick Node 5 again. Hey, Node 5, you run this WebAssembly workload for me, okay? Okay, Node 5, the kubelet says, I've got a piece of work, but actually, I don't know how to run WebAssembly work either. Container D, and yes, I do mean container D, even though it says container in its name.
00:31:19
Speaker
It can now do more. ContainerD, will you run this WebAssembly workload for me? Now, there is a shim out there now called runWazzy, runWazzy, that allows ContainerD to say, OK, this is not actually a container workload, so I'm going to need a WebAssembly runtime instead of runC to run this workload for me. And it might be Wasm Edge, or it might be Wasm Time, or something like that. There are a bunch of WebAssembly
00:31:48
Speaker
engines or web assembly runtimes out there. Basically, because there's a shim for container D, Kubernetes, we already know that anything below container D is opaque to Kubernetes, right? Kubernetes doesn't get involved in that low-level stuff. So actually, whether it's Wasm Edge executing a web assembly workload or whether it's run C executing an OCI container, Kubernetes does not care.
00:32:14
Speaker
So you can, with your existing tools, be super cloud native about it, or I'm just going to cut this briefly because nobody wants to hear me talk all day, right?
00:32:26
Speaker
I know. The other way is not Kubernetes and not containers, but go proper WebAssembly native with a platform like, and again, I'm not picking favorites, but Wasm Cloud or Fermi and Spin, the Fermi and Cloud or something like that. We've got some startups that are saying instead of
00:32:45
Speaker
Oh, I've got to be super careful what I say here, because people will slaughter me. Instead of bloating it with containers and tools and things like that, I'm being a little bit unfair there. Let's go really native and just do this like the way WebAssembly on the cloud was meant to be. And I'll just say, right, there's pros and cons to both ways. If you go the way WebAssembly was meant to be on the cloud, you might be smaller, you might be faster, you might be a bit more efficient.
00:33:15
Speaker
But wow, there's a lack of tools out there at the moment. If you go, and it's hard, if you go down the route of saying the route, we're going to do Kubernetes and containers and stuff, wrap it in a container, use Kubernetes to schedule it and stuff. The tools and things
00:33:32
Speaker
are there and the bits to plug WebAssembly into it are coming and getting more mature. All the pipelines and things like that already exist, your tools for your pipelines. And it might not be as fast and as efficient. I'm not saying it's going to be slow by the way, okay? But it's just, it's pros and cons. And I think as an industry, there are people on both sides of the fence here. We have not necessarily decided. And I am not necessarily saying that one will win out over the other and we could end up in a world where both
00:34:01
Speaker
exist. Yeah, absolutely. And I feel like Bhavan and I have had a lot of discussions, especially lately about the future of sort of mixed workloads and what kind of organizations you see doing that, right? A lot of more mature organizations are never going to get rid of their virtual machine infrastructure. And they're now building out their Kubernetes and cloud native or Kubernetes, sorry, container infrastructure.
00:34:23
Speaker
And that that's a world we see living on for quite a long time. And why not say that, OK, well, you know, there's going to be developers that are coming in these smaller teams and, you know, organizations are kind of building on top of these DevOps principles. So why not let them do some some WASM and support them to be able to deploy it into an already existing tool chain or pipeline?
00:34:42
Speaker
That world, I feel like, absolutely exists, like this big architecture of mixed workloads. And a lot of discussion has been around, what do orchestrators look like in the future? Well, is it modified versions of Kubernetes that now can deploy VMs and Wasm? Because that's what you were describing, is we have both of these worlds now. But in many cases, maybe you're a greenfield company,
00:35:08
Speaker
A totally WASM native approach. Yeah, absolutely. That makes sense. And you could argue there's a whole ton of bloat there that you wouldn't want in sort of an edge case or if you're looking at performance only.
00:35:22
Speaker
Yeah. Can I just weigh in on that? So, um, totally with you when you, you know, you're saying some, some organizations still have virtual machines. I felt like saying, I think I can give some organizations that are just starting to deploy virtual machines.
00:35:39
Speaker
So I say I like to live sort of close to that bleeding edge, and I'm sure you guys do as well, and a lot of listeners. But I try to be aware as well that, do you know what? A lot of organizations are only starting that containers and Kubernetes journey. And oh my goodness, when you start to see, oh, well, WebAssembly is coming along as this third wave of the cloud. It's like fatigue starts to hit in. Really? I am still struggling with getting my head around Kubernetes.
00:36:07
Speaker
But I'm going to just show my cards for a second here. I love both approaches that we've talked about, like using the existing tools and things and going the more native or pure route.
00:36:25
Speaker
I'm a fan of Kubernetes and I see a lot of organizations that are making a bet on Kubernetes being with us and around for quite some time going forward. And I feel like there's look Kubernetes is not perfect. No technology ever is. I'm not silly there. Okay. But I feel like the community is working hard to make sure that Kubernetes can evolve and be with us for as long as possible. So I would love to be able to see a future where Kubernetes
00:36:55
Speaker
is orchestrating containers, virtual machines, WebAssembly workloads, and potentially whatever comes along next. In part because this sort of cycle or merry-go-round of constantly changing technologies, we've got to do it right, because if you don't, you get left behind. And you can't always evolve an existing technology to tomorrow's requirements. I understand that.
00:37:22
Speaker
Wow, we're only getting started with Kubernetes and the thought of thinking, in five years time, Kuberwatties, oh yeah, I think that's kind of a world that strikes fear deep into my soul. I think you were right, Ryan, when you said that
00:37:43
Speaker
some of the startups, greenfield deployments and companies like that, especially if you're small and you see an opportunity not to have to take on, I don't know if technical debt is the right term for Kubernetes because it still seems super new, that technical overhead maybe of Kubernetes. I can see a lot of organizations saying, well, if we don't have to do that, climb a mountain to Kubernetes, I'm not going to do it.
00:38:13
Speaker
Oh, yeah. We were starting to see stories of companies that said, well, we didn't, or we did, and we regret it, right? And so I think we had a whole episode on when do Kubernetes something? But yeah, that's an absolute reality.
00:38:28
Speaker
No, I'm just amazed with the idea that Kubernetes can orchestrate my VMs with the kube word project today, containers, and then wasm with the container dshim that you mentioned.

Wasm in Microservices and Applications

00:38:37
Speaker
So I'm happy that we don't have to rename our podcast like five years down the line. Nigel was saying, I still want this to be around.
00:38:46
Speaker
Yeah, I hope so. And I'm pretty convinced that it will be. Will it be like the best at everything? I think, obviously, no. Even right now, I'll put my hat out there and say that it's probably not even the best container orchestrator out there.
00:39:06
Speaker
It has all the momentum, it's got all the development, and it is good enough for the vast majority, I think, if done properly, and if it continues to get easier and simpler, the vast majority, well, the vast majority, 70%, 80% of workloads.
00:39:26
Speaker
Absolutely. So shifting gears a little bit here, I want to talk about what we can actually kind of build, maybe more of an application perspective here about what a Wasm application looks like. Now, maybe a way to start this since we're Kubernetes podcast is, can I put what I have in my container image into a Wasm application? Is that wise? Would that be a thing? Or do you have to start somewhere new? Or we'll start there.
00:39:54
Speaker
Right. Okay. Assuming that I understand the question or that I'm on the same wavelength as you here. So I think if you go down like web assembly with Kubernetes, then the easiest route is to stick with the existing kind of microservices design patterns that you have at the moment. Okay. And you would of course start
00:40:13
Speaker
by picking the right microservices within an application that are suited to WebAssembly. For example, and we've not touched on this, but because WebAssembly was designed originally or developed mainly inside of a browser, it didn't need access to host file systems and host network and all that kind of stuff. So things like that are lagging behind in WebAssembly on the server or WebAssembly on the cloud. And there's a project called Wazi, WebAssembly systems interface,
00:40:41
Speaker
that's out there trying to make that easier. So make it a standardized way for WebAssembly modules or WebAssembly applications to be able to consume host resources. Big picture highlight for you there. So if you go Kubernetes and your existing tool chains, probably the existing microservices design pattern where you start saying, well, this particular service would do well as a WebAssembly one, then as the standards and the technologies evolve,
00:41:06
Speaker
You may get applications where every single microservice comprising that is a WebAssembly module. Brilliant. If you go the more pure route, or like what we talked about before, like the more WebAssembly native, then
00:41:21
Speaker
It's interesting that the architectures there are a little bit ahead of us, because they can be without existing users and things, but where you would take only your core business logic and write that as a WebAssembly app or a WebAssembly module like a
00:41:38
Speaker
Still, still think of it as microservices, right? You've got all these different moving parts as part of your application, but your non-functional requirements, things like your data stores and other things like that that aren't core to what the
00:41:54
Speaker
business is accomplishing but are needed as part of your application. We're starting to see you don't actually build and code and develop those non-functional requirements. The platform ships with them. You would maybe say, we've got a core piece of business logic here that we have to write, and it needs a data store.
00:42:14
Speaker
But really, look, the end user and the business and really the application itself doesn't care which particular, which flavor of data store it is. It just needs somewhere that it can store data and retrieve data. So all it's looking for to use, I feel like the technical term is a contract.
00:42:33
Speaker
So I just need a contract that the data is going to be there when I want it, and there's going to be space for me to put it. I'm oversimplifying. But these newer platforms quite often ship with a built-in data store, with a built-in HTTP handler and things like that. So that you just write only the bits of the microservice that you need to for your business, and then you just have a contract with a platform that says, handle this request for me, and I'll implement the business logic. So I feel like that's almost
00:43:04
Speaker
I'm just making this up here. There's probably a better term for it, and I'm not the right person, but V2 of microservices. The platform ships and has those core non-functional requirements, and now you're only writing the bits that your business needs, your business logic type apps.
00:43:23
Speaker
I think that's a really interesting vision. I'm not sure how much of that is reality today, but having that contract in place, making sure that stateful apps is a thing, it does make sense. I think that leads me to my next question. When we started with the whole Kubernetes journey,
00:43:42
Speaker
for the first three years, maybe everybody thought Kubernetes is just for stateless and just spin up your containers, kill them, and then you can keep doing that over and over again. And then the CSI standard came along and everybody like Windows that like we work for also have CSI plugins or storage solutions for your containerized applications.
00:44:00
Speaker
Since Wasm works with Kubernetes, can it still leverage, can it still be stateful? Can it still leverage the CSI plugins that I might already have and build those apps in a more stateful way? I'm seeing two things. Well, I've got your question there, but I want to just touch on what you said before the question, okay, by saying that what I'm talking about there of having these contracts with built-in non-functional requirements and stuff,
00:44:24
Speaker
It's not there in things like Kubernetes at the moment. You're absolutely right. However, existing platforms are the likes of Wasm Cloud and Fermion and people like Matt. I think I'm right in saying this. It's got an HTTP handler. It's got a Redis implementation and now a MySQL implementation as well. So that
00:44:47
Speaker
It's early days, of course. But these things do exist. They're just in that very formative phase. So I just wanted to say, right now, you can do that to a limited degree. But of course, if you're listening to this in six months' time, it's going to be more and more like that. The other thing to your question about WebAssembly for stateless and stateful workloads,
00:45:13
Speaker
I feel like the question right now is more, can WebAssembly as a technology and as a standard do what you need it to do? So it's not so much integrating with CSI and CNI and things like that on Kubernetes. It's more that WebAssembly itself right now is so nascent
00:45:40
Speaker
that plugging it into anything else right now, and I may be making a lot of people turn off the web as something that's not, I don't mean it this way, but it's like, while it is so early there, that like, I mean, plugging it into CSI and stuff like that, don't get me wrong, I'm sure, like, for instance, Microsoft Azure with their AKS service are kind of leading the way, in my opinion, with some of the integrations with Kubernetes.
00:46:08
Speaker
Ralph Scolacci and some of the people that will come and just beat me down if I'm wrong about this but like that if we're talking bleeding edge before like that is way beyond bleeding edge for me at the moment that I think when I don't feel like we're quite there yet but wow I mean we might get there very very quickly so right now I'm gonna
00:46:31
Speaker
Because I'm waffling, I'm going to just say, really look at WebAssembly at the moment, the early part of 2023 for serverless, event-driven functions as a service for maybe out on the edge. Anything else right now, and you are super, super brave.
00:46:49
Speaker
I think that's a great baseline, right? It is February of 2023, so use it for

WebAssembly Projects and Ecosystem

00:46:56
Speaker
what it's meant to be. As you said, it's really early in its days, so play around with it, try out your Hello World program, see how it works for their applications, and then worry about Stateful maybe next year or in 18 months.
00:47:08
Speaker
I think we've had this similar conversation, Bhavan, which is use the right tool for the job. I really do believe that Wasm represents yet another tool that's going to be coming into a lot of people's toolboxes per se, if you're going to put an analogy on it. I like what it's representing. I know we initially learned a lot about it and the web-based and crypto-based usage of it. But seeing it come in and
00:47:37
Speaker
you know, we're seeing things like the crustlet, which I do. I love that name, by the way. And I want to ask more about what maybe I'm saying it wrong, but a crustlet. But seeing it kind of dive into this world of containers and Kubernetes and being adopted in there, you are going to see a natural people asking, can I attach a volume to it?
00:47:59
Speaker
to your point on CSI and sort of, you know, where our backgrounds are. So, you know, maybe we could dive into a little bit about what a crustlet is or, you know, is that used in something like Wasm Cloud, you know, right at all those things connect. Okay, so crustlet, first thing to say is, and I'm going to just be out there, people can shoot me down, but I'm going to say crustlet is dead.
00:48:25
Speaker
I think a lot of people will agree with me. If you look at the GitHub repo, I can't remember now, but I think the last commit was about a year ago. So the idea of crustlet was to re-implement the cubelet on every Kubernetes node written in Rust.
00:48:45
Speaker
But everything in Kubernetes has to start with a K, right? So, Kubelet, Rust, Krusta, yeah, very cool name. I think it was a good project and a lot was learned. I wasn't involved, but just talking to some of the people that were, a lot was learned.
00:49:00
Speaker
better approaches now are using the container de-shim approach, RunWazzy, what we talked about earlier. I've got a blog post on RunWazzy as well, which we'll maybe include in the notes, that just for somebody from a Kubernetes and containers perspective, explains why it's a better solution really, because it just, like we were talking about before, everything below container de-is opaque to Kubernetes,
00:49:25
Speaker
If you can, if your workload, if the scheduler can just, you know, schedule was and workloads and, and, you know, container D hide all of the implementation detail below. Wow. I mean, that's such a slick, smooth approach in my opinion.
00:49:40
Speaker
And you were correct. I just clicked on the Kresslet Git repo, GitHub repo, and the last commit was May 5th of 2022. Kresslet project's a bit Krusty. Yeah. Do you know what? I was devastated early on before we had the likes of RunWazzy, ContainerD, shims and things, because it really was the way to kind of get WebAssembly onto Kubernetes. It was never super good, I don't think. And that's obviously why the project didn't live on.
00:50:10
Speaker
But now that we have better solutions yet, push it to one side and we'll move on with the better. Yeah. Makes sense. And I did want to touch on Wasm Cloud. We've mentioned Wasm Cloud a bunch of times. Is that basically like a cloud provider for running Wasm applications if you're interested in doing that kind of thing? Okay, so I don't work for anybody involved with Wasm Cloud or anything like that. But I do play around with it, of course.
00:50:33
Speaker
I feel like the name is a little bit misleading, because in fact, I was playing around with Wasm Cloudy yesterday, totally on my laptop, and I could have had the network cards turned off on my laptop, and everything I did with Wasm Cloud locally would have worked. So it's effectively a WebAssembly runtime, but that it implements, like I was saying before, like an HTTP handler, Redis, now MySQL with the latest, I can't remember, 0.6 release or something like that.
00:51:03
Speaker
It's effectively a WebAssembly runtime with a few bells and whistles so that you can schedule a WebAssembly workload to it and it will execute it whether you're on Linux, Windows, X64, whatever.
00:51:19
Speaker
When I say buzz and whistles, you can have a contract with it that says, just put this data in your built-in Redis for me, please, so I don't have to code that microservice. It's cool like that. It's not the only one out there either. There's a bunch of more core WebAssembly runtimes that don't do all that contract-based stuff, and then the others do that. It's quite an exciting space at the moment, actually, I think WebAssembly runtimes. Because it's so nascent, again, there's so much
00:51:47
Speaker
kind of cool development happening. And there's always that kind of risk, like, am I making the bet on the right technology? Because, you know, if you wind it back to the days when it was, was Rocket going to be a thing against Docker and Docker Swarm and Mesosphere, DCLS versus Kubernetes and stuff, like what's the right bet? It was kind of exciting. It's still exciting in the Kubernetes world now, don't get me wrong, but Kubernetes has the majority of mindshare, whereas we're not there yet with WebAssembly.
00:52:16
Speaker
And it may pan out differently that we do have a lot more options with WebAssembly going forward, but it's just a very cool space.
00:52:23
Speaker
Okay, so I think as we are coming towards the end of our time recording this, right? I wanted to talk about the benefits of Osm. I know in the 101 page, you said the scale to zero aspect, the ability to be portable and really lightweight. Are there any reasons when it comes to having polyglot support, having the ability to run any language you want? Maybe it helps
00:52:48
Speaker
your organization to be more agile, and I mean, like, ship code faster to production. Are there any benefits that you would like to add to what you already said? It's difficult because I think a lot of those benefits that we take for granted now in the container community and Kubernetes and all that kind of stuff is brought to us by third party tools from the ecosystem, you know,
00:53:09
Speaker
I build pipeline tools and all of this kind of deep image scanning for vulnerabilities and stuff like that. These are not necessarily core to Kubernetes. Well, they're not. And they're not even core to containers, but they're built around it.

Future of WebAssembly

00:53:25
Speaker
And we very much lack that if you want to go down kind of WebAssembly without containers and Kubernetes.
00:53:33
Speaker
I think, of course, like I said before, the benefits today are for event-driven stuff, serverless workloads, and out on the edge. But generally speaking, I'm one of those that's in the camp that as the standards and the technologies evolve, I honestly do think they will start to eat into traditional namespace containers, OCI containers.
00:53:58
Speaker
because the binaries are smaller. You don't have as many dependencies to build in. They're much more portable like we've talked about before. I feel like the security model is a little bit better as well. You know how an OCI container is built of a bunch of Linux kernel namespaces and the equivalent on Windows if you go down the Windows route. But we've had to put a lot of effort
00:54:24
Speaker
into securing that model, SecComp, and capability dropping, and all these different things that are actually, even today, can be quite complicated to deploy. We've actually built a lot of things on to secure the container model. We used to say in the early days, didn't we, that containers are not secure compared to virtual machines? Well, actually, no, they can be, but you just got to put a bunch of effort in.
00:54:51
Speaker
So the WebAssembly model is out of the box. The WebAssembly runtime provides a secure sandbox by default. And when I say sandbox, I mean an environment that exists outside of or away from the Linux kernel. And then the runtime itself decides what access to the kernel is allowed. So
00:55:15
Speaker
It's abstracted from the kernel, from a technical perspective. This is quite technical, and I'm potentially going around in circles, but if you then go the route of then wrapping that WebAssembly module inside of a minimal OCI container, which my blog post that I alluded to before,
00:55:35
Speaker
You can talk you through how to do that and you get all of your existing tooling. You're almost getting double the security there because even out of the box, most container runtimes implement sensible defaults for capability driving and set comp profiles and things.
00:55:50
Speaker
I feel like WebAssembly on its own is potentially a more secure model than containers. But then if you wrap it in a container, you're getting double the security. And this is the kind of thing that needs diagrams and probably cleverer people than me to describe, right? But I think the security model of WebAssembly is really good as well.
00:56:12
Speaker
So just going forward, I think it's going to become more and more, like you said before, Ryan, the right tool. Right now, it's not the right tool for a lot of things, but as it evolves, it will become the right tool for more stuff. So I'm always telling people, keep an eye on it and start kicking the tires now, but don't get carried away. I mean, get carried away if you're crazy and you're really super brave.
00:56:37
Speaker
don't run the businesses core applications on something so new at the moment. I agree, right? It is new, but I think looking at the community, I think Figma is one of the customers that have used it, used the Wasm on the browser thing as
00:56:55
Speaker
part of their overall application as it's browser-based. So I think there are still a few companies that are actually on that leading edge and trying to use this. But yeah, I agree. This is really new. Can I touch on that, Bhavan? Just very quickly, OK? I think we had this with containers as well. If you are a technology-rich organization, I know that's the right term, but if you have highly skilled technical people on staff,
00:57:22
Speaker
and your business is all about technology, then WebAssembly is absolutely a great choice for building platforms and things on. But if you are like most enterprises, and I'm as respectful as I can be when I say this, spent most of my life working for enterprises, but they tend to have
00:57:42
Speaker
good engineers, oh, I'm so careful about this, but not super, super stellar engineers. Most enterprise organizations don't have Linux kernel engineers on staff, just sitting around twiddling their thumbs wondering what to do. But if you are like a bleeding edge technology company and there are plenty of great platforms and applications that are built entirely on WebAssembly right now, it's very doable. I just think for
00:58:09
Speaker
mere mortals like me and the majority of us. Um, it's still a little bit hairy and scary. Well, I think one way we can maybe ask for how do we make it less hairy and scary is how do people get involved? You know, where would you send them, um, to either get started with the technicals to get started kicking the tires. Any of that, um, we'll, we'll do a quick segment here and then make sure that any links you want to send us.
00:58:37
Speaker
Yeah. So shameless plug, follow me at Nigel Poulton on most of the social platforms. And I'm writing quite a lot about WebAssembly on my blog at the moment at NigelPoulton.com. But I would say, dock a desktop. If you are involved in the cloud native community at the moment, you're listening to Kubernetes Bites, right? So I'm guessing you are.
00:58:58
Speaker
Docker Desktop has got fantastic support for it at the moment. All of this, the rumblings that I'm hearing out of Docker, and I don't have insider knowledge, but the people that I talk to see WebAssembly has been a key technology going forward. I expect support within Docker Desktop and Docker Hub and things like that only to get better.
00:59:18
Speaker
There's a great article, which I think we'll put in the show notes link at the end, showing you how to spin up WebAssembly nodes on an AKS cluster in Microsoft Azure, which uses the RunWazie shim and all of that kind of stuff. And it's cool because
00:59:34
Speaker
Excuse me, it uses a bunch of Kubernetes primitives in the background as well, like runtime classes and things like that. So if you like Kubernetes and the funky stuff that goes on behind the scenes in Kubernetes, and you want to peek into the kind of under the hood, but not super under the hood, but enough under the hood to sort of think, oh yeah, now I'm seeing how the pieces fit together. There's a good article on Microsoft about how to get started on AKS with WebAssembly.
01:00:00
Speaker
And yeah, I think once you've done a couple of things like that, it's not hard if you already know containers and Kubernetes just to see the next steps and start taking your next steps.

Fun Segment and Conclusion

01:00:12
Speaker
Yeah, there's a whole community of people that are learning this and or learn it and or want to learn it. So I feel it's a good onboarding to Wasm. I know if I were to tackle Wasm, I'd probably absolutely take the Kubernetes path just because of my background. Right. It gets me, you know, a lot quicker to familiarizing myself with kind of what it can do and then maybe a branch off from there. So absolutely. We'll put all those links in there in the show notes. We also have one small segment we want to add to the show and I'll give you
01:00:41
Speaker
Yeah, we did not tell you about this. So I'll give you a couple of ways you can go about it. We asked ChatGPT to come up with a fun question to ask our guests about the topic. So this is WebAssembly. And you can either answer it yourself or you can allow us to read ChatGPT's answer to the question. So I'll give you this. So the question is, if WebAssembly was a roommate, what kind of personality would it have? And what would be the most absurd request it would make of you?
01:01:10
Speaker
Okay, so if it was a roommate, I feel like it would be that roommate that's kind of a little bit better than you at everything, or has the potential to be better than you at everything, but doesn't actually brag about it. I do feel like the WebAssembly community have got their feet on the ground in all of this, and they're not getting super ahead of themselves saying we're going to conquer the world or anything like that.
01:01:39
Speaker
But I genuinely do think as a technology, its core tenets make it better suited to a lot of workloads than the existing stuff. And what would it be its most absurd request? Was that the next part? That is the second part, yeah.
01:01:57
Speaker
I'm going to let chat GPT answer that one. I'm so impressed with that first answer. Wow, on this part. No, that was great. So chat GPT's answer to the second part. I'll put both parts in as well to Nigel's answer is, the most absurd request it would make of you is to write a program in WebAssembly to some mundane tasks such as making a cup of coffee. Just to demonstrate the capabilities of the language, it would proceed to explain in detail why the program is the most optimal solution for making a cup of coffee. Take it for what it is.
01:02:27
Speaker
All right, Nigel. Well, you know, I think I've learned a lot. Hopefully our listeners did as well. Again, we'll put all the resources mentioned today in the show notes and just thank you again for joining Kubernetes Bites. Thank you so much for your time, Nigel.
01:02:46
Speaker
All right, Bhavan, that was a lot of fun having Nigel on here talk all things sort of WebAssembly, Kubernetes, Docker, Mashup. I know it's exciting to see sort of Wasm and Kubernetes come together and how you can start using it, but I'd love to hear sort of your takeaways from the conversation. Yeah, again, just to echo your thoughts, right? It was a great episode. Like we went in with a bunch of questions and got answers and got great answers to all of those. The one,
01:03:14
Speaker
thought that I really liked was how Wasm and Kubernetes work together even today. Like this is not two years down the line. It's not vision. It is something that you can try it out on your own Kubernetes cluster today. And AKS being the preferred one, according to Nigel, but just the, that Kubelet and container D has a shim that can basically orchestrate your Wasm workloads. And it has the runtime support for it. That was awesome. Like, yeah.
01:03:41
Speaker
Kubernetes being able to schedule your containers and your Wasm applications on any Kubernetes worker node with just that shim is an awesome point. And I think I do want to echo your thought that you raised during the episode that Kubernetes can now orchestrate VMs using the kubeword project containers and then Wasm with this container shim as well. So the interoperability is something that I want listeners to take away from this.
01:04:07
Speaker
Yeah, and it's going to be interesting to see what that future looks like. Do people use, to Nigel's point, do they use orchestration like Kubernetes to do this kind of thing? Or do we see a fragmented ecosystem around these tools, depending on how they're used? I think that's to be seen. And I think to the points I took away is that it's still really early days.
01:04:29
Speaker
Go get your hands on it. I think to Nigel's point as well, this listener base, probably familiar with Kubernetes or new to it and interested, it's one way to get involved is to use these tools together. The application of the Cloud side Wasm being more in the edge and serverless space are a little more limited to say even six months from now.
01:04:56
Speaker
It's moving fast. We saw this with, you know, with containers in general, you know, once the adoption hits a certain point, it's people start using it all different ways. So it's exciting to see those are generally my takeaways. And I think, you know, with that, if you had any other things you wanted to add to it, we can
01:05:14
Speaker
No, I think that's it. Like, I think just for people wanting to learn more about Wasm, right? We obviously have links to all the things that we discussed in the part, but KubeCon Europe is coming up in like two or three months. I know we, Ryan, you brought up the day zero event schedule that's out there. I'm pretty sure there will be a Wasm day. So like, even though it's on YouTube, go ahead and attend it in person. If you are actually planning on traveling there, you can ask a lot of questions and get to meet a lot of people in the community at the in-person event. But yeah, that's it for me.
01:05:42
Speaker
Yeah, absolutely. And I didn't ask if Nigel will be there, but there's a high possibility I would guess. All right. Well, with that, that brings us to the end of today's episode. And I'm Ryan. I'm Robin. Thanks for joining another episode of Kubernetes Bites. Thank you for listening to the Kubernetes Bites podcast.