 Hi, we're going to go ahead and start. This is the experiments and extensions track. It is going to show a lot of great innovative development in and around Cloud Foundry. And, you know, thankful for everyone who submitted. There was a lot of great ideas presented. Unfortunately, we could only take less than 10% of those submissions, but it represents the richness of the activity that is happening around Cloud Foundry. And to start it off, we have Dr. Max, who's going to present actually how you get yourself into this whole process. You're good to go? On the back? Almost, OK. All right, so we can start dancing, attracting more people. I'm going to try to make it fun and fast, and hopefully get some time for questions. All right, so the first thing I want to do is I don't know if some of you were in the keynote, but there were a couple of presentations and demos. And I'm going to do a similar demo. So if you were in the keynote, it's going to be a little bit of the same, but bear with me for a minute. OK, so say you have a cool extension to CF, and you happen to be at SUSE. I have my nice SUSE shirt here, so I'll pretend to be a SUSE engineer and then show you guys what they've done, because it's so cool. So the good folks there created this application. It's called Stratos, and it allows you to essentially browse Cloud Foundry and so on. So let's try to use it, so you get a feel for what it is. So I got an account, I think, Neil from Bristol in England, give me access to it. So I'm logging in. Of course, what it does is like most of these console type of application connects to Cloud Foundry, but what's cool is you can actually connect to many Cloud Foundry, and that's what's really powerful about it. So I'll just show you that to the extent of making the demo more fun. So I'm going to register an endpoint. I'm going to register the IBM endpoint. So it's hcpsapi.ng.bluemix.net, and call it IBM Cloud, skip SSL. And once you register the endpoint, you can actually connect. So I'm going to use my user ID. It actually, what's cool about Stratos is not only you connect to different endpoints, but you can see the various different application and orgs and spaces and so on that you have. So you can see here I'm looking at the IBM app. And it takes a few minutes to kind of like gather all the stuff, but it's going to pick my space. And then you can see the user, the spaces, and so on. And it basically gives you this unified view of the different Cloud Foundry that you have. And it actually combines them too, which is really cool. But I'll show you that adding an app is actually pretty straightforward. So if you go to applications, you can just say add applications. To make this fair, I picked Swisscom has a Go app that I downloaded. So I can just go and add that. And it tells you how to deploy it, everything. So in addition to this, you can see your log streams, service instances, and so on. Now the guys at SUSE are already connected to an endpoint on their side. So there are applications. You can see this application I just created is incomplete. But they have an application that's already deployed. So we can look at the log streams. And this is all live. So these guys at SUSE created this really cool thing. And before extensions, there was no clear way to get this in. So the question is, how do you take this and move it forward? And that's what we're going to talk about. But I want to show you more about this. They even have a way for you to connect to SSH, get events. So you can see where things are. But what's best is that it's skinnable too. So you can actually have there's a different version that has the Cloud Foundry UI, or at least skinned, so that now it looks more like Cloud Foundry. So part of the idea is you can actually take this and make it into your own, so in your organization. Oh, and by the way, I tried this on my phone. It works. And the iPad, it also works. So it's capable for all this. So back to the presentation. So this is an example. So you have this cool app that you created. And the question is, how do you get it into CFF? Into, of course, users' hands. So they can give you feedback and make it more interesting. So this is what this talk is about. So let's look at what I want to cover. First is the mission and the process. Because obviously, we don't want to allow anything in, but we want to make sure that it's open to anything, so that what comes in actually follows the process. I'll talk about some of the initial projects and then talk about some current projects that we want to highlight, one of which I already did, which is Stratos. And then I'll show you guys where you can access those projects, have a quick information about the status of those projects and what you can do and so on. And then a call to action. So the mission is, I guess maybe the first question to you guys is, how long have you been with Cloud Foundry? So who here was using Cloud Foundry four years ago? OK, all right. So if you ask these three people, so I'm assuming everybody is after those three years, it wasn't easy. It was tightly controlled by a few companies and it wasn't straightforward on how you could actually contribute something and be part of the organization and so on. So part of what we did in extension is to fix this, but also fix it in a way that allows those extensions to become important. So it's the place for all things that LSEF, but not necessarily in runtime or Bosch. And I mean this by you're not trying to add or replace a component in runtime or Bosch, but you're trying to extend it and then eventually it could become a component into Bosch or the runtime. So this is the key. So this is your way to, without having to be part of runtime or Bosch, or trying to change it and convince the team that already is running those to add an extension. And then eventually that extension could become either just an extension or part of the runtime. So of course the Stratos UI, it's a UI, so it will not be replacing anything because there's nothing to replace. There's no real UI right now for Cloud Foundry, so it's gonna stay as an extension. But if you were extending a component that could actually replace a core component, then you would come here. And what's the goal? Essentially it's simple. Make it the most extensible, the most open platform. And if we had done this three years ago, I guarantee you we would probably have a lot more, a lot more people involved. So it's water under the bridge, but it's fair to mention it. So what's the process? It's pretty straightforward. Right now I'm kind of the gatekeeper for it of the process, but as we add more and more extensions, then people that are part of the extension participate as part of the process. It's a completely open process, okay? So let's go over it very quickly. So it's open to all as I mentioned. We have a template which I'll show you that you kind of have to follow just so that people don't send me like a 10 page proposal and it doesn't have access to the code or ways for me to try it and things like that, right? So we follow a template. There are four stages which we'll cover. And I think this is the most important part. You can move as fast or as slow as you want. Now fast doesn't mean you submit a proposal today and then get it tomorrow. So there is some level of what I mean by fast or slow. There's some bounds, but what I mean is you could submit it and say, I'm ready, I got all my stuff and I wanna move within two weeks and we'll make it happen. But if you say I'm ready but I want feedback and this is kind of a new project, it's more of an experiment, I need more time and I need maybe a month, that's okay too. You need three months, that's also okay. So the point here is to make it so that you guide the community and myself on how fast or slow you wanna move with some reasonable bound, okay? And I'll give you some examples of these. So this is the process and then we'll go and look at the pages. So you come, so what we've been doing, so this process itself is also under review so you can give feedback to it and I'll show you how you can do that. But the idea is that you come, so I'll give you a clear example. Stratos was a great example last year and you saw it and it's gangbuckster now, I mean tons of people are using it already. I know IBM for instance is already contributing to Stratos. But with this process, Steven Levine who showed CF Dev today, he approached me, I mean I've been working with him before but he approached us maybe a month ago saying hey I've got this update to CF Local called CF Dev and I wanna try to make sure that it happens before this summit. And of course Chip was also very excited so you know lots of things. So what we did is got the proposal in, I looked at what they had, I act as a gatekeeper but everybody in the PMC can also kind of be a gatekeeper meaning they can look at what is being proposed before we actually go through the process. You fill in the template, you send it to me and then we review the code, review what the project is trying to do, make sure it's not duplicating effort, make sure that it's also not a place that you're just gonna dump code. I was talking to Rob me and he told me CF is very rich in code. And I think to agree with him, we're not trying to be the place where you can just take your code that you can't use and just dump it. But if you have a team behind it, you have something interesting, then you come and you propose it. Then it goes to a process where we're trying to get feedback, right? We're trying to be open to the community, allow anybody to give feedback, give comments. And as part of this what I try to do is to encourage the community to participate and give feedback. And part of the idea is that all feedback, everything that's on the document needs to be addressed before we can accept to move to the next phase. That's why you can move fast, but you also have to address feedback. So in the case of Steven Levine, for instance, he didn't have a lot of feedback. There were a few from me and then there were a few, maybe one or two from the community. I think Dr. Nick gave some feedback. And I think on Monday, he sent me an email and Scott, part of the team saying, hey, I wanna try to move to a vote. So usually what I do from there is to give a deadline to the community for the final chance for feedback. And we did that to give the final chance for feedback for the cab call that we had yesterday. And there was no other feedback. So we move for a vote. Everything is in the open. There is nothing closed. The only thing that's not even closed, but that is kind of just myself and the team is when you initially think, I have an idea, I think I wanna submit it. Could you take a look at it? So that one, I don't invite everybody to participate just because maybe you have an idea and you're not sure and you wanna show it. And then it turns out that it's not gonna be something that fits. You don't wanna keep it outside. So that gives you an opportunity to chat with me without necessarily having it. And then of course, if I need a second opinion, then I can invite somebody from the PMC to give a second opinion. So that's a little bit private, but not super private. Then everything else is in the open. So meaning CFDF, Slack channel and the PMC calls. And the PMC calls are open to all. So once Stephen asked me, I wanna have a vote, then we do a private thing. And private in the sense that I issue a email to all the PMC leads. So for instance, Jules is part of it and ask for a vote. And the way we vote, there's a lot of questions about vote these days in the US. So this is a much simpler vote. There's no way for anybody, including Russians to hack. Except Dimitri is an exception. He's actually part of the vote, but he's well vetted. He is super well vetted. So I wouldn't worry about it. He's actually American now too. So we ask everybody to vote. Plus one minus one with an optional comment. And the reason I ask for the comment is because, like for instance, Jules voted plus one like with, I don't know what you said, but like really super happy with CFDF, right? And I think those are important just because you kinda wanna see where people are excited. When Stratos came in, I made a comment because I really liked Stratos a lot. So I mentioned how much I liked it. But I also don't wanna influence other people's to vote. So the idea is to let everybody vote and we give a deadline of that. So yesterday it was from, I think around noon to midnight. So it was very fast. And if you don't vote, that counts as a no vote, but it's not gonna impact the tally. So the way we accept or not accept is to have a majority. So if we have a majority of yes vote, then that means it's in. If you don't get in, then of course you can try again. Okay, so completely open. And from that point, Chris just walked in. He actually participates in helping me get you into the Cloud Foundry. So yesterday from midnight, we accepted the vote. And this morning, I guess Chris and the team at the CFF created a Cloud Foundry project under the Cloud Foundry incubator project for Steven and his team. And they already pushed that code. So now you can go to Cloud Foundry incubator and find it. So with that, let me show you a little bit of this process. I guess the different things that you need to do. So first let's see where CF Dev is. I guess they said Cloud Foundry incubator. Let's see how fast Google can see if Dev show up. No, no, CF Dev. Or maybe one word. There we go. So you can see they already pushed that code. And it's all there for you guys to try. And that's the same idea. And if you're coming from a non-pivotal project, so Steven is from Pivotal, so he probably already has Tracker and so on, so he probably doesn't need that. But if you're coming from another organization and you want to use Tracker, we'll settle the Tracker for you as well. We'll work with you and so on. So for instance, there's a team from SAP that's going through this process, so we create Tracker for them and so on. So as I mentioned, this is the process. I on purpose kept it to two-page. So I'm working very hard to not have more than two-page. So even this is going to be, I'm going to try to move it up. And you can just go through it and read kind of officially some of the bylaws. And of course you can comment on it. And then the last thing I want to show you, and then we'll go back to the slides, is the, I guess I can go here, is the template. So there is a template, and you'll see it's super straightforward. So we need a title, summary, what's the problem you're trying to solve, the solution, the project lead and initial committers, assumptions, goals, anti-goals, and considerations. And part of the reason to follow this is so that you don't go gangbusters and send me like a 10-page thing. Nobody's going to read it. So you need that. And usually what I try to do when I work with the team at the initial phase is to also see the kind of things like make sure that there's no overlap toward the projects. If there is, make sure you talk to those people. If there's a need for a diagram, add that. If there's a need for a little bit more clarification, add it. I think the other thing I'm trying to do also is to make sure that you're not, not only dumping, but you have a team behind you. So I'll give you a good example of this. Recently, we've accepted the SQL, the MS SQL broker as a proposed extension. And it's going to go to a vote next week, actually. And Pivotal had created that broker, but Microsoft is going to actually maintain it. It makes sense because MS SQL is a Microsoft product, but that's actually how it's going to work out. So I was a bit worried about this initially because the Microsoft committers were in there. So now they are added, and to some extent I have verbal or email commitment from them that they will be maintaining this project. So keep that in mind, right? So when you submit, don't just come and say, oh, I have a project to submit. You also have to have a team and participate, okay? So let's go back to slides, and I'll show you kind of the rest of this. And it's an overview, and then we'll close it. So what are the initial projects? Obviously, we had some extensions before we started. And those just got grandfathered in. This is just a term, and I guess English, to say that those didn't go through the process. They were initial projects. So one of which is the abacus service worker that now SAP IBM submitted it, but SAP is essentially leading this now. Another one is app auto-scaling. Jules here leads it. Credub is also one of those projects that were initial. And as you know, now is super important to how we deploy CF. And then multiple build packs, which Stephen Levine leads. And since then, what have we done? So we have Kubo, or CFCR, that started with us. The backup, Bosch Backup Restore, so that now you can backup and restore your entire Cloud Foundry, that's part of it. The local and dev service fabric, which is an SAP project, and then multi-apps is another project that I want to highlight. And Stratos UI, which I already did, so we'll go fast on this. Stratos for instance is Bosch release for Kubernetes and day two activities, right? So basically everything that you need to do after you've got Kubernetes open running, you use this. And it's kind of interesting, because a lot of people say, why are you doing this? What was the point of this Kubo thing? And I don't mean to preach to the choir, but you know that getting a Cloud project or software, something in the Cloud, I mean, I think anybody can do it, and it's pretty straightforward, and it's like no big deal. The difficult part is keeping it running. And if you think about time also, especially if you're going to make money on whatever that thing is, that's where the cost is. And that's where Bosch helps you. And why? Because there are crackers everywhere trying to create the vulnerability and hacking into your stuff, and keeping it secure or keeping it running, scaling it, those are the difficult bits. And that's what Bosch helps you with. So the DevOps piece of it. So that's why we have Kubo, because it takes Kubernetes and says, I'm going to deploy it, but I'm also going to allow you the way we do with Bosch to keep it running, to keep it updated, and to keep it healthy. So that's what we're doing with Canary Updates, everything you can do with Bosch, and then scale it up and down. So Google worked with Pivotal to do this, and it became renamed to CFCR, so Cloud Foundry Container Runtime. Another one is BBR. All of these are not necessarily great demos like Stratos UI, so I'm just going to go through them very quickly. I'll show you CF Local. So that's another demo I can do. So Backup and Restore for CF. The idea is that every single part of your Cloud Foundry installation can actually now be backed up and restored very quickly. And companies like Stock and Wayne actually extended it to add support for their backup and restore, so you can integrate. So now you'll have one way to essentially backup and restore your entire software. And why? It's because shit happens, right? So you've got to be ready for when it happens. You can orchestrate these backup and restore. So very important. CF Local. So instead of going through this, let's just show it to you. So CF Local. So I'll go like this. I downloaded a CF Simple app. It happens to be like a Swisscom app, right? So I have CF Running. And to get... Is this visible even though it's transparent? It's okay. All right. So you can CF, I think, plugins. Repo plugins. There you go. And what that's going to do is it's going to take all the plugins. And if you grab for Local, you'll see that these guys have something called CF Local. So you can then from there, install the plugin. I already did that. You do CF, install plugin, and then you specify that plugin. It downloads it. I think I did... Let's see. Install plugin CF Local, right? So that will download it. So once you have CF Local installed, there's actually not much for you to do. So this is CF Local. And Stephen has this nice little, I guess, GIF that tells you everything. So we'll just go through that and then you can read to it. But part of the idea is that, just like CF Dev, he gives you a local environment and you can do stuff with it, right? So you do have to install Docker for CF Local. In the case of CF Dev, it's a little bit bigger package because it sort of includes everything, so you don't have to do that. You need more memory. So local is a great way for any machine that you have, old or new, to essentially do what I'm going to do right now. So once you have CF Local installed, then... So you say CF Local because it's a plugin, so it adds this new command to the CF CLI. And you can see in there you have tons of different things you can do, right? You can stage, run, export, pull, push your app. The case of export and pull is where you're going to essentially export your app as a droplet and then you can take that app and move it somewhere else, right? So in this case, I just downloaded a simple app from Swisscom and I'm just going to run it, right? So this is, I mean, pretty much I just did git clone for that repo and then I create a simple manifest. I don't even think you need the manifest at this point. I was doing it so I could push it to IBM Cloud. And then from there, from there I can just say CF Local, run, and then I think I have to give it, I have to use the same name that the manifest is using, right? So let's say manifest. So this is the name that I used and then I say, I guess CF Local, run, that name. And then it basically runs it and it gives you a port so I can then just go here and local host, right? And that's the app. It's a pretty straightforward app, but I can guarantee you it works with tons of apps. I've tried it with a more complex app. It also even rebinds your services. So if you are connected to a service, it will rebind that service whether you're running on a cloud or you're running locally. You of course have to have your credentials set and so on. So the point is that this extension alone, I think it's saving tons of time for developers to get their app up and running very quickly the same way you did Docker apps and why people love Docker apps. Now, one thing you didn't see because I already ran it, the first time you run CF Local on an app, it actually goes and creates a Docker image for you. So it's actually going to the whole process of setting it up. And with CF Dev, it's a little bit different, but that's part of the idea. So it completely removes the need for you to have an official CF but keeps everything locally so that you can do very, very quick, rapid iterations and then move it eventually to the cloud. So this is a great example of a tool an extension to CF CLI but also a great user experience to Cloud Foundry, right, in general. So if you see Steven, I would say give him a pat on the back or better buy him a beer or something like that. I don't know if he drinks beer, but maybe, right? Because I think it's a great, great addition especially now with CF Dev. So a couple more things I want to talk about. Service Fabric is an example that SAP submitted. Part of the idea of Service Fabric is you've got tons of services. I know at IBM we have hundreds. How do you manage them? How do you keep them, I guess, the brokers for them if you wanted the broker to be in different IaaS or even in Kubernetes? What's the experience like, right? So I think it's sort of one environment for you to deploy, backup and restore, upgrade and do the lifecycle management of services. And you'll see this actually is a common theme around SAP. They've submitted Service Booker but it's also submitted multi-apps and it's kind of the same thing but instead of services for applications. So a single app, obviously, like I just showed you, is a little toy. Most people using CF or using it seriously, they'll have multiple apps. So when you have multiple apps, how do you deal with it? Right now you can kind of deploy these different pieces by themselves but you want to usually have something much, much better, right? So that's what these guys have done. They've added a way for you to do a better composed lifecycle for multiple apps. I like to look at it as together as one, right? And it's one yaml. So it's a lot more yaml than you had to deal with before but obviously it's solving a problem for you, right? And I think for microservices in particular and this is one feedback that I've given them is to try to integrate with CF networking and other components so that it works much, much better for microservices. So multi-apps is another one you should take a look at. And then finally Stratos UI that I showed you guys. And to finish this, let's do a quick back to the demo. I think I tried this but let's do it live. So in this instance, right, I had the IBM... So I basically created the app but I didn't push it yet so why don't we try to push it? So it said incomplete, right? And you can see this is a view of this app on IBM's cloud. But it's not running yet so maybe we could try to run it. So I can just go here and now it's running on CF local. So imagine I made this really cool app, I was ready to push it. I think I'm already targeted to the IBM cloud and I'm logged in. And I think I'm already also targeted to my... So if we go back here for a second, this is the app. And we need to basically push it. So I'm going to try to push it. So CF push, it's just come up. And what's cool is I'm going to go back to the slide. When we get back, it should hopefully be showing under UI. And this is a complete UI, as I was saying before, for multiple environments. And we can keep adding to it. So that's kind of cool. So very quickly, and I'll finish up, is what's the call to action? So I suggest you go back to your offices and you say, what's a cool project that I have that I want to include into CF? Make sure you have a team, obviously. Ping me on Slack. Let's chat. And we'll follow the process. And respond to comments. And request for a vote, which, as I mentioned, Steven did in two weeks. So it's probably the fastest we've gotten a project in. Stratos was the fastest before, but maybe this one is the second fastest. And then we'll move your code to Cloud Foundry Incubator and participate in monthly meetings. And this is important. We do have monthly meetings. So very quickly, let me show you. This thing is still running. So that's good. So there is something called PMC notes where all the PMCs are pretty much keeping their notes. And if you go there, you'll see in 2018, we skip March because I was on vacation. Well, so I could have tried to keep it, but I had planned my vacation. So anyway, but you see detailed notes about what's going on. Jules has promised me that for future one, he will send me some updates. And you don't have to, as a, once you're in the PMC, the requirement for you to stay there is for you to submit those drum beats. You don't have to call in, but I just need an email from you with the drum beat. So we'll have that. I just wanted to show you that there is a community behind us, okay? All right. Oh, look, it's running. So we can go to the UI, and we should be able to see that it's running, and I'll finish up. So you can see now it's refreshing. So this thing is going to go to green, hopefully, soon. Let's see, updated. There we go. Should be up and running. Still incomplete. And one started. Okay. So maybe I'm finding a little bug here, but this is what happens live, man. It will refresh. I've tried this before. It should go back to being green. Hey, here it is. So it takes a little bit of time. I mean, it's actually, this is a SUSE UI. I mean, obviously it's open source now, connecting to IBM, and also connected to SUSE, and you can connect it to as many things. And you can actually see all the details behind it. It will pull up your stream. You can even do the SSH into the app. Okay, so this is a fantastic extension. I'll tell you this right now and just go try it. All right, so let me close. So what's the philosophy behind what we try to do? As I mentioned to you, if you were in Port of Cloud Foundry three years ago, this is like night and day, right? So what are we trying to do? It's a simple thing, and I'll close with that. I think this is it. It's let a thousand flowers bloom. I really, really, really believe that everybody here is smart, but somebody is smarter than us, and it's not in this world. So we need those smart people to participate. That's it. Because that's the only way we're going to achieve together, right, to make CF the best that it can be. So with that, I'll stop. Thank you. And see if you have maybe one question. I don't know if we have enough time. One minute. So maybe I'll take one question. Yes. I couldn't hear your question. Sorry. So, Jules, you want to come set up? I'm just wondering how many proposals or ideas do you get, like, every month? Yeah, so it's interesting. So it's not necessarily a monthly thing. Sometimes I get, like, you know, like two or three proposals immediately. Like, so for instance, after Summit last time, the SUSE guys were really fantastic. They had tons of ideas, orange ideas. So they come in bunches. But we do have a pipeline, which I didn't get a chance to show you, but I have actually an app that actually keeps track of the pipeline. It's called CF extensions. You can go there and see it. And you can see what's coming. I would say we have about seven also. But as I mentioned at the beginning, you can go as fast or as slow as you want. So sometimes you'll get people that submitted and it's been submitted for almost six months. So that's kind of the track. So what I ask you, everybody, is to ping me. No idea small or big is, I mean, it's big or small enough. If you have an idea, it's interesting. You think it's interesting to you, let's chat. So Jules, come. Thank you.