WebAssembly and the Future of WASM
All right well this is devops Dispatch live at cpon North America Chicago 2023 I think I got all of that in there at once my name is Laura Santa Maria and I am a lead developer Advocate at Dell and I have a very special guest with me would you like to introduce yourself yeah I'm Matt butcher I'm the CEO of firon Technologies where we're building kind of the next wave of cloud computing I've been around in that cloud native ecosystem for so long it's be oh I every I mean the the vibe here at Kong this year is just so good this year is it really so much fun excellent well good I mean I've been hearing a lot of this is more Cloud native con than cubec con this year like there's so much true yeah I agree I I had thought about it that way but that's that's it right there's just so many things now and yeah it's pretty cool to watch isn't it yeah yeah yeah I I mean I remember the first cuon when it was like when we could all see each other across the same room and he pretty much knew most of the people and to just look at this and go wow wow I mean there's just definitely so many people you don't know I mean I can no longer throw a plushy at people uh which I guess is probably a good thing maybe I shouldn't be doing that that much yeah you had to switch to hockey pucks this year oh no I was thinking paper airplanes might actually okay that that does sound gentler yeah a little gentler little gentler but I heard that there was a wonderful wasm day earlier so you're very heavily into web assembly over firon in general but also you specifically so just because I know there's a lot of people who listen to this podcast that might not know what web assembly is can you give the like 92 what is this thing oh yeah yeah 90 seconds sure no problem no no I'm just kid I'm giv you minutes 20 minutes it's fine I mean the the thing about it is that at the at its core web assembly is a binary format right which is a kind of a boring way to talk about it but you know when we talk about Cloud Technologies in general right we we talk about virtual machines we talk about containers uh web assembly kind of falls in the same category except it's really scoped to the application so if a virtual machine encapsulates an entire operating system and a container you know encapsulates your application and its file system and you know there's kind of this piie sliced shape of the operating system web assembly is really just that binary that you're going to execute and just the supporting files that it needs and you package them up into this binary format and it's wonderful because it's platform neutral it can run on you know Intel it can run on arm can run on Windows can run on Linux you know you can run it in like R TOS systems and Mac OS and just about anything in there you can kind of get it running now I heard that it's also a little bit of all of the various things with you can run it on the server you can run it on the client side you can run it I guess on your phone maybe oh yeah yeah you can just run it all over the place which is kind of fun yeah I we've experimented all the way down to these little tiny devices I mean if you you know if you if youve streaming you know Disney Plus or or Amazon Prime or something like that those are all built in web assembly because they're so platform neutral oh yeah yeah because essentially you know think about uh say you know Amazon Prime right yeah uh how many SKS how many different devices do you suppose Amazon Prime is on right a lot yeah there probably in the thousands or something like that and and you don't want developers having to rewrite that for every single platform so what they what they kind of discovered was well you know we can write a thing shim for each particular piece of hardware and then we can have that have a web assembly runtime and then build one player that can run in all these different device profiles BBC does it too and they wrote a great blog post series about how they did it how they built the BBC app with oh my goodness I'm GNA have to look this up because I did not get a chance to read that yet interesting so at fir on I know you all are doing a lot of Open Source around uh web assembly in general and you've kind of been on the Forefront that leading wave of web assembly what what projects are there out there that you all are working on or even interacting with oh yeah so I mean I'll start with firer on and work my way back EXA our our big uh and we're all you know deeply Ste in the open source tradition you know deeply steeped in the cloud ecosystem yeah and so spin is our open source platform you know it's basically a developer tool that you can go from blinking cursor to your first deployed application about 2 minutes or less and it's all open- source and uh you know designed around a good developer experience right but it is not it actually uses another major open source project called wasm time okay and wasm time is a web assembly runtime this is the thing that's going to run that binary format for you the same way that you know like Java has a jvm or net has a CLR web assembly follows that same kind of pattern and wasm time is built by an organization called The Bite code Alliance the B Cod Alliance bite code Alliance is uh sort of like if you're familiar with oci and the whole you know the oci containers and container images and things like that they kind of maintain a number of low-level technologies that are necessary for the container ecosystem bite code Alliance is that for web assembly oh okay that makes more sense and they do a lot to kind of push forward specifications and the specifications for web assembly they go through the w3z so the same group that's doing CSS and HTML those are the ones who are standardizing this but of course you want Engineers who are building reference implementations and people who are actively developing those standards and moving them forward in conjunction with it that's bite code Alliance gotcha okay that makes a little more sense yeah yeah and then so they build WM time which is this runtime they have like like oci they have a whole bunch bunch of other projects that are all sort of supporting the web assembly ecosystem in general uh and and that's really kind of a probably the the most important one from our point of view F code line is probably the most important organization but the interesting thing about web assembly too is that a lot of the code is being developed on the browser side by the browser vendors so of course the Chrome team and the Safari team and all of those teams are involved as well but sort of on the other side of the network connection from us huh oh that's pretty cool so you really have quite a bit of an ecosystem I remember the last time that I had you on a podast somewhere I foret it was a while ago uh this was not as mature as it is now so like has it just exploded or is it just me no 2023 has been the year has been the year for at the beginning of it it was like okay there's a lot of things that have to move uh for this ecosystem to really hit that Tipping Point and now here we're in November and and looking back and going wow a lot of things have moved oh so I mean if you the the most audacious thing that the web assembly developers set out to do is to say we can build one binary format that all these different languages can compile to and the reason why that's audacious isn't because there's something highly technical about that I mean there certainly is a lot of but it's because you have to move you have to encourage every single one of these language ecos systems to move right and and this is everybody from like C the C language community Through the python and Ruby and PE and PHP and Java andet and all of that it's a lot of people yeah it's a little on the audacious side but the fact is it's happening like all these languages are adding support and that I think is when I've been tracking this like religiously tracking because it was like if if they don't move right then then we cannot build with web assembly what we want to build so I took the red monk language rankings you know took the top 20 of those and said okay you know we got to hit 10 of these before we can do anything and I think it's at 27 of them have begun or already have a web assembly implementation at this point w so out of out of 30 did you say oh I guess I said the top 20 we actually trapped the top 30 yeah top 30 top 30 so you only have three holdouts uh yeah do you want name no I'm just kidding oh yeah oh yeah I will uh cascading stylesheets is tracked as a language is not really I mean I feel like I should disqualify that one but I didn't write the language ranking so I just have to be honest yeah okay objective c Objective C and and everybody keeps telling me Oh we think we know that it does do it but nobody has evered to try it you know Swift has done it right and and basically everybody who used to do Objective C seems to now be doing Swift yeah so it's kind of like yeah I'm sure I'm sure somebody yeah I'm sure it works over there but you know let's let's focus on the language that really matters it's Swift and Swift web assembly implementation is cool is it really yeah yeah I I I like you know I kind of like just looking at language ecosystems it's like human language right we all try and articulate uh a system with these different languages and Swift is like one of those languages where I'm like yeah yeah I see the world this way I I look at you know Fortran I don't see the world that way um you know rust rust takes a lot of work to see the world the way that rust sees the world but you know but eventually you kind of find that philosophy of it yeah you do yeah yeah makes sense so what's what's the third language that's missing from oh there there is not as far as I know A bash equivalent A bash wow okay I mean I guess it's kind of low level but not really but it' be really cool to have it still yeah once again red monk says it's a language so you know I try to track it I mean I guess there's also kind of the question about security with web assembly is that going pretty well too like people are really figuring that out cuz I know that was another question about how do we get to maturity from a security standpoint as well as everything else so yeah security is such a is such a Hydra of a beast right it's got all these different heads that kind rear up in different ways and you're like that's scary I'm going to beat this one down oh there's another one over here ex you know at the core web assembly was built to be secure when it's executing because it's a browser technology right and and anybody who says they don't run un trusted code is like wait have you looked at the JavaScript that's running in your browser and web assembly has to have really a stronger security sandbox model than even JavaScript did and that's one of the things that attracted us to it but whenever you start uh you know interfacing whenever you build a system interface where web assembly can talk to a network socket or a file system or things like that you're opening up a tax surface there yeah uh and so a lot of the specifications that have been developing over this year like the Wy the web assembly system interface is designed to do that right tradeoff between securely granting the the the untrusted code access to what it thinks are the files on the file system while allowing the outside environment to go yeah this isn't really a file system uh you know or or yeah sure we'll give them access to the file system here but basically separating those security layers so that you can write code the way you always have written code but outside of the sandbox the operations team has the ability to say okay well this is how this is actually gonna work I like that I like that yeah I think it's a really elegant way of doing things yeah it keeps it nice and clean but still gives you the flexibility if your organization is doing something trusted versus the untrusted stuff that you randomly find on the internet that everyone seems to run into right interesting I didn't know all this was happening in the web assembly world I haven't kept up with it fast enough I mean I can barely keep up with it it is literally my job I know I know so in general with the community are you finding a lot of contributors are kind of jumping on board or is it more um because we've been talking to a lot of different groups specifically from like the kuber Net's world or even some of the other cncf projects and they're saying they're having trouble finding contributors they're having trouble getting people to get time to contribute are you seeing the same thing with like this growing ecosystem versus like kubernetes which has been around for a while yeah yeah I have a I have a philosophy on this one because we are we are definitely seeing quite a bit I mean I I was actually kind of shocked to notice that we had according to the GitHub stats dashboard we were looking at we passed the 600 contributor Mark and I don't think those are all source code cont but it's you know people who have opened issues people who have waited on things and that's that's really good right that's a strong Community for a this is for spin a project that's been around about a year year and a half yeah I remember when you launched it right and and but you know I was so I was in the helm EOS system I at home and and it was you struggle a little bit to build up the uh contributor base and then you hit that threshold where it's the new cool thing and you do you just get a lot of contributors coming into it so I saw the same pattern then but then of course over time Helm's contributor base has gone down or down proportionally to the to the size of the code base the same thing has happened with kubernetes the proportion of the size of the code base and the number of contributors has shifted again you know and I I really think that part of that is that that you know early on you get the people who are really excited about the technology we work on it all the time right we make it about two years three years five years in and then it's like okay now I need a break I I I can't code on Helm anymore right and then then you have to find sort of like the the next the next team right that's going to take it over and because we were so deeply steeped in the ecosystem when it started we grew up with it right we saw all the we know all the the blemishes and things here and there because we were around when when we discovered him and some of us were responsible for creating some of them CLE yeah maybe some of us made some bad decisions that you all live with um but when you bring in a a kind of new team um there's a it has a steep learning curve right um you know often times these Technologies sort of lost the luster of newness and are just the normal and I think it's a lot harder to build up a really good and maintain a really good long-term contribution strategy right and I really admire the fact that cncf really kind of took this head on with the tag contributors and things like that I think it's tag yeah you're right tag contributor strategy and I I just think that's phenomenal because I think a lot of Open Source communities sort of languish after so many years and then a project that's really good and really useful can sort of slowly die by attrition you know and I so much admire you know still being involved in Helm but not writing code the efforts to kind of bring in new developers who are passionate about it and and have that moment to sort of start exchange information I was over at the helm Booth uh chatting with some of the new ones and that that's good right that's healthy and so in web assembly you know we're still in the new Shiny Days absolutely and and so we're growing very fast and I think we'll probably be at around double or so the contributors by this time next year that's still amazing and then you know then it gets into that or you got to be committed for the Long Haul yeah can you push through it can you get everybody involved that makes a lot of sense that makes a lot of sense because I know with the um with the tag which is the technical Advisory Group uh through the cntf for contributor strategy it's been interesting watching how because we have all these open source projects and they have different governance models things like that centralizing some of that I need help with how do I get more contributors I need help with marketing I need help with X or Y or Z it's been really cool to watch that because suddenly all of these even tiny projects get access to the same amount of resources that everybody else does so we feed each other on and I'm actually happy that web assembly is of it it's going to be really cool to watch I'm a little I'm a little afraid to see what y'all are doing by Paris uh which is in March because it's kind of a oh no what else do I have to keep up with now I imagine it's quite a bit for you though keeping up with all the different things just but it's it's such a wonderful I mean and and for me you know the whole Cloud native ecosystem you know the story behind the cloud native ecosystem has very much been sort of I think there are two different ways to look at the story one is through the lens of finally building distributed computing the way it should be built right and and it's about you know we went from monolithic you know onetoone relationship between your hardware and your operating system to this point where then you can run many operating systems on one piece of Hardware then microservice pattern and then containers and and web assembly is in that in that vein right it's just a continuation of this technology story that we're really excited about but I also think there's sort of like on a different axis right this story about what the relationship between developers and operations teams has been and how you know we've lived this right the contentious whose fault is it that production is broken right now kind of thing I didn't make that bug I swear yeah yeah exactly no I I swear I told you I needed that version of the library you know or shipped you over something last week that's actually still in my inbox or yeah um and and you know we went from sshing into boxes at 2 in the morning trying to fix a bug to now having this sort of um uh I I I would hesitate to call it elegant but definitely a robust system yeah Reliant yeah Rel reliable reliable there's the word I'm looking for it is near the end of C just losing it you're G to hear all the but yeah but I think that's another that's another part of this story right the other axis is we're gradually figuring out how we as humans will be able to collaborate better in our respective roles when the role of the developer is to build the code and the role of the you know operations team platform engineer Sr is to run the code you know and and run it very efficiently yeah and so I I like the fact that web assembly is playing into both of those stories yeah and consequently you know as a community we we continue to grow right it's not necessarily a hard reset where it's like okay y all did this thing now stop and we're going to shift over and do something new it's just a continuation of the existing stories yeah it's I admit it's kind of surreal I I don't know if it's just me but like watching the difference from like even going back to like open stack and then coming through kubernetes and all the microservice stuff and now we're here at web assembly and somewhere in there was there was servus somewhere in there yeah somewhere in there somewhere just seeing that evolution is surreal to watch I mean you read in history books about these times in history where it was like oh you know when in these 40 years democracy was created and you know the and then the you know lock did this so did this and then you're like yeah nothing else we'll never live through that again and then it's like oh particle physics has this big Revolution and I I think it's hard for us to realize because we're in it that we're in the middle of one of those you know we this is a historical Epoch of time when we went from no computers to now being able to solve these highly Advanced problems and you know it's a great time to be alive yeah and I mean you can pull out your phone and ask it questions and it answers it kind of maybe if we're lucky you know LM too and sometimes yeah that's a whole another whole another question that we could get down into but uh we are getting close to time so I want to give you a chance to like plug anything you want like you can tell people about open source projects that you have you can tell people about how to get involved whatever you want to talk about this is your time oh all right I mean I I'll tell you our true startup moment's a big deal you take it very seriously so we had our release road map all lined up to spin 2.0 in time foron you know big release for us uh and it was supposed to release Wednesday and then of course you said supposed to yeah that's right because you know what happens it's like on the very last pass through the manual testing somebody's like this doesn't look right and then it's like oh yeah yeah and then it then it begins to like excavation routine where you're like oh how how close to the colel am I going to get before I find what's causing this problem so we ended up not getting our release out until Friday night at 5:30 p.m. so it's like this is true true startup life right where it's like okay what could go wrong releasing at the last hour of the last day before we all get on a plane and fly to Chicago and it go it went phenomenally well we ended up actually trending on Hacker News over the weekend which was really exciting you know every little thing is exciting for a startup and we're like oh look we're on the front page two days in a row um and then so you know here at Kon we've been showing people the newest stuff out of the assembly ecosystem the component model the ability to build polyglot applications all this kind of fun stuff that's coming out so spin 2.0 you know if I could wish you to try anything you know I'd wish you to try spin 2.0 give it a try and uh and
let us know what you what you think about and get involved in the community absolutely yeah we have a great Discord channel to help people okay Discord is where you all are yes fir on.com Discord we'll get you into Discord and then you know developer. on.com will get you straight to the developer docs you can go through the Quick Start guide have things up and running and build your first application in 2 minutes or less hey get involved in the wasum wave right that's right that's right we'll leave it on that all right well thank you so much for coming this is devops Dispatch live at cucon North America Chicago 2023 I have the right Year my name is Laura yep I'm Matt Butcher and now we say bye thanks for coming oh thanks for having me this was fun all right
2024-02-25 09:09