 Well, go. Good. I hope you're here for this talk, a cloud native application management with the Stratos console UI. My name's Neil McDougal. I'm with SUSE. I've only got 10 minutes, so I'll go through this very quickly. Probably won't have time for questions at the end, so if you're interested afterwards, then come find me on the SUSE booth, which is just out on the right-hand side. The bulk of my presentation is going to actually be a demo. I figure it's a bit more interesting than just whizzing through slides. Skip that one. So what is Stratos UI? If you've not been to our booth and talked to anyone from SUSE, it's a management user interface, management tool that allows both developers and administrators to manage their Cloud Foundry deployments. You'll see these from various vendors, I guess. The difference with what we're doing is it's open source. SUSE has an open philosophy. So this is out on GitHub. You can go and try it now. We've got a team building it at SUSE. We're using it for our own needs, but it's extensible and customizable, and we are obviously moving the feature set forward, and it's easy to deploy. So why am I here? Obviously, I want to make aware of this project. I want people in the community to kind of take it, give it a try, give us feedback. If you find bugs, if you have feature suggestions, then let us know. And indeed, if you want to take it, develop it, add your own components, then we'd love to hear from you as well. And I think that's the GitHub URL. One thing we're trying to do, I think, is to propose it as a CF extension so that there's a good open source UI for Cloud Foundry. And we'll keep you posted on that. As I said, give it a try. We've tried to make it flexible and easy to deploy. So you can just CF push it. You can clone the Git repo, do a CF push. If you have a Cloud Foundry instance, and you're good to go, you can deploy it using Bosch. We have a Helm chart, so you can push it into Kubernetes. And if you just want to use Docker locally or Docker you can do that, too. I'm actually going to skip. I've got a ton of slides in case my demo didn't work, which I'm going to skip. And I'll just go straight into the UI. And I'll talk through what we've currently got implemented, which hopefully will give you a better view of what it does if I can switch. So this is the login screen. We authenticate against UAE. Then we only have two roles, so a regular developer and an administrator. There's not much difference with them at the moment. We've tried to build something that's well designed, have a UX team that helps us out. So I've logged in, authenticate against UAE. I've already set this up. If you'd come in to a fresh system, you wouldn't get this view necessarily. The key thing to start off with is what we've called endpoints. So we've tried to pick a generic term. At the moment, this just means Cloud Foundry. But down the line, we might want to use other or manage other kind of services from this UI. So it's kind of kept generic. And you can see here I've got a number of Cloud Foundries already registered and connected to the UI. So an administrator would go in and register a Cloud Foundry. So they would enter the URL and give it a name. So they would use this facility. And then each developer would log in. They can come here and they can connect up to the Cloud Foundries for which they have accounts. They use their credentials to ensure that they get the right level of access to each Cloud Foundry. And I guess one of the kind of differences here, maybe to some other tools you might have seen, is we're allowing you to manage multiple Cloud Foundries through one UI. So it's not a one-to-one mapping here. So I can connect up multiple. And I'll show you an aggregated view in a second. As I said, if I hadn't connected some up, then I can go along, connect, provide my credentials. Other things to notice here is we're working against the Cloud Foundry public API. So as well as a bunch of SUSE's Cloud Foundries here, I've also got Cloud Foundry from another vendor, just trying to show that we're not tied down to anything specific while their own Cloud Foundry always work against the public surface. OK, so as a developer, one of the things I want to do is know a bit about my applications. So one of the key views we have is what we call the application wall or the application view. Here, I get a view across all of my applications. I've already been in here, so if I hit Reset, you'll see I see all of my endpoints or all of my Cloud Foundries. I can't choose an organ of space because that will depend on which Cloud Foundry I've chosen. I can go in and say, hey, well, let me just look at this one. It's filtered down. I could choose a particular org or space. I can sort all that kind of good stuff. I can choose either a grid or a list of you. From the UI also, I can deploy an application. I'll kick this off now because it'll probably take a little while. We currently support deploying either from GitHub or Git URL or also from a local file or folder. So we use the same CF push code that the CLI uses. So we're not doing anything clever here. Well, we are, but we're not doing anything clever as far as the push concerns. So first, I need to choose which Cloud Foundry I want to deploy to. So I'll choose one that will just load the orgs and spaces. Hit Next. As I said, I can either choose a file or folder. So I could browse to a folder and choose a folder or I could drag and drop onto this UI if I wish, if I've got the code locally. Or I can choose a Git project. So let me just choose a sample one I have if I can spell it. Cool. So what it's done is it's gone out to GitHub. It's just fetched a bit of information about that GitHub project, what the current commit is on this branch. I could change the branch if I wish. I'll go ahead and hit Deploy. There'll be a little bit of setup. What that's done in the back end of the UI, we have a go back end and an AngularJS front end. It's cloned that repo. And now it's going through the standard push procedure. And we're streaming the log directly over web sockets in real time. That's going to take a minute, 30 seconds. So let me dive into the app view. So this is the view you see on an application. On the wall I just showed you, you could dive into any app and get this view. You'll see the bubbles here because it's busy staging, and then it will obviously run it. I get a bunch of top level metadata. Close that down. Add a number of tabs, which give me more information about the app. So as I said, log stream. This will stream the log in real time as well. I can see what services are bound to the app. I can also view the service catalog and bind service if I wish. I can create new service instances and all that good stuff, short of time. Let's see. I can look at the app variables. I can manage those, create new ones, delete modify. I can look at the events for an app in terms of what's happened in terms of a push lifecycle or enabling SSH, that kind of stuff. And I can also actually SSH into the app from the browser. So here, because I've been talking long enough, the app's actually come up. There's one running instance. I can see how much disk and memory it's using out of its quota. I can click on this one. That will select that instance. And I should. OK, cool. Get a SSH shell onto that app directly in the browser. So we're using quite a rich X terminal here, so I can do top things like that. I can obviously do a PS, if I could spell. And I can kill my program with a flag. So that will also kill off my SSH session. And in the background, it's already brought up another, although it's bringing up another instance because I've killed that one off. So that's an app. I can also edit it. I can turn off SSH access. I can scale it up, if I wish. If I can find it. There we go. So I could have three instances, and you'll see it'll update. And that should ping. And we see those being created. I can get size. Oh, it's busy at the moment. I get CLI information. I can start, stop. So I could do general app lifecycle operations for here. So that's pretty much what we've got there. Very quickly, I'm running out of time. Cloud Foundry itself. We provide some management of Cloud Foundry. So because I've got three registers in connected, I can go into this view where I get a tile for each. I get some overview information. You can see I'm an admin for the SUSE ones, but not for the other one. I can kind of drill down, get a bunch of metadata about that particular Cloud Foundry. I can see the organizations. We have some read-only views, which give you information about your security groups, your stacks. You'll see I've got the open SUSE stack on this one. You can see the feature flags, that kind of stuff. On the organizations, I can see my orgs. I can drill down into spaces. And when I get to the leaf, I can see my apps, my services, and some routes within those spaces. And from here, I can also create orgs, create spaces. I can manage the user access to those orgs and spaces. So that's pretty much it from a high-level run-through. Running out of time, so let me just finish off. I'll just get through all this. So this is what I showed you. I think the deck will go out, so you'll have screenshots. But obviously, you can check it out yourself. I'll just touch quickly on this at the end. We've tried to build it to be customizable and extensible. So we have a kind of component model. We have a back-end front-end. You can build components that extend either of those. So much of the functionality I showed you in terms of SSH and being able to push, they're all done as components that plug into this UI. You can do branding. You can add in tabs to various places. So if you don't like the SUSE branding, you want to take this UI and use it for your own customers. You can easily create a new theme that removes our branding and push your own in. If you don't like any of the strings, it's fully localized, so you can create your own language pack. You can add languages for whatever new locales your customers may want. Okay, so hopefully that was a quick whiz through what we've done in terms of UI. Open source, please go take a look. Tell your friends. We'd like to get more people involved, either just using it and giving us feedback or helping us to move this forward. That's me. I will be outside if you want to come and speak to me. I'd love to talk to you. Thank you.