 One of the things I used now is an example of deploying that on OpenShift. OpenShift is a past that's been around for about four years, but we've totally rewritten it in the last year and a half or so, and it's now using Docker. So I'm going to here deploy a Wagtail app, which is a Django app. It's a content management system. I'm going to deploy it with Wagtail front-end and a Postgres database. And I'm going to do it in less than five minutes. We're not going to do it. So Wagtail add project. And it's going to work. I've got a template here which is setting up a lot of stuff for me. I'm going to create a configuration which is going to have a database along with front-end, Postgres. I'll put a password here so it'll make it easier. They had other parameters in there. I could specify things like memory constraints and the like. And that's going to go off and away and start building. So that's off. I've already done it before. So the first thing it's going to do, it needs to build that image. So it's pulled down from the source code. And it's found it's got a requirement text file in there. It's gone off and started installing stuff. And away it will go. And there's not too much strange about the particular repository I pulled down for this with the Django app. Now while that's going because that will take a moment, I'll remind you from my talk yesterday, if you are interested in OpenShift and what we're doing with all the containers, we've got a book. It's available for download for free. The easy way of finding it is if you go on to Google, search for OpenShift for developers free e-book. And I'm running out of battery here. The OpenShift online which we had previously was our public pass. That is still the old version but we've just opened up a developer preview for the new version based on Docker and Kubernetes. If you're interested in trying that out and playing with it, you can request access and we're slowly onboarding people as we ramp that up. So if you want to play with that and if you want to find that one easy because the URL is long, search for OpenShift online developer preview and it's about the third entry. So we go back to here. This is finished building. It installed all of our packages. It also did collect static to get all of the Django static assets together. And that's pushing and hopefully it won't take too much longer. We'll go over here and watch what happens over here. You can see I've got one down here. I did this a moment ago in the previous talk. This talk did go a bit long. So that's finished. It's now pushed and it's going to start that up. It's going to start up two containers. One is Postgres and one is the Django front-end. Now this particular template I've got set up here I'm using some of the functionality in warp drive which I described yesterday to pre-define setup actions and for actually initializing the database which is setting up all the database tables creating the CPU user and so on and things like that. So this is actually going to deploy as an instant app. I'm not actually going to need to go in and do python setup py manage manage.py migrate manually or nor create CPU user. This is going to do it for me. The password I gave it came in via that parameter I did with the add to project page. Of course it wants to take a little long so let's have a look and see what it's doing and it's just waiting. I've managed to hit a new node because this cluster obviously is spread across a whole lot of different machines and it's managed to deploy this to a new node so it's probably currently pulling down that image from the Docker registry which is part of the OpenShift cluster pulling it to that node so it can start it up. Let's go over one around. So in here you can see in the UI all the different builds I've started up for you can go in here, look at the logs and so on. You can look at the configuration. So if I go into the Wagtail one here you can see that there's no environments. Let's try configuration then. I'm on the wrong one. Okay there is no environment. I didn't have an environment for that one. Deployment's finished. So that's that one finished. It's up and running. I've only got one instance here. We've had multiple instances and it automatically below Balanced Cosset has provided me with an all public URL and I can go then I've got a Wagtail site. And I can go over here and log in already because it created that password for me. So let's do something interesting. So upload an image, add a new one. Now one thing about this is that we've support persistent volumes and that's why I've actually managed to be able to put in a database here and also I've uploaded an image there which is requiring persistent storage on the Django front inside. So I've got an image there and I can go there and obviously I can go through that image. Now let's go to something interesting here. Let's go find the pod that has all these things running at this one here. I'm going to delete that pod. So I'll basically just kill my app. If I quickly go over here you'll find that it's noticed that it's already died and it's going off and starting up a new one. It's already started up a new one already. Hopefully if I go back here to my app in a second it's finished coming up. So that's probably taken a little long because it's starting up Postgres as well and I've actually got some of the migrate hooks set up there to actually run this as well and it's actually checking whether the database is there and so on. So when this hopefully comes up pretty quick it has the capability to have persistent storage within the cluster. So if you're using Heroku in the past they don't have that. So if you want a database with Heroku you had to go off and use their separate software as a service Postgres offering as something outside of the product. You couldn't install it yourself. So that's there again. So if I actually go refresh I have my image still there. It's back there because this is the storage. That's it. Then 4% battery and there's lots of other things in the web UI. You can see all the different quotas available. Actually there's one more thing I will like to show you very quickly. Pod will go back to that pod again. I can create a terminal from the web interface into that pod. What am I? I've got one on the database, one on that. So for example I can go in here and go manage.py migrate by myself if I wanted to and well there wasn't anything to run. But because I'm using warp drive that's all actually bundled up in oops, I can spell it right. I still can't spell it right. I hate the editor in this because you go control P and you have to do it twice for some stupid reason. So all that stuff in there is all encapsulated into part of the repository and warp drive allows you to just go warp drive, setup, migrate. But I had it all happening automatically. And that's it. Hopefully it took less than 5 minutes.