Spin for WebAssembly – Matt Butcher, Fermyon
WebAssembly is experiencing rapid adoption, and developers need an easy and reliable key-value pair database for their serverless applications. Matt Butcher, Fermyon CEO, shares an announcement about how Fermyon’s Spin offering can help developers create, build, test, and deploy an app in just a few minutes.
Transcript
This is texturing TV. Well the great pleasure being joined Again by Matt butcher who is a co-founder and CEO of Fermi on great to see you again Matt. Yeah, it's always blast Beyond here this time.
We're both in Colorado despite my background rather than the biggest together. So we're still in the same sort of General location. Just a few miles.
Yeah miles apart. Yeah. Well, hey bright sunny day here.
We're like out of the winter time and heading into spring. I am so ready to go. They're talking the temperatures for next week, and I was late getting on this because I was out talking with my wife all over the spring things were gonna do some really gonna do in the yard and flowers grow makeup wishes look pretty again exactly.
Hey, so for folks who don't you want to introduce yourself? Tell us a little bit about for me on Yeah, so fermion about a year and a half ago. We started this company that really were focused on one thing.
We think that webassembly is the basis for the next wave of cloud computing and we talked about, you know, virtual machines being sort of like the first wave second wave being containers and we think that webassembly has a lot to offer as this kind of third class of computing runtime. So we build some developer tools open source tools like Spin and we host our own cloud. That is a webassembly oriented Cloud.
Yeah at about a year and a half in we are really excited because just a couple of weeks ago. We released one point oh of our spin project and and it's the the community uptake on this has been just extraordinary and now we're starting to kind of see some use cases bubble up into production and it's you know, as a new startup the most exciting thing is to see your ideas sort of resonate with other people and then to see those people come back and say hey look at the stuff we built with your technology go. Wow.
I never even considered that to be one. Things you could do. It's really exciting.
Well, that's the you know have a great idea but we got to prove. It's actually something. Yeah one thing that they'll pay for right and once you've sort of got that formula going you've got something to build on which sounds like you do really well at so that's great.
Yeah, we talked about releasing spin. So tell people what spin is So spin is a developer oriented tool for building serverless applications in webassembly. So and I I suppose I should remind remind folks.
So webassembly was originally this format that was written for the web browser. It was a binary format if you if you've been around as long as I have you can compare this to things like, you know, there was there were Java applets. Then there were, you know, ActiveX components and silver light and this sort of like parade of technologies that came along that wanted to really augment the browser and the browser Technologies by you know, providing support for different programming languages and and richer elements there webassembly was kind of like a Twist on it came out of Mozilla and and was then then became part of w3c.
So it's standardized the same way HTML and cssr but the idea behind it was we should just build a runtime Target that avoids the two pitfalls we saw with everything from applets to flesh right? Number one shouldn't be proprietary. Number two.
We shouldn't require people to learn new programming languages in order to write in this environment. So They built really a compilation Target that can execute inside of the web browser and that you can compile any language from C and rust now on into Python and JavaScript and Ruby and so on and execute them inside the browser sort of side by side with JavaScript and then so we at fermione we saw this technology and we were working in Cloud, you know main particular trying to figure out how to get startup times for services to be sort of ultra fast and and yet still have a really strong security sandboxing layer. We were looking for kind of like the the if virtual machines are kind of the heavyweight class and containers are sort of the middleweight class.
0 which we just released a couple of weeks ago was is the is the kind of first mature version now production ready version of this developer tool and the goal of the developer tool was to make it really really easy to build this kind of third class of cloud application a serverless function compiled to webassembly and and we really kind of set out to say, you know, can we enable developers to do this in just a minute or two so our kind of core user story has always been as a developer. 0 version launch because that was our signal to everybody. Look we've got it in the shape where it's ready to build production grade workloads.
We've got it in the shape where we're confident that the apis aren't gonna make aren't gonna go through major breaking changes that the the utility is is, you know, cut and dried right that you can rely on this to function this way. 0 comes out at some point. This is like really exciting milestone for us.
That's exciting. Very exciting. You know it it you know, the reason I'm part of X Techron research can be doing a lot of work on edge in a group web assembly.
I think maybe first was even start of sort of think of webassembly primarily at the edge which of course it can be barely can be anywhere but I think that's part of the that's really the point is you can do webassembly and lots of environments. Yeah, lots of use cases. Yes, it's really great.
Sure. You could do it. They sort of a browser extension idea all the way to fully applications, you know often to you know, some Edge compute area or or part of your kind of main Cloud it can be really used to anywhere.
Yeah, and that's a big part of our long-term vision and I think the long-term vision of the webassembly community as a whole for us. When we approached it. You know, I came from a kubernetes background did a lot of kubernetes work before that did openstack.
So I've been kind of deeply steeped in the open source Cloud communities for for quite a while now, but it at some point it started to look at this and say so we've built this notion that distributed computing happens in a Data Center and and then we built the, you know, kubernetes and said, okay. Well, this is the environment in which the distributed computing works and then Along Comes Edge and both the near and far Edge varieties, right? You've got the near Edge version like, you know 5G towers and you've got the kind of far Edge versions like like a cloudflare and fastly and then you've got everything in between, you know, your mobile phone and the data center.
You just got places where you can do compute along there and that was about the time that we started looking at. Loud Computing and saying well if we insist the cluster is a data center thing and the distributed computing happens in the data center. Then we're effectively rolling out being able to do useful things with near far Edge iot and mobile devices in our laptops, right?
They're just portals to the cloud but that's not really the way we want it to go. Right? Like you said if you got a binary format that suddenly can be moved between these different compute units, then you can start orchestrating a system where the cluster includes the data center.
So you almost invert that relationship between Data Center and cluster but also comes out and starts to work with Edge Computing and all the way on to kind of mobile devices. So I think this is as an industry the webassembly all the webassembly Visionary type people keep saying the same thing, right? We've got a binary format that actually can run anywhere if we build this specifications correctly, we're gonna be able to build sort of not just the next wave of cloud computing but really the next wave of distributed computing right next wave of distributed applications.
That's really exciting and I think we're probably a couple of years from that but these are the steps we're saying that we're taking today are the steps that are going to pave that road. Let me ask you this may be like way off the off track or maybe it is in line when things have curious about it from our last conversation. What would web assembly be something that potentially could take over as the platform for mobile devices whether it's a smartphone or a you know, any kind of iot or smart device where you're running applications.
I mean why build to one, you know Android standard if you will and you can literally build in a webassembly environment run that on Android or anything else is that is that a realistic path or people saying Nana? Let's solve something else. I mean that's an interesting one because you've got essentially two players in the in that field who really control the apis, but they're both looking at web assembly and then they both support web assembly.
I think if you look at iot in the direction iot is going you see hints that it's gonna push its way or the mobile device from both directions, right? So so I believe at this point Amazon Prime Disney plus and BBC have all said publicly that their players are written in webassembly and the reason why is because I think in I think it was the BBC article where they said they support something like 9,000 skews when you include all the different TVs. It runs on the roku's the Apple TV devices all of that stuff.
You have somewhere around 9000. You don't want to have one code base that you have to rebuild 9000 times. And so, you know, the way they articulated it is can we build sort of a little a thin little shim layer that interfaces directly with the hardware and has a webassembly run time and then Build the player once and run it on all those devices.
It's a great story and even greater because in production across your TV my TV and everybody else's TV, right? So there's that kind of pressure moving from the iot space toward mobile devices and then of course, you know with with server-side applications and browser site applications, there's pressure coming from that side as well. And you know Apple who's sort of notoriously picky about what kinds of runtimes they allow is is very open now before whatever right open about webassembly.
So, you know, I think I think I think the momentum is building and I wouldn't be surprised at all if webassembly sort of reaches that kind of ubiquity simply because it's a great tool for the job and it's simplifies on the lives of of hardware and software developers alike, right? And it's not flash so we don't have to worry about that. I am from that.
I've written enough technology that I can no longer cast stones anymore. Okay. I should that's a project.
Oh, so you've got some great new news. So what what new things can you tell us about? Yeah, so, you know part of our story of making it possible for developers to build serverless applications really really fast has been you know, what are the points of friction where a developer has to break out of developer mode and go through something else, right?
And you know, this is this is why we started tooling for multiple compiler tool chains and all the kind of Baseline features that were in Spain but we hit one where we said, you know, as a developer one of the more frustrating things is when I need to start, you know, storing data persisting data, right a very common task for software. And the first thing I have to do is stop coding and go find a data storage engine and download it install it configure it start it up. And then after you know the eight to 12 steps of configuration, I can start using it in my application and we said okay that's a friction point and and a frustrating one at that.
How could we start to Chip Away? Kind of thing. 0 was released we included an API in there that allows you to access the local local key value storage source, so you can think about this as sort of like your redis kind of thing or or your Kafka kind of thing where you're just, you know, storing a key and a value and then retrieving the key in the value to make it easy for developers to kind of do this in local storage One Step past.
Json. Foul. Just like oh, yeah, exactly.
Yeah. Yeah, but then he's and you know, it's it's the kind of like it's the rudimentary no sequel database, right? Yeah.
You got it. He in a blob and you store them in there and you you know get it back by by name you list them out. You know that kind of thing very very basic storage engine but one that we all kind of need and one that we all use quite frequently.
So with the success of that in the client side, we said, you know, we should do a cloud version of this that would make it so that you can build an application that is yeah that is stateful instead of just a stateless application and when you It into the cloud you instantly have a massively scalable key value storage system behind your application and you don't have to do anything at all. There's no username and password no connection string no setup. No managing of services.
It's just there and you cannot from anywhere right? It's like yeah hope so I don't have that here. No, it's in the cloud.
I get that. Yeah from where yeah. So any you deploy your fermion your application defer me on cloud.
It's just there and you upgrade it and it's still just there you upgrade your application that the storage is still just there and give people that clear past the persistence so, you know stateless applications have been all the rage for quite a while and rightfully so, you know, we were trying to solve the distributed computing problem that required us to shut down and start up things with frequency. But let's scalability right and scalability. Yeah, but then we really do have to store data somewhere.
And so this was a good way for us to introduce a data storage mechanism that works great with the stateless Paradigm, right? You still write your applications the same way, but you've always got This key value storage backing. So we've been really excited to release that and I framed it out at the beginning as being an experiment and it is in this sense that we believe we're removing friction points for developers and making a developers life easier.
If developers are resonating with this then we're gonna say, okay. Well what comes next after key value storage we can do other things to kind of streamline that process. So this press is really a first step in if it's successful, you know, a first step in what I think will be a series of big improvements.
We make just keeping that developer Persona in mind and saying how can we make the developers life so much easier that that they can be productive faster. They can write less code and then they they still get the reliability that they desire out of the underlying storage mechanism. And I haven't done any development, you know in webassembly.
So pardon my ignorance but is it readily available? Is it like a package or library or how does the developer get access to the fermione cloud for for destroying data. How easy is it for developer to say?
I've got code and need someplace to put this data. Oh, I can hook it up here. What do they have to do?
Yeah, so it's all built into the whole spin framework. com/spin and get started with spin downloaded install it. And then from there you just kind of you pick the language you want to write in and we currently have a pretty good number.
I think we have four sdks that support key value storage and we're rolling out up to ideally we'll be shooting for about 15. And then from there you just start writing your application. So we tried to make it as easy as you know, you type in spin new and it's scaffolds out your new program you open it up in your ID and you start coding away and then you do spin build and it builds it into a webassembly binary for you and you type spin deploy and it pushes it out to Fermi on cloud.
Also, if you want to run it locally, you've always got the spin up command so you can play around with it locally and have kind of actually experience. Yeah. We've also recently I mean when webassembly first came out the idea of building one compile Target for lots of languages that's an ambitious goal and they started with C which you know, if you're gonna do one language in the universe see as a really good language to support and went from there to being able to support C++ and rust and then go and a host of kind of like the lower level system languages and then we've seen momentum picking up from the end the industry itself, right?
net to webassembly. And so what we're seeing is the the ones who own the languages are the ones who are bringing the webassembly support which is if you're talking about industry momentum that is a huge checkbox, right when when all these different languages start looking at this and saying yes, this is worth supporting but it makes for me on this job much easier. When we're building something on top of it, we can merely start working on a python SDK based on the existing webassembly python Sports.
So it's been fantastic and and being able to add Python and JavaScript as as SDK is very recently for us that's been big because those are you know, two of the biggest most frequently used programming languages in the world and to be able to have those along with see another languages like that. Exactly. All those are useful by Young JavaScript seem to be sort of yeah main Grease the gears these yeah.
Yeah that When he was looking at the red monk rankings JavaScript has been the number one programming language on the red mic red monk rankings for since 2013. Okay, that's a long tenure at the top of these what what replaced it or something replaced it yet, or I'd still is yeah, I think in in 20, 20 12, I think it was Java and JavaScript, you know knocked it off. It's top spot in 2013 if I recall correctly.
So so Java was like that was one of my first two languages is Java and pearl were my first two so so there's a little bit of a Bittersweet moment in watching that but you got a well you look at JavaScript and you go this is a language that was originally designed for pop-ups in a web page and and little scrolley bar things and has turned into the most successful language in history right granted. The history of computer science is a relatively Short History. It's still exciting to see a language like that go through that kind of evolution.
That's pretty amazing. And my first job app was late 90s early 2000s Security app actually is interesting a lot of fun. I mean great environment.
I use that Telco space that too but Things things continue to evolve. Well, yeah, so folks can check out Spin and the persistent data store at your website correct? Mm-hmm.
Yep. com/spin is probably the easiest place to go to get started and it'll walk you through the whole process of creating a cloud account when you're ready, but you can just get started locally developing and playing around with this stuff. All right, excellent.
Well, it's a great talking with you again, man. Yes CEO with Permian and in Colorado, that's right. That's right me not a bad thing where I am too and always good to see you Matt.
Look forward to our next guy mutation. Yeah. Thanks again.
You bet.