 All right, hi everyone, we're presenting Exosphere. Exosphere is a user-friendly interface for cloud computing. My name is Chris Martin. I'm here with my colleague Julian Pistorius. My background is building and operating cloud infrastructure for researchers with OpenStack and Ceph. Julian's is helping people actually use it to get stuff done. We're taking the whole 10 minutes. So if you have questions, please chat them to us on the Scientific SIG Slack channel. Or on Matrix, there's the channel Exosphere on the matrix.org home server. With that, Julian, take it away. Thanks. So I don't think anybody needs to convince us that researchers want to and need to use cloud computing, elastic compute. Unfortunately, Horizon was not designed for researchers in mind. They have to use advanced virtual networking concepts as these keys when they have to use Horizon. It's not pretty to watch. So we want Exosphere to be the easiest way to create and manage OpenStack resources. And we both work very closely with researchers all the way along product development to ensure that it works well for researchers. Knowing that we can't solve all user interface issues with GUIs, we want to make sure that we get out of the way, allow people to go and use OpenStack directly if we need to. So yeah, also one of our points that we'd like to make easy from the beginning was to make it easy for institutions to create a customized version of Exosphere. And we'll talk about that a little bit later. All right, so now let's jump into the demo. This is Exosphere running in my web browser, trusting you all can see it. There's no magic here. This is just a web application, client-side web application that's talking directly to OpenStack Clouds via a proxy server so that the browser can make secure connections, secure API calls, all the brains, all the code is running right here, on try.exosphere.app. So this is what our login prompt looks like. Just to show you that there's no magic, you enter your Keystone credentials here. We use unscope tokens and application credentials so you don't need to specify a project. We show you a list of all of your projects and you get to multi-select which ones you'd like to log into. You can drop an OpenRC file here. We also support single sign-on with OpenID Connect which we'll show you in a couple minutes. So let's go ahead and launch a server. Actually, first I'll show you that I'm logged in right now to both regions of Jetstream Cloud Indiana University and Texas Advanced Computing Center. I'm also logged into the Nectar Australian Research Cloud and Tombstone Cloud at Cybers which is hosted at University of Arizona. So I'm logged into four different OpenStack providers across three different organizations all in the same user interface. You can manage all of these from the same place. All right, so creating an instance. I'm choosing an Ubuntu 20 and I get to choose a name. Wow, that's a good one, but I'm gonna call this HiPTG. Get to choose a size. You can create a volume-backed server, choose a root disk size. We'll just pick the default for now. I can create more than one server at a time. Let's create two of them. Graphical Desktop Environment, this is a feature in progress now. We've got some advanced options. Gonna skip the operating system updates despite the warning just to make this faster. Choose an SSH key because I have one, but again, that's not needed. User does not need to know anything about SSH key pairs to use Exosphere. We offer a one-click shell terminal in their browser and I'll show you how that works. So these two instances have just been created. They'll take a couple of minutes to deploy, actually four or five minutes. So let's skip ahead to one that's already done. Here's a test instance. We've got no volumes attached, but Exosphere lets you create and attach a volume. We've got this nice terminal. This is provided by software called Apache Guacamole. Basically, it's a terminal in your browser. It supports copy and paste. It supports a few different, it's got a graphical file browser too, which is pretty cool. So you can upload and download files from this interface all in your browser. You don't need to learn about SCP or FTP. We do also expose native SSH for people who want that. You can log in with this password. It's a big, ugly, but hopefully strong password. We expose the console. If you need to troubleshoot, you can actually log in on the console with this password if the instance loses network access or something. We support most of the OpenStack server actions, at least those that we think make sense for most users. And we also show pretty graphs. We have system CPU memory and file system usage. We can see this instance is not doing much at sitting idle, but if it was busy, we would see that it's busy. We would know maybe we need to resize this or look at what's going on. We're just trying to expose these things, make them more obvious to folks who need to use this and get stuff done. Okay, Julian, why don't you talk about our architecture? We'll wait a couple minutes for these to finish deploying. Unmute yourself, Julian. Oh, there we go. So as I mentioned earlier, Exosphere is very easy to deploy because it is entirely a client application. There are no server-side components that is not already provided by OpenStack. We have a couple of simple proxies in order to do Cora's requests with the OpenStack APIs and a user application proxy to have secure, easy access to RStudio, Jupyter Hub, things like that. So it can be hosted on any service that can host static files like GitHub Pages or GateLab. And the Elm has written, sorry, Exosphere has written an Elm, which is a pure, functional, statically-type programming language. It generates HTML and JavaScript. And because of the static-type checker, there are no runtime exceptions, which is very nice for us for a maintainable code base. And yeah, we make it very easy to white-label the application. Sima, who shows the X, there's the JetStream version. And that is just set up by a simple JSON file that contains branding, localization, help resource links, things like that. And I think that's it from me. All right, so a bit about our future plans. This is a glimpse of our roadmap, which you can shape and influence as community members. But what we've got so far is an integration with Data Science workbenches, including Jupyter Hub in RStudio, possibly others, GPU-accelerated streaming desktops, which we will deliver with just one click from the interface. Also using Guacamole, using GPUs at JetStream and other research clouds. Support more of the OpenStack API. There's stuff that we just have to build the buttons that API calls for. So that's just what to do. Community curated recipes for reproducible workflows. We have a bunch of ideas on this. We haven't built anything yet, but we think we understand how other solutions fall short and we think we can help. Supporting containers as first-class objects. So instead of creating an instance to create a container, in the instance, you can just create a container and the plumbing all happens for you. More single sign-on integrations. Like I said, we already do OpenID Connect with the JetStream specific site. You can add your exceed account that way, but we're open to adding more and we're interested to hear what other people use. Enhancements for sensitive and regulated data. This is like ITAR, HIPAA, FERPA type stuff. Just a few tweaks, well, more than tweaks to make to support those. Custom theme builder. So you can already build a custom theme by writing JSON manually. We're also going to build a graphical theme builder so you pick your colors and upload a picture. Finally, workshop specific features. This will be features to help workshop facilitators to mentor participants, help people who might be stuck, help workshop participants have a smoother experience. Okay. Back to Julian for our wrap-up and call to action. So we would like you to try out XSphere yourself. You just whatever open stack you have access to. Engage with us, we'd like you to, we have a very open development process guided by people's needs. We'd like to hear about your community's needs and how we can help researchers. So yeah, thank you very much for this opportunity. Yep, and just so you all know these servers, these instances did finish deploying. So we're about six minutes in. So the demo worked. Probably good to see you guys.