April 13, 2023

A more Efficient, Faster and Scalable Web with Fermyon | Episode #63

In this episode I talk with Matt Butcher, Co-Founder and CEO of Fermyon. Fermyon is revolutionizing cloud computing with their serverless #webassembly platform. Pioneering the next wave of cloud computing by simplifying the deployment and management of #serverless applications with WASM. Matt and I talk about the company's core product, Spin, and how it simplifies the dep…

In this episode I talk with Matt Butcher, Co-Founder and CEO of Fermyon. Fermyon is revolutionizing cloud computing with their serverless #webassembly platform. Pioneering the next wave of cloud computing by simplifying the deployment and management of #serverless applications with WASM. Matt and I talk about the company's core product, Spin, and how it simplifies the deployment and management of Web Assembly applications, enabling developers to focus on the important aspects of their projects. WASM addresses some potential flaws in Kubernetes... security and ease of use.

What is WASM? Web Assembly is set to dominate the Serverless market and maybe even supersede Kubernetes for application deployment and management...

In this episode I talk with Matt Butcher, Co-Founder and CEO of Fermyon. Fermyon is revolutionizing cloud computing with their serverless #webassembly platform. Pioneering the next wave of cloud computing by simplifying the deployment and management of #serverless applications with WASM. Matt and I talk about the company's core product, Spin, and how it simplifies the deployment and management of Web Assembly applications, enabling developers to focus on the important aspects of their projects. WASM addresses some potential flaws in Kubernetes... security and ease of use.

 

☑️  Support the Channel by buying a coffee? - https://ko-fi.com/gtwgt  

☑️  Technology and Technology Partners Mentioned: AWS, Amazon, Kubernetes, WASM, Web Assembly, GO, Rust, Python, Nomad, Consul, Vault, Terraform, HELM  

☑️  Raw Talking Points: 

  • HELM
  • Overview of Web Assembly and its importance in cloud computing
  • Serverless techWASM addresses issues — such as security and ease-of-use
  • WASM finally lets us move code between servers, clouds, and edge devices without involving developers
  • WASM and platform ops? Who has ownership?
  • WASM and application scalability, uptime? HA?
  • WASM poses an existential threat to Docker, as well as to containers
  • Good for Browser, Great for Cloud
  • Spin: Fermyon's developer tool and its features
  • Fermyon Cloud: A serverless platform for WebAssembly applications
  • Fermyon's newly introduced platform (Platform One) runs on Nomad, Consul, and Vault
  • Supported languages and compatibility
  • Real-world applications and use cases
  • Developer experience and community engagement

☑️ Web: https://www.fermyon.com ☑️ Crunch Base Profile: https://www.crunchbase.com/organization/fermyon-technologies

 

☑️ Interested in being on #GTwGT? Contact via Twitter @GTwGTPodcast or go to https://www.gtwgt.com   ☑️ Subscribe to YouTube: ⁠⁠https://www.youtube.com/@GTwGTPodcast?sub_confirmation=1⁠⁠

Web - https://gtwgt.com Twitter - https://twitter.com/GTwGTPodcast Spotify - https://open.spotify.com/show/5Y1Fgl4DgGpFd5Z4dHulVX Apple Podcasts - https://podcasts.apple.com/us/podcast/great-things-with-great-tech-podcast/id1519439787,

☑️  Music: https://www.bensound.com

Transcript

RAW TRANSCRIPT

