 So it's awesome to be here. Yeah It's awesome to be here in person in North America giving to talk about Knative at cube con at our very own Knative con and Since I'm kicking this off today, I'm gonna talk a little bit about the past and a lot about the future so For those of you who don't know me. I'm a software engineer at VMware, but I'm also one of the people who Started the project at Google Many years ago and so I've got a little history of what's gone before and speaking of History red hat was the very company outside of Google that We ever showed what would become Knative to Before it actually had that name and they've been a great partner and sponsor on this project for Getting close to five years now, and they've sponsored this conference that we're all here at so thank you very much And so I told you that we would start with a little history Back when we came out in 2018 There were three pieces of Knative there was serving eventing and build These were the three things that we thought people struggled with when they were trying to adopt Kubernetes How do I get myself a container? How do I run a container easily? How do I connect that container to other stuff that's going on? fast forward a couple of years and It turns out that how do I? Build a container actually is a bigger harder problem that ties into how do I build anything and so build grew up? went off to live with a continuous delivery foundation as tecton and Knative had two pieces serving and eventing until earlier this year where when Lance ball and some of the folks from red hat came in to the community and offered to donate a project that would become functions and we've recently incorporated functions into core and What does that mean what what is a core Knative project? versus a Sandbox Knative project and the names are kind of funny because We've had Istio as a supporting piece of Knative since day one, but that lives in Sandbox So why does functions live in core? Well the last time we tried doing this Before a global pandemic disrupted our plan you functions 20 and we spent a lot of time when that failed talking about okay What does it look like what are the rules for getting something into core and we came up with these five guidelines so Functions a little bit in terms of how it meets or doesn't meet these so We it definitely has developed. Do you want me to switch to the wired? Okay Okay So yeah, it's all developer facing. That's awesome Independent usability so when we started we said look you can each use each one of these pieces without needing other pieces They're each useful on their own Kind of a question mark there Knative functions is mostly intended to deploy this Knative serving, but you could Multiple underlying yes, absolutely If you wanted to build a Haskell function build pack you absolutely so Absolute check mark there number and different We actually don't do a good job of tracking this in general both red hat and VMware have engaged with the project and There's some early signs that this is a generally useful thing And the quality of the technical implementation We get a thumbs the team's been working very hard to make sure that they are Meeting all of our standard Knative quality gates that we established when we shipped v1 so And they've built on solid underlying infrastructure and implementations, so Somewhere between three and five of these are a check mark now We are headed in the direction where this feels like it should be part of core and we wanted to recognize and signal that So that's all got three A bunch of these are ideas that we don't do They're ideas for the next thing could come from So serving is basically automatic HTTP. You've got a web server Let's just be able to grab it whoop and you've got as many web servers as you need and you think about it It does all the stuff for you correctly Are there other models where we could make that? Whoop and you got not You know work So for those of you who don't know there is an Apache flink project that is That is basically One of the big stream processing platforms and they have a mechanism called state fund where they assemble all the state for your application and then they ship it off externally Could someone integrate k-native to that pretty easily it feels like it Co processors So none of these exist today, but it would be real nice if you could just say hey Envoy I Want to do something more complex that I don't really know how to put into the Envoy configuration Let me just call out to k-native and like maybe if you're a customer who spends more than $10,000 You get ready to a slightly different set of API endpoints or something like that Be really cool if you could do that with serving and you know Just plug in and make Envoy better or similar similarly if you have a database that scales out like snowflake It would be great if you could Define your user functions in any language run them on k-native and have it call out Another big research area. I don't quite know where it fits in web assembly People thought hey browsers do this great sandboxing and defense and so forth. Could we use this to run service? Pro's it's got really fast startup times cons the binary interface is completely different than Linux containers that we have today Another place that would work well with serving that we don't do great instructions for today at least API gateways, I don't know if it's a brand new thing. I don't know if it's here's how to hold the existing thing better But it would be nice and a flat API surface to customers And then break it out into a bunch of k-native service in the background with that We're going to talk a little bit about eventing and event-driven applications Today we mostly focus on routing the events to the right application But there's patterns out there We already saw stream processing. You'll see it says event stream ingress and event stream egress Those are events. What does it look like to hook up eventing? with stream processing another place at The AWS ecosystem. They have these step functions Particularly little state machines and you could say hey my order goes through these steps And then you can have a hundred thousand little state machines that only run and call off to your computation when there's some work they need to do and So it would be really cool if we had something that you could Did these little state machines So K-native serving makes it easy to scale up your capacity in a burst if you get a lot of work But I think you can do is you can shift things out over time or you can say hey I need to do this in the future, but not right now Oh a nice task queue would be a great compliment to some of the existing mechanisms We have to say you know hey deliver this but deliver it in three hours or You know here's a place do some work But don't let more than 50 run at a time We actually don't want you to scale up and and we want you to wait for other times and the last event Broadcast is different from all these others because for all these others We've got us an event that we want to get to your application as a whole and any one piece of the application Can handle it for broadcast every single piece of the application Needs to get that message What's broadcast good for mostly cash and validations? There's probably some other cases, but mostly is cash and validations Which is one of the two hard things in computer science, so New execution model one common pattern that you'll see that's the beginning of the map reduce pattern is Go over a table and for each row in the table run something Now you can build at this two separate functions today one that scans the table fires off a bunch of events and a second one that consumes each event and processes that row But it really really cool if you could actually make that a first-class expression Here's my scanner, and then here's my per row function and get things to scan out horizontally So durable functions is another cool thing Okay Is a cool thing that after has that That lets you basically build sort of continuations and save your state So you run a little bit of execution, and then you sort of pause and you return Here's my state and then you can pick up later and you get all that state fed back into your application along with Whatever that next event was so you can continue and then we talked about co-processors, so I think There's a lot easier Basically, here you go. You automatically know your your signature and all of that stuff And so that's a big list of future stuff Why is this room the right place to be doing it? Well, I think there's a couple of advantages that Knative has We're open source. So like everybody can download and play with it We've seen a whole bunch of academic institutions and so forth go along and like do some research and play with it and try Sticking stuff together. We have an open community. I think this is actually the biggest part We bring everyone in and we say hey you And the last piece is architecture where we ability as a goal so we want people to be able to run this run Knative in production We also want to enable And we don't want to break the production people with the experimenters, but we want to enable the experimenters and so Last thing before I go is to remind you part of that open community is that we get to choose Who's going to guide the community and that means that we've got an upcoming steering committee election? If you've been contributing the project, you're probably eligible to vote Check at the site if you've got it And if you know someone who would be a great steering committee candidate or you would be a great steering committee candidate sign up to run I forget if there's two or three seats up this year But there's a couple seats up this year. These are the people who do all of our community building and our marketing and interaction with the CNCF and Deal with a lot of our infrastructure needs So critically important role and any of you could be a steering committee member So, thank you very much, and I am over time So I'm gonna clear off and let me introduce the next speaker. Thank you Evan. That was amazing. Thank you