 Let's get started and first of all, thank you so much for coming to the Last presentation of this group count. I wasn't expecting this many people You know, I I've done the last talking in conferences before and they were you know, it's typically was much less attended So thank you all for coming here and I appreciate that So the title of this talk is cloud native web assembly. So there are two key phrase here It's cloud native and web assembly So when we when we think about cloud computing what we you know, I think the key notion really is there There's really no clouds. It's just other people's computer running your program, right? You know, so virtualization or isolation is the most important technique in cloud computing You know, so you started with the virtual machine the BM where you know It's they can virtualize the infrastructure and provide each user its own say, you know Computer right and then on cloud native revolution comes along and makes provide the tools and And new design patterns to make it easier, you know based on container technology So, you know, so you would have Linux container starting with stalker Linux containers and You know, so Makes it easier for To have to run multi-tenancy applications on the shared infrastructure. So that's cloud native So what about web assembly? So a little history about web assembly before we before we really goes on So web assembly started out as a sandbox or virtualization technology in the browser You know, so in the browser people, you know, we have javas. We can run coding JavaScript. However, it's not satisfactory You know, people wants to run code that faster, you know native code in C++ or in Rust So they invented a new runtime inside of the browser that provide a security sandbox It's called web assembly and so web assembly started in the browser and then it moves to the world of We now call web 3 but back then we call blockchain, you know, that's so Many of you know the Eastern blockchain but after Eastern blockchain almost all the leading blockchain projects are using web assembly to run smart contracts, which Really, when you think about it, it has the similar characteristics about You know programs in the browser, which is somewhat Somewhere else program have to run on your infrastructure, right? You know, so it's you have to provide a safe sandbox to run it And it's also the same kind of problem that cloud native wants to solve. So Then in 2019, you know, there is a famous tweets that started all this is from Solomon Hikes It's the founder of Docker and he tweeted that's, you know, if web assembly has existed in 2008 We would not have invented the Docker and you know, that's he said web assembly is the future of computing, right? You know, so that's Really jump-started so that's a history. That's but so by 2019 It's really jump-started the idea that web assembly might provide a lightweight secure and very fast isolation technology that that performs Superior to the current generation of Linux containers for cloud native applications. So that's the you know Quick background of you know, how we get here, right? You know, so cloud native web assembly is really to look beyond Linux containers to have a new type of containers that are based on web assembly and So in this talk, I hope to provide overview of you know, what's this world look like and is that ready for Production yet and what are the two links and what are the libraries that are available today that developers can get started right? Right now, right So this are some resources are going to repeat this slide that's the end of the talk So we're gonna skip it right now. So how it started, you know, so let's look at a typical Cloud native Application that's let's say a service mesh that is container based today, right? You know, so each you would have your application That's written in a language like a goal or rust or Java or you know, whatever and then, you know You compile that and you have a runtime and then it's you you package that into a container Linus container. It's and then have the containers managed by Kubernetes or similar, you know, we're at kubka So, you know, you know, everybody knows about that and then, you know, in the Kubernetes world, you have You know, you know, you say in a service mesh, you have microservices in a pod that has each pod has two containers So typically, you know one the side cards are these application container And there's many many different technologies that you can use to manage this infrastructure and to provide services to the to the microservice, right? You know, so this is, you know, what do we what do we call container based architecture? However, there are some pain points here, you know The first when when Linux container first came out is what's known for lightweight because compared with the virtual machine It is lightweight. However, when we evolve into the world of web assembly The latest container or the Docker container now appears to be very heavyweight. You know, so if you have a Container application, for instance, and you need to dragging a lot of operating system libraries and dependency libraries in it So it's not uncommon to see a container image that is a let's say a couple hundred megabytes You know, if you want to do, you know, a Machine learning or AI inference, you know, things like that. You could get a one gigabyte image or even 10 gigabyte image You know, that's you have Python has pie torch and everything in it, right? You know, so a lot of times it's you know, at least from our point of view from the web We have a similar point of view. It's very heavyweight. It's a makers unsuitable for a lot of scenarios Especially on the edge, you know, on the edge cloud or edge devices, you know It's it's it's maybe okay for the for the large cloud data center but you know when you go to places like the CDN network the The 5g 5g me see stations, you know, and you know things of that nature to become too heavyweight and also it's The container based applications when it first came out is also known for being fast because the compared with VM It's fast. It's a lot faster, but from web assembly point of view It's we also considered slow because especially at startup, you know, in order to start Container application you need to load all the libraries, you know Operating system and also the application dependencies. So it takes I would say, you know 100 milliseconds or more if you look at, you know, data doc survey about AWS Lambda, which is not exactly container based infrastructure But close it's a it's a firecracker based micro VM. It said half of the request that takes 800 milliseconds to complete You know, so it's it's it was portrayed as a positive thing, you know But however, if you think about that 800 milliseconds point 0.8 seconds for You know for, you know for essentially a service call, right? You know, that's a You know, that's perhaps the number one problem people has been complaining about, you know With this type of infrastructure is that the startup time is slow in order to mitigate this the slow startup time You have to come up with strategies like keep warm, you know So you would have containers that is running long running. That's the running all the time and just to keep getting those Solving those requests. However, in that case the heavy weakness becomes an issue because you you have to have those containers running concurrently and If each of them takes 10 gigabytes of space, you know, that's you know, you know, you will need a very large You know, our computing infrastructure in order to support that so the slow and the heavy are related because of the slow you have Especially at startup you can't scale it up and down in many seconds So in order to serve those requests, you would have to you know, have other strategies like keep warm and that's You know makes exactly the problem of being heavyweight, right? You know, so the two problems are related and the third problem is a little bit controversial is that in general we consider containers not that safe because You know initially it's need a kernel space access and now it's much better. It's can it's It doesn't need that. However, if you look at one why AWS Lambda use firecracker VM instead of Salinas container, it's because they consider it's not that safe You know, there's so numerous ways you can break out into the you can break out of the container And if you look at other large cloud, you know, like Google cloud and also Azure and you know Tencent cloud they all have their own ways to have secure containers, you know, like Google has G visor, right? You know, it's something that said, you know beneath the container to make it more secure But also make it even slower and also more heavy weight So the safety is a is a big issue for a container based applications as well And the other thing that's that's very interesting is that containers Produce a repeatable development or deployment environment. However, it's not cross-platform So, you know, you have a container image built for arm. You have container image built for For Intel AMD, you have container image built for risk 5 We now live in the world that is that faces heterogeneous hardware. It's not only there's more than two CPU types It's also with the rise of risk 5 and it's also there's many Other chips that facilitates the CPU, right, you know, you have the GPU you have the TPU you have all those stuff that needs to work with that need to work in tandem and So say if you have a Linux container that you need to run a media GPU You need a special type of container to do that, right? You know, so it's not really portable across platforms. So that's another pain points and So say, you know, I've seen a study that says, you know Typical service mesh the setup on the left, you know, the proxy itself consumes Over 40% of the CPU overhead, you know, so that is a very big, you know Overhead that is infrastructure had imposed on the application, right? So, you know, so that's what I consider what we would consider some of the pain points in today's, you know A cloud native infrastructure So how it's going, you know, why so that's set up the stage why we need a Web assembly runtime, you know, so web assembly runtime essentially solves all the problems, you know That's the so let me deliver the good news first and then the bad news later Okay, so good news first it solves all the problems that I have just mentioned So it's if you look at the size in I you know, we As I would talk talk later, you know We made announcement with Docker on Monday and one of the overwhelming feedbacks we got is that how come the service So small, you know, instead of, you know, a hundred, you know, instead of a hundred megabytes image now I have two megabytes image, you know It's it's it's literally two orders of magnitude improvements for the same functionality compared with the You know the Linux container images and at a startup the Contrast is even bigger. It's a it could be a thousand times faster, you know So instead of a hundred milliseconds, you have some millisecond startup now with some million second startup You it enables whole new architecture. You can have Applications that is not running most of the time and only runs when request coming, you know So and and shut down as soon as the request goes away. So, you know, you can So it becomes a lot more scalable, you know So one of the companies in space is is for, you know Also within the CNCF umbrella, there's Fermia and there's a wasm cloud You know, those are the companies that provide cloud services for for web assembly based runtimes And they all have the same setup, you know, is that when it's the Container or the runtimes only starts up when the request come in, you know There's no need to keep warm and the consume resource while there's idle, you know with their idle, right? You know, so it's a it's a lot faster startup time and it enables new type of application architectures And it has near native runtime performance, you know, meaning that's You know, if you have application that compiled into web assembly Compared with the same rust or go application compiled into native application You can see the performance are basically on party within 5% difference, you know So there's a you know, we have done a lot of studies and you know That's other wasm runtime set down a lot of studies in that as well And it's secured by default because it's the application that you write It's not it doesn't drag in the operating system and its libraries. So you cannot possibly forget to Turn off the edge, you know The Apache server and how leave the Apache server running or forget to patch the inject server Or you know, or have the image containing a Mexico server again, you don't know about it's impossible to have those You know, so it's very small attack surface and that makes it secure and also because the security has been tested You know very hostile environments in the browser and on blockchains. So, you know, it has a very, you know Solid security model that's it's called, you know, declarative security or capability capability based on security So everything is turned off and you have to declare explicitly to turn it back up So and you know, so it's secure It's completely portable across different platforms in that regard. It's very much like the JVM, right? You know, the you have Java compile the JVM and then you can run anywhere It's the same thing, you know, you can accept there's more languages supported on the front end now You can have rust the JavaScript. You can have tiny go swift Kotlin You know, there's a lot of languages that supported on the front end You compile them into WebAssembly and it becomes automatically across that platform So it doesn't matter you want to run on Intel, you know If you if you want to access the media as GPU, you just need the WebAssembly extensions You don't need a special type of container. You know, just to do that, right? You know, so It's cross-platform. It's programming language agnostic meaning that's You know, like I said, there's numerous We're gonna talk about we're gonna talk more about this. It's not entirely agnostic. It's not any programming language You know, it has different various degrees of support But in general, it has the capability to support multiple programming languages on the front end It's unlike Java for a very long time. Java is only language supported Then, you know, there's other JVM languages come later and they're all fairly similar, right? You know, so there's many different You know different languages that you can you can have and in the place Well, that's the important point. The last point is also important It plays well with existing container tools, you know So people keep asking, you know, why don't you use Java? You know, you made a comparison, you know It's it's like JVM. Why can't you use the JVM because you know, if you if you think about the claim that I made a lot of those Also, the claims Java has made in 20 years ago before it moves to be You know a very complex platform So, you know, there's has been a huge amount of cognitive tools that has developed by the community you know, Kubernetes and Docker itself and distributed runtimes we're going to talk about that in a minute and it plays well with those tools because it's OCI compliant It's it can you know, the web assembly web assembly applications can be submitted and stored in Docker hub and then be pulled down by say container D or you know Docker itself or you know podman CRIO, you know all those tools and then run as you know as lightweight applications in those In those environments, so those are the you know Benefits, you know, that's we have a we have a runtime that is very specifically optimized for this for this type of use cases, right? So, of course, there's no free lunch, you know We have said, you know, if anytime you hear someone say it's a hundred times smaller It's a thousand times faster and then there's no trade-off, you know, that's that person is probably a sales person, right? You know, that's uh, you know, there's a there's trade-off, you know, there's You know, so it is a web assembly is what we call, you know At least what I call opinionated a very market meaning that it's needs its own SDKs It's needs its own way to develop software. It's not like Linux containers, which just give you the Linux operating system You know everything that runs on Linux gonna runs in the container. You just know that right, you know, that's you know, but that is Super easy. However, we also think it encourages the wrong behavior. It encourages people to develop very wasteful heavyweight applications and then try to run them on resource limited environments, you know Because it runs on my machine that I have a very, you know You know powerful machine and I need to write I write application. It runs on Linux So, you know, I expected from on the edge to on Raspberry Pi, you know, all on, you know, the CDN network, you know that's You know, that's would be You know for Web assembly, however, you know, you have your we have your own compilers We have our own SDKs much like Java has his own compilers Java has his JDK, right? You know, it's a it's a new programming model and it's the new programming tools that the developers would Learn and then, you know, develop a new application is that a very specific that to take advantage of those features That's the speed and the size and all that stuff, right? You know, so there's new things to learn. I think, you know, it's good news and bad news You know, and there are common libraries that need to be ported, right? You know, so that's that'd be the trade-off, you know So there's you know It's more burden on the developers. Also, I think it makes developers more, you know You know More useful, you know You know, that's because there there are more things that needs to be done by developers, right? You know, so a little bit about the was a major runtime was a major runtime is only a web assembly runtime, you know That's in a CNCF, you know That's where the CNCF sandbox projects and we started the project in 2019 You know, that's right around the time when Solomon Hikes send out the tweet, right? You know, so we want to develop a web assembly runtime That's very specifically optimized for the cloud native use case We call it wasm edge because we see it's mostly it's We call it cloud native edge native, you know So it's on the edge network and you know, we are we're resource are more constrained So it has a lot of features we can talk about that in a minute, but you know, just you know You're interested in, you know, this is a GitHub repository, you know, just go there You know, there's over 100 commune contributors from the community, you know, if you Try it out, you know, see if you see any problems or is the issue, you know talk to us So Like I just said, you know into all this Cloud native web assembly started 2019 with a tweet from Docker's founder and Then we were hit by the pandemic then, you know Then kubecon started again, you know, that's so in this kubecon, you know I think it's come all the full circle, you know, that's So Docker itself has launched a preview of web assembly tooling, you know The way it works is that, you know From the from the Docker desktop or Docker CI, you know, it would you would ask it to run image the image could be Linux image it would go to Container D and run C and start a container and run the Linux image if Docker sees the image is Is a web assembly image from Docker hub it will go to container D and bypass the whole wrong C and invoke wasm edge to To execute that that that web assembly image and you know to start up an application So, you know, we have a demo that's you know, in the URL here That's a you know, so with a single command the Docker compose up you can It's actually three Linux two Linux containers plus a wasm microservice you know is that one Linux container contains a mysql database and then Next to the database you have a wasm edge quote-unquote container But it's a really a runtime it's application the application is what we traditionally call the middleware, right? You know, so it's connects to the database or connection pool and it's at the other end It's lessons for HTTP request and then there's There's an inject server that serves a static web page in another container. So if you With a single command the Docker compose up you can build and launch all three things all three, you know It's a you know, normally it would be three containers But now we have two containers and the one the the key application logic is all in web assembly In the web assembly runtime, right? So you can you can try it you can see the size different of those, you know the The two containers that does much less one is a database that one is just a static web server Hundreds times larger than the web assembly runtime that's in the middle, you know So so, you know, that's our dream of course is that it may be someday You know a full blown database, you know, like mysql would be able to run your web assembly as well You know, so that's you know, so that we can get the size So so that we can get everything that is really slim and nice, right? So, you know, so that's comes the full circle So on Tuesday Solomon Hikes treated it again to say, you know, all all those years after three he has left Docker and you know the company has changed directions and all that and you know, that's You know the vision is finally being realized. So we are very very happy about that. And so yeah, that's so you know if you're interested in trying or this I'll just go to docker.com and it has It's currently featured a Docker plus wasm, you know, that's you can download a technical preview version of the Docker desktop and all the doctors here I and And try to yourself, you know, just the demo I just told you about right Okay, so In the rest of the talk, you know, so I I think I've covered most of the big picture stuff and I hope you know, that's It's a it helps everybody understand you know why we need web assembly, you know That's you know, what's the value proposition here, right? So in the in the rest of the talk I want to go go go over some of the, you know, it's current state of the art You know, what's the status of the tooling support what status of the library support, you know, how you know Is that ready for prime time? Of course, you know, I'm biased, you know, I'd say it's ready for prime time There's multiple, you know companies in this space like ourselves, you know, wasm edge second state and also, you know our You know Friends, you know, like Fermia and what I'm called what I'm called by the way is also since that project, you know, that's So, you know, so there's companies has been working in this space for a couple years now And so the first I want to talk about is language support for cloud native wasm web assembly applications, you know so like I said one of the Points of web assembly is it's it's polygons meaning that's the language agnostic However, it doesn't have SDKs for the languages and currently this is a survey from CNCF, you know Conducted in October 2020 22, you know, which is, you know, right before this conference it asked people, you know They're they're programming language for for, you know For people who use web assembly or want to use web assembly as container What's our programming language are and as we can see rust is by far the most popular and Followed by JavaScript and followed by go, right? You know, so rust and JavaScript are both well supported web assembly at this moment and go support can really improve You know, that's something that's you know, we are working and you know, several big companies in this space, including, you know I don't know you can't you know VMware and Microsoft are Working on that to improve go support in in web assembly So, you know, there's a variety of different languages that people want to use But rust and JavaScript are the most important ones So, you know, as people say go is the language of cloud native, you know Java is the language for the JVM, you know, in the web assembly circle We we think web assembly is fate is tied with the adoption of rust So the rust is the language for web assembly rust compiled web assembly is is a is a golden combination. So I'll go through those quickly. So, you know With rust in wasm edge, we support a variety of different libraries, you know, so You know, I would say 80% of the current, you know server-side rust applications would easily just to compile to to wasm You know instead of the native and then and also we provide Additional support for AI inference, you know, people when people do AI they typically use Python which You know, it's a we use that in containers It's a it's a it's a very big setup and then, you know, and it could be very slow because you know There's Python does delegate most of the stuff to native but for stuff that doesn't they delegate, you know It's a it's a it's a slow language. So we have rust API's Through through wasm. We have rust API's to run say TensorFlow, PyTorch, OpenWino You know, those are all running on the underlying hardware, you know So if GPU is available we're gonna run on GPU. So it's so it's for taking advantage for native performance And so today I think if you want to use rust to do AI inference Compiling to WebAssembly would be the best choice because those are the API's that only work on WebAssembly through the WebAssembly bridge to those to those To those AI inference frameworks So then there's JavaScript, right? You know, I want to give this talk I give this talk numerous times about JavaScript and people always are very confused You know, people thought WebAssembly runs alongside of the JavaScript supplement JavaScript But now we are talking about JavaScript running inside of WebAssembly. We are using WebAssembly as a container, right? You know, so we run JavaScript applications inside of WebAssembly. So, you know One of the big issues, you know, because we have announced, you know, JavaScript JavaScript supporting our new awesome edge for, you know, I think a couple months ago then people immediately go to npm and put on a JavaScript module and try to run and of course it wouldn't run because it has no JS API in it, right? You know, Node.js is the API that added JavaScript So now we realize if we say we are JavaScript compatible we must support Node.js, right? I think the, you know, the other runtimes on the market are learning the same lesson Dino is supporting Node.js API now, right? You know, so, you know, we have, you know We have three people working on that So we are aiming to have the forward Node.js API support by the end of this year So you would have, you know, any Node.js applications You would be able to run inside of Wasm Edge and take advantage of the, like I said, the security, the small footprint, the high speed and all that So, you know, that's our roadmap for JavaScript support And then there's a language is one thing, like, you know, so it's a little, you know, intermingled So language and libraries are the two things, you know, Java and JDK, you know, that's the analogy I want to, you know, I keep making, right? So, you know, so when, when the same survey asked people, what are the library features, you know, that's access that you want from, from your, you know, from your cloud native web And assembly applications, the number one is IO, of course, you know, number one, number two are both IO, right? You know, I would say the number one, number two, number three are IOs, right? You know, so it needs to access the network because in the cloud native environment, a lot of things, including the database The site card service, the Kubernetes SDK, they are all available through the network So you need, we need an efficient way to access the network, you know, in a non-blocking asynchronous fashion, you know, that's, and then there's, you know, other features that people want, you know, there's including, you know, threads and the HTTP is network again And, you know, so there's a bunch of things that people want to build into the WebAssembly runtime so that it can have access to those operating system features You know, so that's, this is a survey result And for us, you know, is that, you know, because of our focus on the case of microservices So one of the first things that we need is to have a very high performance HTTP server so that, you know, so that the microservice So, you know, you would have a proxy here or a site card here that lessons for the incoming HTTPS request And then it's active load balancer to maybe, you know, one or a hundred WebAssembly runtimes that you, you, you spin up depending on your load, right So each of the WebAssembly runtimes can have its own HTTP listeners that come from the, that come from the network proxy or the ingress, right You know, so in Rust, we provide really good support for the networking libraries like asynchronous library like Tokyo and MIO MIO means a mental IO and hyper is Rust's HTTP library, right You know, so both kind and server were supported and in JavaScript we have the Node.js server API And so I know this is probably hard to read and I probably don't have enough time to go through that either But it's, but you can see on the top left, it's a Rust, it's a piece of Rust program that opens HTTP ports on local hosts 8080 and when a new request come in, it responds a new task, asynchronous task that invokes the function called echo And then on the right side is the echo function, the echo function receives HTTP request and pass out what's in it And then generate a response to go back, right, you know, it's so very simple You know, just write a web service in Rust, it's actually extraordinarily simple You know, it's because there are lots of new libraries that you can use, you can write it very elegantly So, you know, so this whole thing is a web service, right, you know And, you know, within the web service you can make HTTP, outbound HTTP requests to other web services In the same network or outside of network or in the sidecar, you know, to consume other services like key value, database, and you know, things like that And in Rust, again, we have support for the for the entire HTTP stack And in JavaScript, you know, the fetch API is really popular, you know, that's, you know, we support that And some more code examples to do HTTP request and consume web services And then we have database clients, right, you know, so because of the socket connection, you know, you can compile So those those strongly typed MySQL libraries into into WebAsimilar and there And so we support key value stores, we see we support MySQL Include that includes all the databases that support MySQL, right, you know So database clients are covered here And so there's a complete example, which is I just mentioned with with a Docker example So, you know, you can run it with Docker or you can run it with command line, you know It allows you to build a microservice that is entirely in Rust and compile into WebAssembly It has a HTTP listener and have the database client on the other end So, you know, it talks to the database It's, you know, it allows you to the current, you know, operations to create, read, update, delete, right You know, that's, you know, the same old things we all do when we first learn, you know, server-side Java You know, it's the first example of everything everybody has Yeah, so then again, you know, I talked about AI inference You know, we have, you know, WebAssembly standard has something called the WASI ANN It's WASI neural network It's a standard API in WebAssembly That allows it to access all the tensor-based frameworks underneath it So we have integrated the PyTorch, which is now a Linux combination project And OpenWino is an Intel project and a TensorFlow as well So, you know, that's, so it's, let me see if I can example Yes, you know, so TensorFlow inference is also a couple lines of code You know, I have four demo here, but I don't have time to do that You know, it's essentially take an image and turn that image Core function turns the image into a tensor And pass the tensor into, say, TensorFlow or PyTorch And get a tensor back The tensor is an array and then, you know, depending on what the model is You interpret the numbers in that array and come up with something, you know So for this one, it's an image classification application You send it an image, it will tell you what it is, you know So you can landmarks, spaces, or plants, animals, you know, whatever You know, depending on how you train it So, you know, so there's lots of, you know, very useful, very exciting application you can do So as you can see, this is the whole application You know, this is a whole web service that takes the input, uploaded image and classifies It fits into one screen, you know I don't think a typical Python application for machine learning would fit into one screen You know, that's, but that's, you know, there's lots of, you know Easy to use APIs that allow developers to do that I'll skip over that And then developer tooling, you know That's also one of the major issues that's, you know, that come up in the survey That's the people say it's really need this, really need improvement, you know Because web assembly, like I said, it's an opinionated framework It is, it requires the SD case So for developers, the tooling and the need to learn this stuff is huge, you know So, you know, that's, so there needs to be more materials, more tools And, you know, things like that So that reflects in the survey, you know Most people say it is, you know, it's an area that's currently lacking And so that's, you know, our collaboration with Docker comes in So, you know, so now Wasm Edge is, I think it's okay It should be, it should say Docker desktop and Docker CLI You know, so it's, you should go to Docker website They have full documentation there, you know So that's, you know, I really like Docker Compose Because it allows you to, for a single file It allows you to build the whole thing And then, you know, spin up the containers And now you can specify which are Linux containers Which are Wasm containers, right, you know So they can, you know, it would know how to handle it properly And, you know, it's, you know, takes, you know Three minutes to start up an entire application With multiple containers, you know That's, you know, I think it is really powerful And of course, you know, on the other side There's, there's Podman, right You know, this is also a CNC project run by Red Hat And it's also a container management tools And one of our community members, you know The company is called Liquid Reply It's one of the large IT consulting companies in Europe And they provided integration for Wasm Edge into Podman You know, that's to allow Podman users To use the same, you know, CLI interface To start up, you know, Wasm Edge containers Together with Linux containers They run side by side again, you know So that's, you know So that's where we are very glad to have, you know To have our community members to contribute, you know This type of important work, yeah So then, those are developer tools But then at deployment, Kubernetes is fully supported, you know So Kubernetes, because those, in order to support Those development tools, we support ContainerD And we also support Seron, you know That's, Seron is the OCI runtime That is, the change to Seron has merged upstream So that, you know, you can build a version of Seron That it would, when it sees an image from Docker Hub It would know whether it's a Linux image It would start Linux container to run Or it's a Wasm image, it would start Wasm Edge to run it Right, you know, so when we integrate it at that level We can have a, we can finally go to my original slides To say we have a, you know Service mesh with clusters With many different, you know, applications Running inside their own containers And they can, you know, they can all run side by side In the same Kubernetes containers And then, you know, on Tuesday I gave a talk at, you know DapperCon, Dapper is also a CNCF incubation project And it's a framework that is very specifically designed To help people design microservices So it's, it has sidecars and the microservices You know, sidecars in containers And microservices in another container To communicate together with, with the Dapper SDK So we wrote, one of members in our community Wrote the Dapper SDK into, adapted that into WebAssembly So that if you have a WebAssembly-based microservice You can call Dapper services So Dapper services include service discovery Service, service invocation And then you can have, you know You know, a QV source, you know A secret source and, you know Messaging queues and all that stuff So all those things are now available To WebAssembly-based microservices as well Through the SDK integration with Dapper And yeah, so I think I'm, you know I think my time is up And, you know, so here are some resources And if you want to, you know If you want to learn more or if you want to deploy that Just, you know, please And come to our GitHub repo and, you know Talk to us, yeah And if you have questions, you know Come and talk to me And I'll stay here as long as anyone As the last person who leaves the room So yeah, thank you very much