 All right, can everyone hear me? Cool. Let's see if this works this time. For those of you that were at CF Summit Basel, there was maybe a slight hiccup there. But I've got my fingers crossed on this one. So I'm going to be demoing a number of new-ish capabilities in Cloud Foundry application runtime. I'll be using a number of CFCLI plugins in this demo. A lot of these capabilities are available in the API already. It's just not fully baked in the CFCLI. So you can follow this bit.ly URL to go check those out. They're of very much dev quality. Lots of disclaimers over there. OK, so you can take a look. Here's a list of all of the plugins I have installed for this demo. So to start with, we've got three apps pushed in this space. And I wanted to start with showing off metadata, a new capability. You can add metadata to apps or spaces, many of the objects in Cloud Foundry. So we can use this plugin to add an environment variable to this app called Hello Jack. That's my son's name. And we'll say the department is equal to CF. Oops. Oh, there's a dash in there. Got it. Cool. So that applied. And we can take a look at the metadata on another app here. This app editor has similar metadata, maybe a different department here. And it also has an annotation with this description. Vim really is the best. And you can also, with labels, you can select on labels. So let's show that. We've got CF select apps with the department equal to CF label. And that's Hello Jack. And then the label CFAR. And that's editor. So that's just a preview of what you can do with metadata. There's lots and lots of use cases here. Really interested to see what folks come up with and think to do. All right. Moving on next, we're going to show off multiple application ports. So we've got this editor app here. I wanted to show real quick this app. It really is running. On port 8080, again, best editor has been. This is actually a very silly app. It's a Spring Boot app. But it's using CF Linux FS3. It's using Cloud Foundry's Open JDK 11. So we're all good there on that front. So what I'd like to do is show that you can now, if you enabled the actuator port on actuators on a different application port on port 8081, we can now enable and configure that. So that's editor. The domain is that we're going to call it actuator. And the port 8081, different from the default port. And it says, OK, that totally worked, right? So we secured this actuator endpoint. I actually enabled the thread dump endpoint for this. And we can take a look at it and see that, yes, I can trigger a thread dump off of this endpoint. And let's pipe that to JQ so it looks a little more normal. Whoops, not that more. So that looks like a thread dump, right, everyone? It was secure. It's on a different port. And that's multiple application ports. All right, moving on. Wanted to show revisions. So we've shown in the last few summits revisions, being able to do rolling deployments. One of the pieces of feedback that we got about rolling deployment is that it'd be quite nice to roll back. So here we can see we have this plug-in. We can look at the revisions for Dora. And we can see that right now on version 2, this particular droplet good here, Dora is saying hello. I'm Dora. And what we can do now in a rolling deployment way kind of bouncing is to say, CF, roll back Dora to version 1, totally different droplet. And we should see that it says it's succeeded. It said, go. This is kind of asynchronous. So that should take a little bit here. But it should say something different. There we go. We've rolled back to Dora. We didn't have any downtime. And just very smooth. One other thing, oh, it's CF revisions, Dora there. You can see that when I rolled it back, it created a new revision here, 3. But with the same droplet good as the one I rolled back to. So that's that last piece of revisions. All right, moving on, weighted routing. This is the last thing I wanted to demo. So I'm going to show the ability to use weighted routing between two apps, Hello Jack and Dora, and using the new Istio routers that are now available for you all to try out. So we can see that. We can see what Hello Jack is saying. That says, hello, I'm Jack. And we can then what we would do is look for the domains. That is the domain mapped to those Istio routers. And then map these routes. So using the very normal map route command, specify the domain there, specify a host name of Hello. You can see, let's see, we'll cycle through this. Over here, make this, there we go. So this is pretty cool actually already at this point because this is coming through the Istio routers through to the app. So that's already kind of working and configured. Step two, map another app to that same thing. So Hello Jack. And we can map that same domain to that same host name over here. That's also added within 15 to 30 seconds. That should also be eventually consistent. And you can see that balanced between the two apps. By default, when you map the route, there is a weighting of one. The current UX, the CLI plugin I'm about to show you, will allow you to, there you go. See some amount of Hello Jack, Hello Dora, it'll be eventually consistent with those Istio routers. So for the actual kind of cool weighted routes part, using this plugin over here, we're going to give Jack a little more weight. Let's see. That route over here, and we're going to say 40. So right now, you can specify the weight, a number between 1 and 128. Update, oops, right. Had those mixed around. Update, route, weight, totally different things. And the way that someone on the networking team explained to me how this should work is that for every, you take the weights of the two apps. So 40 and one, you add those together. So for every 40 requests, or 41 requests, 40 of them should go to one. One should go to the other roughly. And I'm vamping, again, a little bit, because 15 to 30 seconds for this to take effect. We should see a steady stream of, hello, I'm Jack. And then very, I think it took that part. And I'm waiting for it to actually say, hi, I'm Dora. Because that would actually show it's balancing a little bit. So this is totally going to do it. Any second now, 15 to 30 seconds, they told me. Where is the networking team? Well, anything else? Oh, so CF Linux FS3, you all should really be migrating to that this month. That's going to be end of support this month. And yeah, still more vamping. No, did it happen? No, no, no. I totally did this right, right? All right, well, I'm going to take my time here. But it totally works. You all can try it. And thank you very much.