 Hey everybody, this is Grant your friendly OpenShift team member over at Red Hat and today I want to show you how to use the new OpenShift Online Developer Preview running the latest and greatest version of our code If you're not familiar with what we've been working on over the last year or so We have integrated native Docker containers and orchestration with the Kubernetes system to the platform So now you can interact with the platform using Docker and orchestrate everything with Kubernetes So hopefully you have an account for the developer preview version of OpenShift If you don't go ahead and sign up and you can refer to the announcement blog post for a link on how to do that I'll also paste it into the video description in just a bit All right. So the first thing I want to do is show you how to log in to the console and give you a brief tour walkthrough Now I'm doing this not scripted So I just wanted to take a few minutes today and show you guys how to use it once you get your account because it is a Dramatic departure from what you're used to with OpenShift Online And we have millions of applications deployed out to version two of OpenShift Online Which you can get to just go into openshift.com And so as you begin to think about migrating your applications over to our new system Watch this video and I'll give you some tips and tricks So the first thing I want to do is just log in to the developer preview console So to do that, I'm going to go to preview.openshift.com and throw in console at the beginning here Just in case it doesn't redirect me The first thing you're going to notice is that we allow you to off with github That's pretty crazy. Cool. Right and you can see it's open shift online developer preview And if you are like most people you've been waiting for a couple years on this So you're probably pretty excited now that we have this out to to where you can start looking at So i'm going to go ahead and log in with github here It's going to ask me to off put in my github username and my password And i'm typing in real time here and I do have a mechanical keyboard So I apologize if the keys are a little noisy, but that's how you know that i'm actually doing this in real time So the first thing that you're going to be pleased to see is this is indeed open shift online And I don't have any projects yet So the difference between open shift online version two and this new platform Is the inversion two which you're all familiar with we had these concepts of domains or namespaces And now we group everything with a project. So it's just a nice organizational Feature to allow you to group things together. So I don't have one So i'm going to go ahead and create a new project here and the first thing It's going to ask me for is the name of my project. So i'm going to name my project on cap So you're probably wondering what on cap means and that is on container application platform My namespace on open shift v2 open shift online was on paths And now we believe that open shift has progressed Into a a new beast called a container application platform instead of the traditional platform as a service Because you do interact with the platform via containers. It is a platform for managing and orchestrating those You can give a description if you want to I'm just going to say a description and click on create And so now I have a new project created and the first thing it wants to do is ask me to create a new application But before we do that, I'm going to show you just a few other things real quick If I click back on open shift online here I can go back to a project overview page to where I can view all of my projects We can see the one I just created. I can delete this project from here. I can create another new project You're not going to have access To create a new project other than one in the developer preview based on quota A couple other things I want to show you if you click on this question mark right here If you click on about This is where you can Verify the versions that we're running. We're running open shift version 3 2 And we're running kubernetes version 1 2 This is also important because it links to the appropriate command line tool For your operating system now a lot of people like to use the command line That's what I prefer using but I'm going to show you a mix of both And so if you do want to use the command line tool or the cli Just download the correct one here now This is a lot easier than open shift online version 2 because we have switched over to use the go programming language And we provide a single executable for each operating system So we no longer have the dependency on ruby and ssh and all this other stuff that you had to have installed before So you can just download this single executable add it to your path and you're done And then how you authenticate is a little bit different in open shift 3. Everything's token based. Remember We authenticated with github. So how do you actually Authenticate to the platform and if you want to authenticate via the command line tool You can see that it's down here. You can just copy and paste this you can click to show the token I'm not actually going to show it right now But you just copy and paste that into the command line tool All right, so let's go back to our platform here our platform overview and go into my project on container application project And it's this is an empty project right now. So let's go ahead and add something to it now just for simplicity's sake I'm going to add a php application. The process is the same Regardless if you want to use java Ruby python pearl whatever the case may be okay, so let's go ahead and click on add to project And this is where I can select any existing Docker images or builder images that is in the open shift registry the open shift docker registry that's part of the platform And so if I come down here to php I see we have a couple of php images. We have five five five six We have the latest we all hunt also have some samples You can also filter by keyword if you just want to show all the php ones Now what is interesting to know is you're probably wondering well if I use one of these docker images How do I actually get my code into the running container? Since the beauty of this platform is that you don't actually have to write docker build files And or sorry write docker files and run docker builds And copy your code over as you're building the image push that image up to a registry and then Then deploy that container and then worry about orchestration as part of open shift online three We've created a new project called source to image and this is going to simplify your life as a developer so much You're going to absolutely love it. So let me show you how that works. I'm going to use php five six here And it's asking me for a name and I'm going to just call this grant php and check this out right here It's asking for a git repository url. So open shift online three much like the previous version Prefers git as the source code management system to interact with the platform And so if you have your existing code in the git repository It doesn't have to be on github. It can be on git lab, which is another System that I enjoy using it can be in any git repository, right? It doesn't it's not vendor specific So to show this I may I'm going to pop over to my github account real quick because that's what most people are familiar with And I'm going to go my G ship lee repo. Here's a picture of me if you're wondering what I look like here. I'm talking to you I'm going to click on my repository and I have this simple php application that I modified 26 days ago And I'm going to just get the git url for this. I'm going to copy that Pop back over to my open shift console here, and I'm going to paste that in Okay, and I'm going to click on create and bam. That's all there is to it So now under the covers what open shift online three is doing is it's cloning that source code repository And it is making a new docker image on the fly that matches what you need for your application to run So it's taking that php five six base image that's actually running on top of red hat enterprise linux Um And it's going to build your source code if it needs to be built It's going to resolve any dependencies if you have any composer dependencies or maven dependencies or package jason dependencies Whatever the case may be it's going to get this application into a deployable artifact It's then going to layer that on top of the base docker image and create a new one on the fly for you And then deploy that out. Okay, so let's go back to our overview and we can see this actually running here We have a new build running grant php one is running And we can look at the log file directly inside of the console and the web console and I can scroll down You can click on follow over here to see what's going on and down here at the very bottom It's pushing this new image Up to the private registry inside of open ship So it built a new docker image called grant php attacked it as latest and pushing that up And so the build and everything happened now. We're just waiting for it to push this image Up to the internal registry so you can click on stop following there and scroll back up And while i'm in here This is a build so we can look at different areas inside of the build We can see the status is this running. It was started a minute ago It's been running for one minute 36 seconds Now this does take a little bit of time the first time you create this image and we'll see sub subsequent Builds are going to be much faster. You can see where it's putting the image inside of the docker registry And here's the url for that the source type is git the source repo. I pulled from the master branch you can pull from any branch you want My output image is called on cap grant php. That is my outputted docker image And here's my push secret that we needed. No My build actually finished now if we go over to environment if we had any environment variables we could see that logs I showed you events you can kind of get a feel for what's going on At 122 in the afternoon I assigned a build and you can go through and follow the process here It created an image it started they can or started the container and then it created container. Okay So let's go back to our overview And sure enough now my application is running and here is the application overview piece of the web console So I have a service called grant php that was created and I'll go into all of this in more detail in just a second Here is the actual url for my application. It created a default route As it deployed this out via that service that was defined. So i'm gonna go ahead and click on that That's probably what you want to see And you can see this is just a little message. I was testing something earlier So it's going to say this is a change from orion. I was actually looking at the orion ide pretty cool, but we'll get into that in another video And we have my builds completed. I can view the log. I can dismiss the build and right here is my running Application running inside of a docker container that's actually encapsulated inside of a kubernetes pod We can see the image that it's using with the hash how big that image is it turned out to be 175 megs The build that it that is currently deployed the source and the ports that it's listening on Okay, so the first thing I want to show you is how to scale this bad boy up to scale up a Application in open shift online 3 all you do is you click simply click this scale up button And it's going to quickly scale that up to two pods add it to the service and then begin to load balancing So now I have two of these running And if we click on this sure enough the app is still responsive you can scale back down to One if you no longer need that traffic. And so the scaling is very Responsive inside of open shift online 3. It's almost instantaneous. It's so quick. It's phenomenal Now even if you're using java with a jboss enterprise application platform server or a tomcat server The scaling is just as quick even in the uh other programming languages because again It's just scaling a container that it's already built and adding another one So let's start diving in here and see some of the features of open shift online 3 now that we have a simple application Deployed and are able to use it the first thing I want to show you is kind of a manager's dashboard orchestration view Tool, I don't know. I'm a I'm a developer at heart. So I don't really use it that much But you can see that it shows your entire application Inside of a nice little view here. So you can see, you know, what's going where and how things are interconnected And this is the entry point And we have the running application. You can click on it and things will update over here. Here's my pod If I click on this orange thing, this is my service and this is my route So the entry point comes in through the route to the service to the pod Uh back to the replication controller and then a deployment config is hung off of that as well So let me move the pod up here and let's just go back to the overview and um scale Scale up Oops, let's click the wrong button. Let me scale this up to two And once we have the second pod running here, I'll show you that tool again And you can see that now we have Two pods that's actually serviced via the route. Okay, so let me drag a few things around here I'll show you how this is working. Okay So we have an external request coming in Through the route it's going to hit the service, which is the load balancer That load balancer is this is going to serve the route or the traffic to one of these two pods This pod is backed by a replication controller and a deployment config Which defines what the application state should look like makes sense Okay, cool. So let's uh go back over here. We'll scale back down We don't actually need two of these pods running And I want to go into browse and show you a few of the features and different things you can look at Under browse you can look at builds. We already looked at the build as it was happening But I can come in here on the build look at the logs I can also start a new build if I want I'll just you know, click on start build and that's going to follow that Same procedure that it did initially it's going to check for changes in that upstream get repository It's going to build a new image and deploy that out You can also edit the yaml for the build directly inside of the browser If you want to get down into the nitty gritty details of how a build works Maybe you want a different strategy, whatever the case may be it's beyond the scope of this introductory video But you can edit this yaml file directly inside the browser Now do you remember when I told you that the first time takes a little bit longer? I just want to you know prove to you because I know you don't believe me Um, but I was doing it in real time here You can see the first build took one minute 56 seconds and the second build like I promised was much faster It took 22 seconds. Okay, and oh, we um, we just missed it But you could have seen the rolling deployment. So we'll come back and do that again in a little bit So if I click on deployments, I have actually done two deployments that makes sense Right because I did two builds and so I had two specific deployments And so I can go into this deployment and actually look at some of the details on this And you can modify some of these things. Um, you can look at the timeout parameters You can set selectors. You can see what image is deployed what The latest source code is that's been deployed. It also gives you some help if you want to manually deploy Um from the command line now Um down here it you can see that it's deployed one Replica of our latest build it was created a minute ago And it's going to trigger on an image change. So anytime that image changes It's going to make a new rolling deployment Also at this point you can attach persistent storage To your container. That's friggin awesome, right? So if you click on attach Persistent storage, I don't have any persistent volume claims. I would have to add one of those first But I can actually attach Attach persistent storage to my running pod and if that pod goes down and comes back up The storage will still be there. Why is that important? That's important in case you want to I don't know save your data in the database that we're going to attach in a few minutes So any stateful application you want to run on the platform That's how you uh one way that we allow you to do it So you may not be familiar with stateful and stateless and cloud native There's a lot of push going around that you know apps Should be cloud native and cloud native platforms to where you don't actually handle state in your application We uh believe that is It's good to create cloud native based applications if it fits well with your organization But being a large uh company that's been in the Linux space and running applications for many many years for some of the largest customers and clients in the world and companies in the world We realize that most people Don't have The ability to rewrite everything in a stateless cloud native fashion So we took that to heart as we were building this next version of the platform And one of our number one goals or tenets was to allow both stateful and stateless applications And so i'm happy to report that you know if you want to take advantage of docker containers and orchestration with kubernetes And what cloud scale-based computing can provide for you open shift give it a try You know, we keep the user's uh requests in in mind as we're developing this new stuff instead of Trying to um force everyone down a brand new paradigm So enough of a tangent on that let's go back to our browse and look at events This is the full event stream or event log from everything that i've been uh doing today We can see we just started a container right here. You can filter by time Name severity reason all kinds of cool stuff you can look at there We're now going to take a look at pods. These are the pods That i've had now you'll notice you may have thought we'd just have one pod Which is that running container that we just deployed but we actually have three pods And that's because when we run a build we actually run that on the platform itself in another pod So you can actually look at these pods now. They're no longer running As you can see here, um the containers ready is zero out of one on this build two But our actual application is running inside of this pod right here And so if i click on that we can see that it is indeed running. Here's the ip address Here's the node that it's running on which is pretty handy If you ever need that information here's the state And here's the template that that it used just some more Information about it. You can see how much memory it's using it's using 307 out of 512 The off token you can look at environment variables, which i haven't configured any yet You can look at the pod or the logs on the running container inside of the web browser Which is really cool. One of my favorite things to do is click on this terminal here and you can actually Look at You know open up a terminal session on your running container inside of the web browser if you needed to You know just check something out real quick Maybe you wanted to look at the environment variables without having to do it locally on your own system Maybe you're on a different system and you don't have the oc tool installed or whatever the case may be You can just pop right into the web console and take a look at there and then you can look at events just for the running pod Now we'll take a look at routes routes is what exposes my application to the outside world It's what created that url that's available if I click on that. This is my application All right, and so you can modify this or change it If you come in here, you can edit the yaml, you know change the host whatever And create different routes. All right, let's go back to browse services This is the you can think of this as the load balancer. It's kind of the entry point into the application And you can click down and get more details on that as well Look at events and then lastly you can click on storage And you can see that I don't have any persistent volumes to actually claim right now, but this is how you would attach stuff Okay, let's go down to settings real quick and discuss a little bit about quota On open shift online 3 now everyone knows open shift online the public Version of the open shift cloud that we offer has been free of charge for people to use And that's been phenomenal for people for developers to try things out a very low barrier to entry And we are happy to announce that we've included that with open shift online 3 As well in open shift online 2 you were able to create up to 3 containers Each with 512 megs ram And so let's look at what the developer preview has for limits right now For cpu and memory you get up to 2 gigabytes of memory To use and you can specify when you create A container or application how much you want to actually use and then based on the amount of memory That you allocate to a container is how much cpu you actually get I hope that makes sense But you can come in here and you can look at how you're actually using things but the restriction Or the quota for the developer preview is based on memory, which is set at Oh, this is saying 1.3 and up here it's saying 2 so I'll have to dig into that and see which one it actually is Um, and then you can look at how much memory and cpu you're actually using at any point in time Okay, so let's go back to our overview here and let's actually scale this down to zero pods I don't actually want it anymore Um, but that'll leave it running. Let's say I want to do some maintenance on the application And you know, um, I didn't want it to be up while I was doing it I can just scale it down to zero pods when I'm ready to start serving the application again I can just scale it back up to one pod and it'll start handling those requests again Okay, so let's take a look at adding the database So if I click on add the project and let's say I want to add my sql here Um, here's a my sql persistent. Maybe we want to do mongo. Let's see if we have mongo in here and we have mongo db And we should probably have postgres as well Um, yep, sure enough. So let's add this mysql database here And Here you can specify some information. I could have done this on the php one that we deployed as well So here's my memory limit. I can I can say, you know 512 mags I could you know go down to 256 or up to 1.5 gigs. Whatever I want to do um, give it the The name the service name just leave it my sql The minus ql user it'll generate one if it's empty But let's just create one to show how this can work grant my sql And let's give it a password grant my sql And the database name i'm just going to call it grant my sql and the volume capacity This is where you can specify how much disk space You want your application database to actually be able to use So i'm going to click on create and if we go back over We can see that this is going to start spinning this up. Okay So while that's running, let me show you how to make a code change Um to your application. So if I go into My php application And if I look at the builds here We can see let me look at build number two That this is coming from my source repo Of gshipley dot simple php. So let me Pop that open in a browser again And let me copy this um The url to clone clone the repo All right, so i'm going to go to my command line here And let me clear this and I am just going to run a get clone I'm clone that repo down. So now I have it Okay, and so I'm going to go into simple php and I'm going to look at this index file And I'm actually going to say welcome to open shift Online developer preview pretty fancy. We're going to save that. I'm going to commit this Welcome Now there are two ways of doing this Okay, so the first thing I can do is just run a get push And that's going to push it up to my github account and then I'd want to start a build on open shift So let's do that first and you can see I may not have get configured yet for this particular environment. Okay So our source code has been pushed up to github. So now let me switch back over to our project And if I click on the route you can see that it's still the old one That I had in here. So how do we actually deploy this new version? Now the way you do this is you go into your build Just click on that button click on start build and that is going to pull down the most recent source code from github And it's going to create a new docker image on the fly and it's going to Deploy that out. So I want to watch this page right here while it's running It should happen fairly quickly here. Now we have two things here This is our database right here. And this is our php application And this is what I want to show you that rolling deployment So that it pulled that code down built a new docker container watch this. It's deploying that docker container It's in a ready state. So it scales the other one down and then it removes it from the load balancer Awesome like pal bobs your uncle. Look how fancy that was that was pretty cool And so now if I click on this url, we can see that my source code has been updated Welcome to open shift online developer preview. So let me show you another way to do this. Okay Let's go into our build and let's look at our configuration here So on my configuration we support both generic webhooks and github specific webhooks So if you're using gitlab or something like that, you can set a webhook So i'm going to show the url for this github webhook and i'm going to copy that To my clipboard i'm going to go over to my github project and i'm going to look at the settings here And it's been a while. So here it is here settings webhooks. I already have one in here I'm going to delete it. Okay, so I don't have any webhooks. So I want to add one So I click on add payload url paste in what I copied from the open shift Online three uh dashboard and i'm going to disable ssl verification Actually, um, you could probably leave that on if we have a valid security certificate, which I assume we do But maybe no, I don't know and then click on add webhook. Okay So now anytime I make a change to my project We're going to see a build automatically happen. So let's let's uh go to the overview page And i'm going to pop this up and i'm going to make this Command line just a little bit smaller clear the page may vi My index html file again here And maybe we want to echo maybe a line break and say automated Builds, okay And let's save that we're going to get commit Uh build we'll just give that and get push So now we can see Look how quick that was that was awesome as soon as it got up to github It called that trigger inside of open shift and it triggered this new build So we have a new build for running just by me pushing my code over to open shift Um now again, this is going to take about 26 27 seconds Which is pretty phenomenally fast for what we're actually doing under the covers But hold on to your horses ladies and gentlemen because i'm going to show you even faster way in just a second So this build is going to be completed here It's doing that rolling deployment again And now it's scaled down to zero removed it from the load balancer or the service Inside of open shift and now if we click on this we can see That just by pushing my code this was updated Awesome. Okay. So how can we make this faster? Now let's go to the command line And what I want to do is maybe I want to Um, let's open up a new Terminal. No, let's just use this one. So let's do a vi index dot php And let's echo even faster And we're going to save that Now if I just want to copy that directly into my container I can say oc get pods This can give me my pod id which is right here I can do oc r sync And I'm going to say pod And it's been a while since I've done this so let me Actually do a help here just to get the Uh source destination. Okay. So let's do oc r sync source is dot And the destination is going to be our pod id which is grant php and it's hc Oops if I could type here hc And I can't type For hc I still can't type. Okay, and then we're going to send that to We need to get the directory. So let me go into our running pod And open up my terminal and do ls and get a pwd. It's opt at root source So let's do slash opt at root slash source All right. Nope. Maybe that didn't work. I don't know. Let's see. Let's go back and check it And it says even faster. So now you kind of get our flow here if I can make this cleaner me Echo A new break here boom And we'll save that and then r sync it over and then refresh our browser And we can see that I've updated that code in a little time Okay, so that was pretty cool. We're able to quickly deploy the application out with r sync Now I do have another youtube video that shows you how to configure your integrated in Development environment to use the r sync command and in that scenario anytime you press the save button in your ide Or save a file It's automatically r synced over and that's how you get instant gratification with your source code changes on Open shift online three So you can use it as a true development environment. So just google instant gratification open shift And you'll see the video that I made as well as the blog post While we're talking about ide's I do want to show you guys The ide integration that we have so i'm just going to pop open eclipse here And i'm going to click on open shift application and this is going to open the Eclipse j-boss tools and i'm going to select open shift three And my server since you're on the developer preview you can do console.preview.openshift.com And we actually probably need to throw a http on the front there And then we're going to do with oauth and remember we have a tokens now so I can click on retrieve That's going to pop open a little dialogue that's asking me to log in with github And so once I close that I now have that token right inside of there and it's going to oauth over to open shift for me Here's my open shift project on container application Platform I can And this is where I have a decision to make if I had an existing project inside of eclipse I can browse to that project and deploy that over to open shift Otherwise I can select to do like a j-boss PHP image here or you know PHP 5 6 That's what we did before if I click on next it's going to give me a name my php app 2 It's going to ask for my get repo and so let me just copy that over real quick Let me go back to the browser and get the um Repo URL for that Okay, um and let me go back to eclipse paste that in And uh, basically we can configure a web hook build trigger like we did in the web UI I don't actually want to do that click on next and next and set up our service ports Our service port is going to listen on 80 and we can define our pod to listen on 8080 That's how the load balancer works And click on finish and this is actually going to create a new application for me Inside of open shift online 3 all from within eclipse. We can see that it's already created this stuff for me So if I go back over to my Firefox browser and go back to my open shift console And uh, click on overview we can see that we have a new php app running This build was actually all started from inside of eclipse We can look at the log file here and follow it just like we did, you know everything before it's pushing that image over And so this is going to be deployed in just a second And if we go back to eclipse you can see that it actually cloned the repo for me And here it is it opened it in a different editor. Sorry about that Let me click on cancel there. All right um So actually let me go in here and just quick you quickly show you this if I go into uh, look at my project properties And click on builders instead of having you go out to that other video I'll just show you how to do it inside of here. I'm going to click a new one And we want to run a program Click okay And our new builder is going to be called rsync And the location is the location of your oc command line tool So let me get that real quick. I'm just going to pop over here and say which oc And this is going to give me the location of my oc command line tool So just use, you know, whatever location you installed it in and my working directory um, I want that to be My project so I'm going to click okay there Okay Now my arguments we want to pass in Just like we did rsync And then it was the current directory and then our pod id So let's go back to The browser again here and we can get the pod id here right there. It is so I'm going to copy that And we'll go back over to eclipse yet again Paste that in and then a colon and then it was opt at root slash source. I believe that's what it was Click on apply and click okay And let me just make sure that everything's set up. Everything should be good here Environment we need to go to build options and launch in backgrounds and we want this to be Rendering auto builds as well. Click apply. Click. Okay. Click. Okay. All right. So now I have uh Oh operation not permitted. Maybe I'm not authorized So now if I edit this index dot php file I'm gonna close visual studio code Don't know why that popped up Oh, because I don't have a pdt installed. So I'm just gonna open this with the text editor And we can say echo boom And we're going to save that And we can see that it synced over my change go back to my overview page here Click on this. Oh Unexpected in the file. I screwed something up. So let me let's go back to eclipse and and fix that real quick I forgot my Simicola so save that we can see the rsync happening right there go back to Firefox reload and boom. So this is kind of the workflow that you can use. Let me split screen this Um, so you can see this work a little bit faster here And let me open eclipse back up and resize it This will be good. So let's echoes some Breaks here and say automated Deploys I can spell right here And we're just gonna save that so I'm just clicking the save button if I can find it here I'll just use the hotkey And if come over here click refresh Oh, I hit it before the sync happened. We can see automated deploys Oh, but that's still bold. We don't actually want bold Let's turn off bold We'll save that Come over here refresh so you can see that I'm getting instant gratification with that. So that's the eclipse ide integration It's super awesome Especially if you're ide person in the java world, you can do everything Right from inside of the ide. You have an open shift explorer down here where I'm showing you here's my Project on container application platform. You can see everything you have deployed Here's the grant php app. You can actually Do port forwarding you can look at the pod log You got set your oc command line tools. Let me do that real quick Oops wrong one. So let me just browse for it Or actually already have it. So let me just copy this again here So eclipse needs to know where your oc command line tool is to run some of the Um integration. So I'll click okay and then apply and now if I come in here and look at you know, the pod log It'll pop open the pod log inside of the eclipse ide So you can do cool things like port forwarding You look at the properties and do all kinds of stuff inside of the integration All right, so let's see Showed you a bunch of stuff today Um And I don't want this video to get too long But let's just go back over here real quick and I want to Show you one other thing. So we have this mysql Database running right so if we look at this mysql database and we look at this pod We can see that my environment. Here's the environment variables that we have Now what we need to do mysql user password and database if I want to hook this up is go over a two hour Um php pod and let's just you know, look at the environment environment here and grep for mysql You can see that By default when I added the mysql database to my project it added some environment variables um to My uh running deployment config, okay And so what's left for me to do as a user is to just come on to the command line tool here And do oc get dc and it's called grant php. This is my deployment config This is what defines the truth of my running application And I can do oc env and set an environment variable on my ph Excuse me php app and I want to do mysql underscore user equals uh grant mysql Hit enter there So now that deployment config was updated if we go back to the overview You'll see it's actually deploying a new version of my application out And that's because the truth of that application changed It needed that environment variable in order for it to be in a good state and because it wasn't there It went ahead and redeployed it and added that environment variable I hope that makes sense, but you would simply just add those environment variables To your application and then you would connect to it via your code just like you normally would All right, so let's go back to our project if you get tired of a project at any point in time You just click this delete button and it deletes everything in your project And then once you come back and refresh the page you'll have to start over And create a new project again Um, so uh, that's I believe all I wanted to show you today That should be enough to get you started with open shift online 3 and the developer preview state If you have any questions, just let me know. I'm at gshipley on twitter. All right. Thanks guys