 Hi, this is your host of the Bhartiya and welcome to another special episode of Tia for let's talk here at Cubecon You in Amsterdam, Netherlands and today we have with us once again Medperture CEO for me on that is great to have you on the show. Yeah, thanks for having me again And the great thing is that we are doing it in person. We have done so much remotely. It's excellent. I love it Yeah, it is a meeting, you know face-to-face has a totally different experience totally different chemistry Which brings me to point off, you know Cubecon in person of we are returning and this time no masks So it kind of gives a feel of pre-covid era again audience I remember I think the Cubecon China was the biggest audience and we are seeing the same kind of audience here now So talk a bit about first of all, you know when you walk around or people walk to your booth Are you good on shows or you talk to your peers? What kind of discussions you're seeing it on? Suddenly yeah, we had the WebAssembly pre-day happened on Tuesday and that to me that's pretty much the high point of my year. We've got one in North America. We've got one here and You get a lot of the people who are in this cloud native ecosystem We've all been working on Kubernetes and Helm and and container technologies and Docker for a while So we've got this common background and now we're looking at WebAssembly You know this promising technology that I think is making some big inroads in the cloud So, you know, we kicked it off with the wasm day on Tuesday At that conference, you know topics range from things like here's where the standards are right now too Hey, check out some really new and exciting applications of this technology. So it's really kind of a good You know rush of endorphins to kind of get the big story about WebAssembly right now And then from there, you know, we've gone into Kupkan and had these great conversations I feel like in 2022 a lot of the big questions were like is this WebAssembly thing Really gonna be a thing outside of the browser and now that you know this year We've really seen that transition to people saying we are excited We understand the potential and the possibilities of this and let's see what we can build Excellent. And then you meet people. Do you hear a question? Hey, what is WebAssembly? Yeah, I mean it's still early enough that we've got you know, we've got it. It's a Started in 2015. So it's you know, kind of it's an eight-year-old technology at this point So there are some people who have been doing this for a long time But you know like with Ruby where Ruby was around for about 10 years before Rails and many of us Even even those of us who knew lots of different programming languages Ruby wasn't even on our radar and then suddenly a new thing Pops up and Ruby goes from relative obscurity to the to the mainstream I think WebAssembly is kind of having that moment right now And so you've got some people who have been doing it since 2015 and they're seasoned experts and you've got others of us who came along, you know A few years ago and then the vast majority of people I think are just kind of learning about it for the first time now So if I ask you when people ask what is the how do you define it to them? I mean I like to define it by saying what it was originally designed to solve and then why that is exciting to apply different places you know it was originally a browser-oriented technology and I mean I kind of grew up with the web browser, right? The first couple of languages I learned were Java and JavaScript Back when Java was gonna be the browser programming language and JavaScript was a toy language that you would use to wire the Java to the to the browser That story didn't work out the way that everybody thought it was right Java's JavaScript the toy language suddenly mature Well didn't suddenly over time it gradually matured into a more and more robust language a more and more robust ecosystem Java in the browser was never quite performant enough to kind of capture the large market, but over time We tried all these different ways to add other languages to the web browser If there was active X and silver light and flash Each of them kind of suffered from a couple of different Limitations one of them is they were all proprietary technologies which meant we were usually dealing with just one single vendor and the other one was They were coupled with a specific programming language that was for the most part in most of these cases very very specific to the browser So WebAssembly was really started to address that problem to those two problems and try again So it was done as an open standard in W3C along with HTML and CSS But also it was done by a consortium of developers who said and this is from you know Apple Mozilla who started it? Microsoft's IE at the time IE team and and the Chrome team at Google They got together and worked on this together and they said we'll just define a binary format to run in the browser Did and then we can compile different languages to it So instead of introducing a new programming language We'll just introduce a new binary format and then tool all the compilers to compile to that And then you know the first language they wanted to do and I think this is a great choice The first language they wanted to do is C because we have this huge legacy of C code stretching back decades and decades What is interesting about that is that? while While the browser never really took off I mean we did see some big use cases for it in the browser Figma uses it it compiles their C plus plus into WebAssembly Adobe uses it but those are it's not the kind of thing where you know your everyday The front-end developer everyday web developer is like I spent 99% of my day writing code to compile to WebAssembly, right? It's still fairly niche there But the the characteristics that made it interesting for the web browser They're frankly they're applicable in all kinds of other places So when you think about what it means to run somebody else's code in your web browser, right? The first thing you got you think is okay I don't want somebody's C code to mess around with my system So it's got to have a really good security sandbox and in fact the WebAssembly security sandbox is even More constrained than the JavaScript security sandbox because you don't even want it to be able to do Nefarious things to your to your JavaScript because you might be exporting somebody or importing somebody else's WebAssembly module into your code So the security model is really good And then on top of that it has to be highly portable because Long gone. Thankfully are the days where you say oh this this site only runs on IE on Windows or this and This one only runs on an Intel machine and not an arm machine or something like that So it had to be very portable and then it had to be really fast, right because when we When we work in our browser, we expect things to be very snappy We have an incredibly low tolerance for latency in the browser Which is funny because when it started it was the slowest thing ever and but now at this point our expectation is it's going to download quickly It's going to execute quickly So and that not really that's kind of this story that gets me into why I found it interesting I had no interest in the web browser case my team we were working on cloud technologies and we we were in the kubernetes ecosystem and working on containers and We started taking a look at serverless computing And and we took a look at it in the sense of how is this actually running inside the cloud And is it efficient and is it fast and can we make it faster and more efficient? That was kind of the original prompt that got us Talking about what cloud architecture looks like So if you were to go down and you know walk the show floor at kubernetes today You would see you know, there are really two kinds of cloud compute that have gotten the vast majority of interest from people There's virtual machines on the one hand, you know going from vmware and ec2 at aws, you know, you've got this kind of Workhorse of the cloud like this big beefy very secure very robust cloud compute engine And the size of the images you're dealing with are gigs and gigs right and the startup time for a virtual machine It's minutes But once you got that thing going you've got a full operating system from the kernel all the way up to your application level So that's the first category right then the disruptive technology several years ago is containers, right? There's so much lighter weight You just put your application in there in your file system and add any of the system libraries you need And and and package it up in a docker image and and deploy it and with kubernetes We got this huge orchestration system So we're looking at this situation going all right So you got a big heavyweight one then you've got kind of this middle weight class And we're looking at the rise of serverless and we're going The serverless model is supposed to work like this a request comes in And your serverless function starts up executes just that one request returns a response and shuts down right so ideally We're starting up in milliseconds executing this thing and shutting down right away So we want the leanest possible runtime for this kind of workload But it also has to have that same security model that containers and virtual machines have Because you want to run untrusted code, right? You want people to be able to upload whatever code they want and they'll you know in the amazon lambda case, right? We pay them to execute code, but we don't have the expected They're going to inspect the code and say yeah, we're not you know It's just the security sandbox model makes that safe So we were looking for something like that And those same three things that I've listed about web assembly We're the three things that we were that were on our checklist, right? It has to be secured has to have an amazing security sandbox Has to be very very fast to execute and it needs to be cross platform and cross architecture and that Last use case came from in part This desire to to take advantage of whatever the fastest Processor at the time was or whatever the cheapest cheapest processor was at the time and with arm sort of making this huge Surge into the cloud computing space we're done We don't want a developer who's building on intel to not be able to take advantage of in fact They shouldn't even know what the system architecture or what the operating system is for this kind of serverless function world to work So as we kind of poked around with this to do with this checklist of features We wanted and we landed on web assembly our first response was wait We're seriously talking about taking a browser technology and moving into the cloud, right? But yeah, yeah, we are and and so we started experimenting with it turns out that There are standalone web assembly interpreters There are actually of I think close to 20 at this point that don't run in a browser They run outside the browser and we began at fermion starting to build tooling around that And you know the first thing we built was spin this open source developer toolkit where we could say As a developer I want to be able to go from you know our core user story as a developer I want to go from a blinking cursor to a deployed circular app In 66 seconds, right? And and so that was the that was our goal and we began building this open source tool to do so today's world Of course, I use a lot of desktop applications, but most applications don't run on our system They run you know on someone so browser has become you know kind of gateway of course on apps also You know so so you're running somewhere so but when we look at web assembly Is that scope just within the browser or there is a you know a word outside the browser also for it? Yeah, and that's where I think we have really started to see the momentum here, right? That that those key things right the portability security There are so many different places in the ecosystem where we need those same features A good example, I mean clouds my passion, right? But there's other good examples of this our iot right where you know Netflix and Sorry bbc and Disney plus and amazon prime They all use web assembly in their in their players So if you got a roku or an apple tv or just a smart tv at this point, right? Uh, you load that app and you're running it. Those are web assembly. Why are they web assembly? Well because when you have 9,000 different tvs and and streaming sticks and all of that kind of thing You don't want to rewrite the same software for each of them But in the iot space, uh, you have very specialized hardware, right by not talking like Off-the-shelf stuff or well you were talking about it an assembly of a lot of different components often Which are unique to you know say lg on this side and you know the roku streaming stick on the other side And so there's a big advantage in having that kind of cross platform cross architecture story Security sandbox is of course always a compelling feature of any offering And that kind of fast startup and runtime is is valuable there So iot is one of those places where we started to see web assembly take take a hold Um, I think another one that's been really interesting Is taking the web assembly runtime itself and starting to embed it in other locations So my favorite example of this right now is uh, you know single store the database company Said, you know, it's inefficient to do a select statement Pull the data out of the database do a transformation in your program and push it back in Right, you have to move the data out page through the data put it back in, you know And and there's a little there's there's a little window of uncertainty there when you're pushing and pulling the data that maybe something else can happen and they said, you know For the longest time we have used, uh, you know pl sql and other methods of running in database functions But they've always been sort of expressed in A very specific sql like language What if instead of requiring the developer to learn a language like that we put web assembly inside the database So that the data is transformed at the source of the data instead of pulling the data out and transforming and putting it back in So I was really excited to see somebody do that because this is a really novel take on on on how to make a database more robust and The security model again is a big deal because normally you'd have to add Something low level into the database to do that and then you're trusting other people's code to be able to do In this case you can run it in the database In an interpreter and have it, you know have that security sandbox Well, still the full expressiveness of whatever language you choose whether it's python on one side or rust or sea or Or a javascript or whatever And then then yeah getting back to my favorite topic, right? I think the cloud is one of those areas where we'll see a number of applications of web assembly Because the profile of it just really fits that cloud case where you want to something that you can execute quickly And something that you can run to completion And since you brought the point of you know these use cases Linux kernel when Linus created that he had a very specific use case But look at the use cases beyond their own imagination where kernel is being used or Kubernetes, you know So sometimes when you create technologies users come and you know, they kind of surprise you that by using it in situation where you're like what I love the way you phrase that that is the truest statement about technology We write something going i'm gonna express my inner idea to solve my problem And you put it out there and especially in the open source world people do things and you're going I never thought of it And and sometimes you know those moments are like well, yeah, okay my tool works for a use case I didn't think and other times you have those moments for you where you say Oh I didn't realize that if I make a little change over here and change the direction I've for my original idea to this direction. It's huge And I love that I think it's one of the coolest things about open source that we basically empower our community as a whole To to be part of that process But I love it as the kind of creative part of me like seeing people interact with it and do things that I never anticipated and then Watch things adjust. That was one of my favorite things when we started I started I was one of the people who started the helm project And if you've rewind in the helm code base back to the early days You just kind of roll your eyes and go matt. Matt. What were you thinking? Right because it was we had a very specific use case And then people were saying, oh, well, could we do this? Could we do this? Could this be a generic package manager for kubernetes? And we just you know You start by making a couple small adjustments and a big one and then a couple more small ones And it has just been such a such an enjoyable journey to watch A technology evolve and web assembly is right You know like helm was you know rewind it five or six years And like kubernetes was rewinding back that the web assembly ecosystem is just now hitting that point where we're saying Oh, this this was started as a special case technology and look at all the different things that we could do with it That really play to its strengths And then how do we take that and start building the the the things that we're envisioning now? No very well said and I also want to talk a bit about uh because you also talk about the serverless You know point earlier. So I think that is already covered I do want to talk about for me on a bit, you know as you see the The ecosystem around web assembly is kind of evolving, you know beyond your own imagination. So what does it mean for fermion and How is company evolving with this evolving ecosystem? Yeah, and we really wanted to at fermion Show people the power of web assembly again, you know in in the serverless world specifically but really show people that that you can build applications in a very fast and efficient way and And then execute them on the cloud in a very fast and efficient way. So when we got started The first thing we wanted to do was build an open source developer oriented tool And this is called spin and build this tool specifically to kind of Help the developer get started right away And so there are kind of there are kind of four steps to this right the first step is when I really am getting started I start with an empty An empty space right a blank space a blank canvas And I got to get from that to something So we've created the spin new command that basically will scaffold out an application in the language of your choice I'm like spin new, you know hdb rust to start an hdb rust project And I give it a name hello world or whatever and then that dumps a scaffold of the code in there That's you know 12 lines of code long, but it's 12 more lines You don't have to write and then sets up your compiler and everything because that's kind of the trick of any of these things Is getting all the little Build details right so spin new does that then you code a little bit you want to compile it you type in spin build It drops down to your compiler compiles the code into a web assembly module and then you can type in spin up And have it start up a local instance that you can test out So one of that what we call the developer inter loop right that part where you're Looking at the screen with your hands on the keyboard typing away trying to get your idea Into the code right and that that spin new spin build spin up is is there to help you get that kind of thing done And then when you're ready to push it out there's a spin deploy command and by default it'll go out to fermion cloud Which is our hosted platform This is free right now At some at some point we'll need to pair on paychecks So we will have to charge for the like higher level tiers But we wanted to build something where people could host their blogs and build their applications And that would always be free and then when you get into a you know enterprise a use case or something like that Then then we would charge for that kind of thing But if if trying for me on cloud is not your thing, right? We also released an open source version of the whole fermion platform That you can install into your cloud account or on bare metal you can put it on anything from like, you know, digilotion AWS Google amazon Azure kind of whatever whatever your preferred cloud or metal is and then you can have your own instance there Which of course you get to manage But you know, it's a nice easy way to do it and then You know docker integrated it recently into their desktop So if you're you're a big docker fan Download the new preview of docker desktop and you can try it out locally there And then we're starting to see and this is particularly relevant for kukon, right? We're starting to see people roll this into kubernetes as well So so azure is previewing a version of spin inside of aks so that you can write a kubernetes manifest to deploy Your web assembly application into a kubernetes cluster And they contributed all that work upstream into the container d project Which is a core piece of the kind of cloud native ecosystem And in fact, that's the project that docker uses as well to provide docker desktop support So it's really cool right now to be seeing the momentum build for being able to execute these things and And now, you know, it's been making it easy to develop it and Develop web assembly based applications and then all these different run times that people can choose from At least in in this case, it's a very simple process. Now if you're doing iot, there's still a lot of work You'll have to do but in this cloud world I think we're seeing a lot of momentum gather And I think what we have shown is that web assembly is not just a viable thing to run in the cloud But a really exciting thing that's going to solve some problems Matt, thank you so much for sitting down with me I wish there was more time so that we can you know talk in you know depth more about other things I wanted to go deeper into more use cases and everything so let's do it to you know Once again, either remotely or if you see each other at any other open source event But I really appreciate your time with it. Thank you. Yeah, so glad we can sit down together in person. It's been fabulous