it's not replacing serverless it's kind of side by side with it you probably have noticed the term serverless is bubbling up again and the question is why well I think because now we actually sort of are starting to understand what it means and and where we think it can go hello and welcome to episode 63 of great things with great Tech the podcast highlighting companies doing great things with great technology my name's Anthony spiteria in this episode we're talking to a software development company that's revolutionizing cloud
computing with their serverless webassembly platform pioneering the next wave of cloud computing by simplifying the development and deployment of serverless applications that company is fermion and I'm speaking to co-founder and CEO Matt butcher welcome to the show map thanks thanks I'm super excited to be here excellent just before we talk about Wesson and everything that is pretty new to a lot of people about to get a dose of this information if you love great things with great Tech would like to feature in future episodes you can click
on the link on the show notes or go to jtwgt.com and register your interests just as a reminder all episodes of GTW GT are available on all good podcasting platforms the Googles the apples spotifys all hosted and distributed by Spotify podcasts and just a reminder to go to the YouTube channel at jtwjt podcast hit the Subscribe button and the alert button and you will get all past and future episodes okay with that let's talk about you know Matt your background and you know what led you to basically start a company that is looking to
change the way that I think applications basically live on the internet yeah uh I'm gonna do the weird thing and start at the very beginning I was a weird kid right I was really when even in high school what I wanted to be when I grew up was a philosopher so when I went into college I went in to study philosophy but uh somewhere along the way through a variety of humorous flukes I ended up getting a job writing code um and uh you know from about 16 on started doing some software development and and viewed it as a way to like pay
the bills right uh coated throughout yeah I was uh I was actually hired to mow the lawn out of place um uh word for the City of Colorado Springs but it they hired two people named Matt and they got us confused and so the first day I showed up for work I showed up ready to ready to mow the lawn right and they and and they uh they said oh well let me show you to the place where you're going to be working and they ushered me down to an office introduced me to a guy named Bob Bob says hey I'm about to leave on vacation
uh but here's your first assignment and gave me a stack of books about HTML and c and pearl this is back in like 1995 right well okay and then he leaves on vacation so while he's gone I spent this time reading about the the web you know I think I was using like Mosaic and maybe the first version of Netscape Navigator I'm very I'm very similar vintage to you and uh yeah definitely in 1995 I was almost two years away from uni from doing computer science and sailing it easily but I always liked Pearl Pearl's
my like favorite language and I did very well I wrote some not great stuff but I wrote some of my best stuff that I did in Pearl so triggering memories all the way bad rap Pearl was in and you know at the time when a lot of the stuff we were doing required big regular expressions and things like that it was such a such a great language for that uh but yeah so I ended up paying my way through all the way through a PhD in philosophy but paying my way through by doing software development I finished that and taught for a very little while
and went I don't know academia's sort of slow paced and you know it takes like a year to get a single Journal article published I think I want to be a software developer for the rest and just kind of left and went back that's a huge pivot that's that's like a serious pivot but that's such a piece side by side yeah oh there you go where there you go yeah I guess it was a side by side though right because you kind of I'm guessing you were probably writing websites early days and doing all sorts
of crazy stuff like that but it was just like yeah it's kind of cool but really my love is that philosophy so yeah it's quite interesting do you still and I think I mean there's a few things we'll dive into a little bit later on but the book that you wrote on you know on kubernetes and whatnot I think that kind of shows a bit of that background so to speak as well and we can touch it a little bit later on but I thought that might be a good link there from where you were and where you came from
yeah yeah and I do think I mean I as much as I make light of it right philosophy is a good discipline to study and has a lot of bearing on computer science I mean every philosopher would point out well you know computer science is built on logic and logic is is from philosophy but more importantly you know when we when we do when we write code right we are trying to express a very abstract idea a very abstract system and get it out in a language and the language of code is far more structured than say you know English uh that
probably goes without saying and you there's a certain amount of rigidity in that that you have to follow in order to express your ideas so I've always found that philosophy is that that coding is actually a deeply philosophical exercise and you know you can tell what makes a good architect for example or what makes a good senior or or principal level engineer well it's their ability to kind of distill that abstract system into programming language that actually works and you know helps people get their job
done so I've always thought it was good no a good discipline for me yeah good I think that works I think that the line you draw is is a fat one and it's not a long it's not a long uh string to bow or by the string whatever yeah it goes yeah but you know that got me into sort of software development as a profession and I kind of spent my life sort of oscillating between uh large companies or for HP work for Google work for Microsoft and Tiny companies you know work for a startup called revolve worked
for one called Deus worked for a small company called palantir.net and and so I you know kind of managed to get some interesting perspectives on both uh ultimately you know Deus was a company that was doing very very early kubernetes work uh and we were building a platform as a service on top of kubernetes uh out of that came the helm project which is now sort of like the default package manager for kubernetes uh Microsoft has just started getting into the kubernetes game at that point uh Brennan Burns had just left Google
and gone to Microsoft Brandon being the creator of of kubernetes and Microsoft acquired Deus so that was kind of how that oscillation Works small company got acquired by a large company and uh and there we spent my team there day's lab spent about five years really sort of first of all honing Helm into what it is today but also doing a whole bunch of interesting open source Upstream projects that we contributed to cncf to Linux foundation and places like that and it's interesting Rob because you I think a lot of I talked about this in
the Croatia with you is that you don't see a lot of Microsoft um people in outwardly now in the industry or all they keep it in the secret to my to my point because I think you know usually you're hearing about ex Google is is facebookers you know all that kind of stuff so the fact that you know you're a team for Mike or Microsoft through acquisition but you know you still work there for a while and now you know and the whole Helm thing's pretty cool as well I could you know a lot of people listening will you know touch
Helm because that's what they need if they're going to deploy stuff in kubernetes quite easily you know so it's quite a kind of cool to be talking to you but also to see that Journey from the philosophy to HTML to Pearl you know Helm and where we are today in this in this land of of wasm so talk talk about um you know fermion and how that came to be yeah and I I mean you made a really good point there about Microsoft right Microsoft is a great company to work for and I think people leave their jobs for
a couple of reasons one is dissatisfaction right once the once your satisfaction level gets low enough then you start saying oh well maybe it's time to move but the other one is you know when you start to get passionate about something that's maybe beyond the the kind of what you're going to be able to do once the passion meter really gets very very high then then you might leave but that's a harder bucket to fill right and and that was where we got none of us was dissatisfied with life at Microsoft
I actually I think I had the best job in all of the company uh being able to do all this open source work and I'll uh worked with lots and lots of different teams there but when we we we started to hit a problem uh and we we actually didn't realize that it was a problem when we started to hit it we were hitting like different facets of different frustration points we were frustrated with not being able you know with a uh with the with containers when we were trying to figure out okay well you know we want to move a container
back and forth between different operating systems different architectures you know how do we rejigger the container runtime to do this um there were multiple teams at Microsoft working on that being able to run Linux containers on Windows then all of a sudden arm is a thing again in the data center right the cheapest way to operate loads and we're like we cannot tell developers okay you have to build four different versions of the same application one to run on Windows Intel one to run on Windows alarm one to run
on Linux Intel wonder and and then uh you know so we were trying to solve that problem and we kind of butted our heads against the wall for a while we were also trying to solve a problem with performance uh we wanted to so one of the most costly things you can do is in the cloud is run Cloud workloads run servers that aren't taking traffic right because they're just sitting there too much for your hourly yeah and and not doing anything so we were going all right well uh we need to figure out a way to be able to reduce the amount of
idle time um and this becomes particularly important important and serverless workloads but also in kind of your run-of-the-mill container application and so we were we were trying to tackle the scale to zero problem how when no traffic is coming in can you scale all the way down to zero and then as soon as the traffic comes in start scaling up into the thousands without uh without the user even being aware that they're the first user to hit the machine right yeah and we were so we're bumping up against containers again here going well
the startup speed for a container you measure it in seconds and a user starts to lose attention on a website at about 100 milliseconds so there's just no way we could get this anywhere in the realm yeah of acceptability yeah and that's just sorry to interrupt but you just triggered memories again as my my old days you know you know trying to basically host applications on is and and lamps and all that kind of stuff yeah yeah that first person poor poor person in the morning that hit the application the first time and it had to
be the application to actually warm up at the back end you know and start up and yeah that could be like literally some applications I remember would take minutes to warm up and there was nothing but a spinning window basically at that point so I think obviously that was a while ago and the technology has moved pretty significantly but you're right if you're spinning up multiple instances or front ends whatever it might be um to you know serve these applications you need to be very fast and very sort
of efficient in that space so I understand where the use case and the endpoints are coming from there yeah and we found one application one technology that the developers were really genuinely excited about uh but then it was coming close to hitting the needs of of the developer in this kind of like okay so here let's put time out here uh kubernetes is a very frustrating platform for a software developer right platform Engineers we like it because we can tune every little knob and dial we want until things are running really
well but for a software developer kubernetes can be very frustrating you have to the the the abstractions in kubernetes have a a you know curious way of leaking their way all the way into your code because of the because of the assumptions of the way kubernetes works because what you have to do to manage your data and manage environment variables you just have to know about that and when we built home we knew this and we were trying to build Helm as a tool for developers uh but as we got into you know the kind of higher higher
order of of problem solving here we were going okay so how do we make it so the developer really doesn't need to know anything at all about the underlying architecture and we were trying to build a platform like that at Microsoft but we started to notice developers were telling us something uh that we have that was surprising to us because we thought it was going to be a toy technology people developers are going hey this serverless functions thing Lambda functions these kinds of things we really like that yeah and
we're going oh tell me more why well because all I have to do is write a request and response Handler I don't have to stand up a server I don't manage SSL certificates directly you know everything just kind of I'm I'm right away like within a couple minutes of opening my my you know vs code or my Vim I am writing the code that I care about I am not doing boilerplate and we're going oh that's interesting so this is interesting because I come from the other side of the school right like
being the the system architect platform guy that used to work with the developers to keep them happy and you know and it's it's funny like even even when you give them something like kubernetes they're still not happy you know what I mean like yeah yeah please you know you're giving them a you're basically giving them the keys to the whole platform right without you know with almost like just hey have it all you know we don't care what you do um you know it might not work at the end of the day you know you might not be
able to scale you might you know have all the security issues whatever but hey if you want to do it you can do it but obviously they they want to get past that as well and this whole so does this mean that the concept because that's where devops comes into play in theory right the dev and the op coming together so yeah you know we haven't really touched on Western specifically just yet but is is that what it kind of almost gets rid off to a certain extent it just lets the dev be the dev well I think it gives us a better a
better uh division line between what's developed what what the what the application developer does right and what the uh devops and platform Engineers do here I'll I'll give you an example I got an espresso machine and I'm very proud of my espresso espresso machine so I try and work it into any example but you know so this is the kind of espresso machine that if I want I can take it apart I can you know work on the pumps I can very very finely tune the internals to set the temperature right that's not me I don't care about that
that's platform engineering right what I want is to make the best espresso and the best froth milk I can and I want to have all the knobs and dials on the front that I want in order to tune that right I've got the lever to do the Steam and it you know somewhat pressure sensitive in another to kind of dial in the espresso but I don't want to open the machine and do it right so if at the point at which the espresso machine requires me to take the back off and start tinkering with the wires and tubes
I've gone from being you know the Barista mat to be being you know engineer Matt or I've gone from being a software developer Matt to being devops and platform engineering event right and so as we were building software we were going so one of the one of the things that really frustrates both groups of that is when the developer has to become a platform engineer or the platform engineer has to become the the software developer so what are good cases of that well you got a daisy uh you got a zero day right in production you as the
platform engineer like this is the highest priority possible I drop everything to take care of this you go and reach out to the developer who's like dude I got like 15 things to do today and this is 16th on that list right and and because you have to go back to them and say can you rebuild the binary with a different version of Libya SSL open S sellers yeah yeah yeah we're going so like how do we divide those so that the platform engineer doesn't have to throw things to the developer on you know day two Ops right and the developer
doesn't have to know about the destination platform when they're in the middle of coding and this is where so that that was really the sentiment a the sentiment we were hearing from serverless developers who are like look all I have to do is write my request response Handler and the sentiment we're hearing from the from the kind of frustrated kubernetes crowd which is like don't let the container and and uh kubernetes abstractions bleed all the way into my code uh and then the platform Engineers you know and devops
are repeatedly saying look how do I keep the developers out of the production life cycle so that's the kind of milieu in which we're going all right so there's got to be a technology out there that gives us the kind of the the right once Run Anywhere ideal right the the the the dependency how do we get that so that the developer can do things the way the developer wants and then how do we build an execution environment uh where the platform engineer can say look I can turn Niles and Niles and Dobbs dials and
knobs and I can uh you know I can handle the zero days I can handle the way the platform certificates go I can handle all of these things that are my job without having to throw them back over to the developer and that's what and that's where that's where ferment comes into play right so yeah founded in fandom 2021 just out of Interest I always well most episodes ask out the name so what was the origin of the name uh so this is uh it's physics uh and as I mentioned earlier I'm a philosopher I
have no no idea what physics are the rest of the Radu who's my co-founder came up to the name he's like look this is the smallest uh particle uh that things are composed out of right the fermion is the little little tiny one and he said you know this is an analogy for what we want to build we want to be able to as we want to take the kind of microservice architecture and and really realize the true potential how can we build the smallest possible units of code and then be able to assemble those into the things of the universe where
that we're building as as software developers perfect those are his words not mine yeah well very big bang very big bang theory I love it I love it it's all good okay so that's and that you know like sometimes a company name is just a company name but that actually is very much descriptive of what you're trying to do and you've built that up beautifully in terms of you know the background and the why so I wanna let's ask a question so so what is wazam or what what's webassembly so oftentimes the answer to the what is web
assembly thing gets unnecessarily complicated it's actually a very very basic technology all it is is a binary format right an executable binary format so when you build something on Windows You're Building into the XE format when you build something on Linux You're Building into the elf format webassembly is just another one of those the what's important about it is the purpose for which webassembly was originally built so uh you know we we can we can do the 30 second history of languages in the
browser right what what's the programming language of the browser well JavaScript but along the way we've tried all kinds of different ways to get other languages in you know the first one was Java with Java applets and I was I was looking at some old old stuff and I've realized that like the original vision for Java applets is that that would be the language Java would be the language and JavaScript which is toy language that was going to glue the the Java applet to the browser but the idea with
Java was that we could take one language and we could write it and we could compile it to the Java byte code format and we could run it anywhere uh and and so you know Java in the browser didn't quite take off uh it's actually I don't think there are any browsers left that support the Java applet specification but um but it was an idea right that you could compile a sophisticated programming language into a bytecode format uh what happened was JavaScript the toy language evolved over time and became a very very powerful programming
language which is now the number one programming language and has been since I think 2013 says red monk uh yet still over time we've tried a couple different ways to say well can we support other languages in the browser to do other things most of these have been proprietary attempts like silver light and Flash I remember them flash was yes was huge for a while there wasn't it like I remember doing a few things in Silverlight and some really cool stuff um deep Zoom I think was one of them that was pretty cool we could have
pictures and keep on zooming in so Microsoft are pushing it very hard but that we're talking we're talking about 2007 eight time frames yeah yeah it was a brilliant technology I I think if Microsoft my theory is if Microsoft had embraced open source earlier than that then Silverlight would have been the thing that webassembly now now is but webassembly basically came about when uh when some developers at Mozilla said look there are a couple mistakes that all of these other attempts have made one of them is trying to introduce this
as a proprietary thing another one of these is uh you've always had to learn a new language which and and then compile that language to the bytecode format what if you know we created a bytecode format that you could compile all kinds of different languages into and there were initial I mean they they were like hey let's do c right everybody you know see too much of way too much of the universe is built on C so let's start with C let's try a trendy language like rust which also came out of Mozilla and
then they did another brilliant thing and they said look uh let's get you know Apple's Safari team Google's Chrome team and Microsoft at the time Microsoft IES Team all on the board together and say let's do this through W3 and let's standardize it so it's going to be open going to be standardized and instead of writing a new language a new programming language we'll write a new bytecode format and so it took off really as a way to kind of execute all kinds of different workloads in the browser and I
think for me my favorite example is always figma right figma wrote a whole bunch of code in C plus plus they compile it to webassembly they run it in the browser and they can do their Vector manipulations incredibly fast in the browser because they really could optimize those low level algorithms so just explain what in the browser means for people that you know might be going well okay well I can run a website that's in browser um but what what does it mean when we're actually running like a like executing something at this buy
level in a browser what's it doing how's it interacting with the with the underlying Hardware to execute the code versus what you'd be doing outside of that in a normal sense yeah yeah so browser side you know when you're executing something browser side you connect to a website you download a bunch of stuff and it's usually the HTML the CSS to JavaScript and then you execute that stuff on your computer using your compute resources and that's why you know big chunky websites cause your computer to go slow right uh and
that's an important detail incidentally with webassembly so webassembly was designed so that you could pull the binary executable down and you could run it inside of your web browser so you're running it locally now there are a couple of key things I just touched on one a second ago a couple of key things you have to be able to do well if you're gonna create a technology that somebody else is going to run on their computer right performance is one right it cannot be the kind of Technology where you
download it and then you where the user downloads it and it's like uh when is this website gonna load right nothing is more frustrating than I think I said earlier our attention starts to dwindle at 100 milliseconds if you're asking me to wait three seconds for my website to start I'm gonna get too long too long no we can't do that anymore so so speed was a big deal for webassembly security obviously very very big deal uh the last thing you want is to be downloading a binary that you can't even see the
source code to and having it execute and then have it like root your box and you know upload your your family pictures to somebody else's hard drive or steal your passwords or whatever midterm mint uh Bitcoin or something like that you know yeah yeah so you want a really strong security sandboxing layer as well in fact the web assembly is security sandboxing layer is stricter than the JavaScript security sandboxing layer for reasons like you actually have to protect your JavaScript code against malicious webassembly binary so it's a
brilliantly constructed security platform and a and very much optimized towards speed from you know small binary sizes that you can quickly get across the network to Binary format that you can execute very quickly to start it up and then one that continues to run very efficiently in the background so really kind of three performance aspects there that's what got us interested is that kind of runtime profile so here we are you know looking at you know looking at the the developers interest in serverless functions and the
kind of friction between the platform engineers and the application developers as far as who owns what and who manages what and the rise of arm in the data center and of course us as Microsoft having a vested interest in running both Linux and windows in our Cloud all of these things are kind of coming together and we're here at you know in Microsoft at Deus Labs going I this is all these different problems you know we can't can't make any Headway on any of these problems and so we're out kind of after
a planning day our team was very distributed we used to fly into a central location and have a planning meeting together once uh every six months or so this is back in my 2018 and we're going yeah these problems we just seems like we got a bunch of problems that we just can't make any Headway on and we're just kind of chatting it's after dinner uh you know Canadian whiskey might have been involved and we're just kind of going you know isn't there what maybe we're approaching this wrong right we've we've been trying
to build all of this stuff with with the two kinds of cloud compute that we have available virtual machines and containers what if you know and we can't we can't bend those we cannot bend those to our will in the way we want what if there's like another kind of cloud compute all right what if there's another executable format out there that would be that would meet the needs that we're facing with here that we're facing here uh and we kind of tossed a couple of ideas around webassembly was one of them
uh in in fact I remember my colleague Brian saying we could look at webassembly I'm like Brian web assembly's for the browser he's like no no no hear me out hear me out um and and said you know what if you know it's got the security sandbox model that a cloud would need it's got the performance profile that the cloud needs that our problem set needs what if we just kind of plucked it out of the browser and wrote an implementation that ran on the cloud side and that was kind of the inspiration
that then two years two and a half years later we all left the a group of 10 of us uh left Microsoft and went and started fermion basically to try and build this kind of next class of cloud computing yeah so talk about a little bit before we get into you know what the firm on cloud is and spin and whatnot I just want to talk about you know this whole notion of what we told the Panacea of Wesson finally letting us move code between service clouds and Edge devices with that with that involving I guess developers or even
um app or platform guys right so now that you've taken it out of the browser you can run this on a different type of platform and we'll talk a little bit about how that works later on in in QuickTime but just talk a little bit about that Panacea or that you know end goal of total portability um for these applications yeah and you really need two pieces in order to get the kind of portability story that that we envision and the portability story that web assembly is shooting for right the first piece is
you need that standard binary format right uh and and a specification of exactly how to run it so that all of these different runtimes and all these different environments can say oh yeah I understand this format and I know how to run it because I was going to say because just to put put a little bit more emphasis on that you can run a whole heap of languages in this particular runtime yeah yeah yeah uh but we we keep we keep pretty close watch on red Monk's top 20 languages and then and how they're progressing in webassembly because what
we think is you know you're you're not gonna you're not gonna create a compelling technology if it supports only C and rust right uh you you need c Russ Swift JavaScript python Ruby you know this whole Litany of programming languages that people care deeply about and that have big powerful strong language development ecosystems uh in fact rust isn't even in the top 20 languages I don't think I think it's like 22.
um so so for webassembly to succeed yeah you need a format that all of these different languages can compile to but the the same format can be executed on anything from you know ideally an iot device like your light bulb up to you know the kind of massive 24x servers that you can get in your data center or on on AWS or something like that yeah so that's ingredient number one uh ingredient number two though is that you need a uniform way for a for one of these web assembly things to say these are the resources I need to be able to
access uh and and then the the run time to be able to say oh I I can give you those resources right so examples of this I might need to read and write a file right uh my light bulb might not have a file system my server really should have a file system but there's all kinds of intermediate groundwater file system may or may not be there right so we needed a way for webassembly to say hey uh these are the conditions that I need in order to run can can the runtime Supply them and the runtime can say yes nlxq uh that
part is still in flight but is almost done and that's called the component model very very boring name for a very very exciting technology where webassembly can say hey I need these components I need a thing that looks like a database or I need a thing that looks like a light bulb or you know something like that and then the environment can say I can supply it and in some cases you can even say hey I need you know ideally I need a strong random number generator but if you can't give it to me then here I also have this
backup module that'll do sort of a weaker random number generation thing uh and here's my preference you know so so ideally we can build toward a fairly sophisticated environment where we could say okay uh some things can run some ways here and other ways there but they'll be able to declare to the environment this is what I need to write so those two things are really the two kind of crucial bits the first one's been done for a few years as webassembly 1.0 was standardized in 2019 the binary
format is now good and we all understand it and it's been implemented dozens and dozens of times the second one I think will come along a little bit later this year but already you know a lot of us are kind of pioneering using that fermion being one but by no means the only one who's really been uh chatting about the component model yeah yeah so talk about spin because that's obviously where you guys start to come in I mean that's that's kind of secret sauce and then then talk about the cloud we've got
about 10 minutes left so let's talk about spin let's talk about the fermion cloud and how that all comes together to to do what you do which is you know effectively just offer a platform and the tooling to be able to let developers get their stuff up quick and have it run in a really efficient way yeah so going back to that earlier distinction right we want to keep developers focused on developer problems and then platform engineers and devops focused on on uh operational problems so we really kind of set out to split those
two apart on tool on our tool chain right so spin is the developer Tool uh you can type in like three commands spin new to scaffold out a new projects spin build to compile it into a web assembly and spin deploy to push it out to a server and basically have something running right that'll give you your basic hello world kind of thing right and then you can just start coding from there so it's very much oriented around removing every point of friction that the developer usually experiences when creating an app and then getting it
locally tested and then and then deployed uh so we and it's really focused on simplifying the webassembly tool chain in particular so spin really oriented toward developers uh about June of last year we introduced fermion platform which was the platform side of things right open source platform that you could install into you know digitalocean or on your local hardware or AWS or equinix or kind of whatever you wanted and and be able to kind of play around and tune the platform to your to your wishes right so this is
very much oriented toward the platform engineer devops team right and the idea there was hey here's how we did it we used Nomad we used console and fault that's the way we schedule orchestrate and secure things spin is in there is the runtime and here's a nice web UI that and and here's you know the traffic open source so you've got you've got action core products basically for that yeah yeah and then so that was kind of the the platform engineering thing that we that we've built and and released as
open source then we went okay well really you know developers are not going to want to set that up right again respecting the division of labor that we have that we've described so let's create a sort of like super high-end version of the weekend host uh that that would allow lots and lots of different developers to run their workloads on fermions uh fermion's Cloud tenancy so we built fermion Cloud which is essentially the massive really scalable version of for me on platform and you know it's we launched that for free
there's a We'll add paid tiers at some point right now it's free uh and so when you type in you know spin new spin build then you hit spin deploy it deploys it up into fermion Cloud which is running its own kind of Mega Nomad instance and and has uh has uh you know web assembly execution environments on it and you can basically go from zero to deployed app and about 66 seconds total so okay uh you know that was that was 66 seconds it was about 66 seconds it was a very specific number but it is something that
just I think you just averaged out or that it was it was it used for a reason so so the original user story that we set out with like we use we use a lot of user stories to drive our development but we had kind of like the macro user story that we followed all of the Year 2022 uh and it was as a developer I can go from blinking cursor to deployed application in two minutes and then as you we started building this it changed to two minutes or less and then as we started releasing stuff late in the year once we had really sort of buttoned down
our story uh Roddy was going well we're way under two minutes so he records this video timing himself setting up his first you know go app using expand into playing it and said hey I can do it in 66 seconds and here's the video to prove it and so that that became kind of the new the new mantra okay 66.
done a good great story great explanation I just very quickly as well why no I'm mad not kubernetes so we we started with kubernetes uh even back at Microsoft we built a tool called creslet that was a web assembly execution environment and and what we what we we kept bumping up against the assumptions kubernetes made about its workloads which was always that the shape of the workload was a container it was going to start up it's going to run for a long time it was going to shut down uh and here we're building these
things that you know while kubernetes you know doesn't start Health checking until about six seconds into it and applications life cycle we're writing apps that start up run to completion and shut down in you know 10 milliseconds right because we're writing this kind of function as a service kind of thing where the idea is start it run it shut it down because we want to scale to zero as quickly as possible uh and we were just the impedance mismatch was getting increasingly frustrating so we spent
months and months while at Microsoft writing crestled when we started fermion we said all right let's just start with a blank slate what if we don't use kubernetes for our orchestrator what are the other options out there and in about a weekend we got uh we got um Nomad we got spin up and running inside of nomad or our prototype of spin at that point inside of nomad and went oh oh this is just so much easier because it's a process scheduler not a container scheduler so the assumptions it makes are so much simpler but yet it
has all of the features and the and the boons that we were finding in kubernetes uh and we just like after that experience we were just sold uh you know we bought in Hook Line and secrets so this is just the way we're going to do it it's so easy to work with then we can get that kind of scalability story now the funny thing is since we did that Microsoft has come back and put a lot of effort into kubernetes and webassembly on kubernetes so you can install AKs today running spin in your AKs cluster using their runwazi shim that actually
shims all the way down into the Container D layer and they they're pouring a lot of a lot of effort into this and it's great I mean in hindsight I'm going man I wish I thought of doing it that way in the first place because it's really worked out tremendously well so what we well while I'm still you know while fermion is still you know Nomad through and through uh it does turn out that there is a kubernetes story that's increasing in viability every day and in fact you know Docker took that same work
and when Docker announced spin support a couple of weeks ago that's how they did it they used to Runway shim that Microsoft is using and they run it in Docker desktop I was going to say in a very quick minute where do you think this goes like because obviously a lot of for the longest time now we've been going kubernetes is the future right um where do you see it I think what we're going to see is what the the motion now is that we've been thinking of cluster Technologies and like kubernetes as being in a data
center right you get your data center you put your cluster in it then we started to do kind of cross data center things but I think where we're going over the long term is we're going to see the breakdown of the idea that the cluster belongs in a Data Center and we're going to start seeing the cluster as the notion that it expands way out right and it might include my phone and stuff in my house and stuff on a 5G Tower and the data center so we're going to see an inversion of that relationship
webassembly because you can move the binaries from one to another without having to know anything about the underlying system because it's a right once Run Anywhere kind of thing means that webassembly is well poised to be that technology to start a shift our thinking away from I have my kubernetes cluster in my data center and into I've got this cluster that's a dynamic organism that changes depending on where I am and what compute access I have you know available to me at the moment so that's where I think we're going you
know in the three to five years time frame it's um it's interesting it's I think it's a little bit scary from my perspective because I think a lot of people and I'll put it into perspective because for a while or for the longest time we've been going everyone has to understand kubernetes in containers right and understand that this is where it's all going and all of a sudden you know something like this comes along and it's like oh okay so now what we've been told is going to be the future might not
be the future we have to kind of think about this new thing and now we're now from uh older man platform guy we've got to kind of understand it but then the other guys who are filtering down and who might still be on traditional virtualization even holy moly they've got something to to look forward to I suppose in a way and I think it changes the whole Paradigm of where data gets created you know how do we protect that data where where do we store it the concept of availability changes it opens up this whole other Paradigm I think so
yeah definitely um think it is something to really sink our teeth into if people listening haven't looked lesson get into it because you know for my quick research and understanding over the past six months it's definitely on the up um and you guys at the front and center of that so in about 10 or 20 seconds you've got anything else to to talk about and mention about fermion um I'll link a heap in the show notes obviously but is there any closing comments about you know what you see uh for me I'm going into over the next few
months now we're looking forward to kubecon where we'll get to see a lot of people there and and wasm day there uh kubecon in both EU and then in North America so that'll be a fun chance to get to see people good stuff no worries well look thanks a lot for being on the show it's been great again we could have told for ages we've only got about 20 seconds left so I'm going to wrap it up quick but um then again you can find me Anthony spiteri or go to gtwgt podcast if you aren't subscribed please hit the
like And subscribe button thanks to Matt thanks to fermion and we will see you next time on great things with great Tech foreign [Music] foreign