 Staccato on OpenStack. So I'm Phil Whelan. I work on a product called Staccato at ActiveState. So ActiveState is known for some products such as enterprise versions of dynamic languages, ActivePearl, ActivePython, etc. and Komodo IDE. But over the past several years we've been working hard on a platform as a service Staccato, which is based on the Cloud Foundry open source project. So what is that? Well the Cloud Foundry open source project is essentially platform as a service or pass. But it's kind of grown so now it's more referred to as pass is just a feature of Cloud Foundry. I prefer the term application platform. So yeah Cloud Foundry supports cloud native applications by default. So Staccato. Staccato as I mentioned runs on OpenStack and you can find that in the Morano App Store. So you can deploy it on OpenStack straight from there. Staccato node. So you can deploy one instance of Staccato or you can deploy many instances of Staccato and wire them all together as a cluster. And Staccato will talk to the OpenStack API and if it gets too full with applications it can actually request that the cluster is actually grown. So Staccato can auto-scale itself. So we also support a cluster connection there. So we also support availability zones. So on OpenStack and many other cloud platforms you have the concept of availability zones. So you have separate network, separate data centers. So Staccato can actually map to those availability zones. I just doesn't like that slide I think. So you can map to those availability zones. So if one availability zone goes down you can distribute the instances to other availability zones. So Cloud Foundry. Some people think it started back in 2009. The Cloud Foundry we know now kind of started in 2011 when VMware announced the open source projects. ActiveState were already working on our own platform as a service at the time. So we jumped straight on Cloud Foundry on day one and then in February the next year we actually released a commercial version of Staccato which was the first commercial release of Cloud Foundry. That was version 1.0 of Staccato. And in 2003 the project moved from VMware to Pivotal and we got version 2 of the Cloud Foundry open source project. So we released a new version of Staccato that was based on that with Docker under the hood. And now in 2015 the projects Cloud Foundry has grown. It's kind of like OpenStack's smaller sibling. There's a large foundation with many people joining up similar to the OpenStack foundation. There's lots of moving pieces now of Cloud Foundry and separate projects. Some of these are taken and pieced together to create different solutions. Last week we just had the CF summit. And yeah, so I'm going to talk a little bit about abstractions. So it's just a generalization. It works in 90% of use cases. So to remove common complexities. So OpenStack is an abstraction of the infrastructure layer. Generally for network, compute and data. Whereas Cloud Foundry, it's more focused on applications. So for developers to develop applications. So we really want developers to be able to focus on what they're good at. And that's writing code. So we don't want to have to give them virtual appliances and get them to install all the system dependencies and build the whole stack. We just want them to focus on the code, build good applications. And then be able to deploy those applications in a very simple way. And in a deterministic way. So here's an example of a deterministic deployment. So I've watched this like 20 times and it's definitely deterministic. So Cloud Foundry. So when you deploy your application, we have this concept of staging. Essentially what that means is we'll take a base Linux container. We'll install a build pack along with your code. And the build pack will run, install everything that your code needs, compile your code, install dependencies, whatever's needed there. And then we take that and that essentially creates a droplet. Or in this case of staccato, you can also push a Docker image. So you can bypass this whole staging process and just deploy a Docker image straight away. So you can take that droplet that you've built and then deploy it as many times as you want across the cluster. And that's a very fast process because the application is already built and ready to run. It just needs to be deployed across the cluster. Okay. So I'm going to give you a demo of staccato. Can I get out of this? Can't get out of my presentation. Okay, one second. Does anyone know how to get a keynote? Is the iPhone plug this and plug it back in? It might have some effects. I can't get out of keynote. I've quit. I tried. Yeah, come on. Okay. Okay, you got the you on demo? You want to try and get me out of there? So folks. So yeah, you can download staccato. Okay, we get there eventually. So staccato is deployed as a virtual appliance. So you can download staccato and run it on your laptop. Or you can fire it up on OpenStack, as I mentioned, or you can fire it up on Amazon web services, wherever you fire it up is exactly the same version of staccato. So this is a cluster up on HP Cloud, which is running on OpenStack. So this is a small cluster of five nodes. And when you you fire up those machines, all the machines have everything you need to run to the cart out so you can wire them all together as a cluster and then switch on and off different roles. So here we've got the controller role that's the cloud controller in in Cloud Foundry. And then we've got some some data services there. The DA is where those droplets are deployed. So in staccato, that's that's darker images are deployed there. So we can go to if you download staccato, you can run it on your laptop and the virtual box VMware. You can go to what we call the App Store, which has got lots of demo applications. So there's a good one here, which is bottle currencies, a Python application that uses a ready database. So when I when I deploy that, I can choose a domain name that to deploy under. So we'll create a sub domain under that. I'll start the application, we can also choose placement zone. So placement zone might be, I might have specific machines that have special hardware, or maybe I want to separate production applications from test applications. So I can do that here. If I wanted to, I could deploy every application on its own set of DA nodes. And DA is basically the virtual machine, whether the application instances run, or those Linux containers. So all the all the logs from every instance of an application are all streamed into a central place. So as a developer, when you when you deploy an application, even if you got hundreds of instances scattered across your cluster, all those logs are going to come back into one place. So this is, as I mentioned, a Python application uses a ready state of base. So when I deployed this, what happened is it pulled it down from GitHub, and then it pushed the code. I actually pulled down a Docker image from Docker Hub. I deployed that provisioned the ready state of base, it banned those two things together. So I've got one instance of that Docker image running in staccato. I can scale it up to two or more, depending on my number of resources. And you'll notice the second instance comes up on a different machine. So staccato or Cloud Foundry in general, deploys those instances between availability zones and machines. So I've got two, two machines here, 232 and 233. So it's deploying them between those. Okay, I'm just going to jump back on to this machine here. Because I had my demo set up. See if it works. I won't be going back into Keynote. Okay, so I've got the same example here. So I can see which machine I'm pointing at. So I'm pointing at my cluster here. And I'm using it's about 117 gigs of RAM on this on this cluster. I can push this. And again, this is the same demo from the command line basically is pulling down from the Docker hub. It will sync that into a distributed Docker registry, which is inside this staccato cluster. So it only needs to pull that down once deploying a Redis database and it's banned those two together. And that all happens in a few seconds. Obviously, I'd already downloaded this. I'd already pushed this Docker image once before, but it still checks with the Docker hub to see if any layer Docker layers have changed. And if they have, it will sync the new ones. So I can then scale this application up. So I can say let's go to 100 instances. So that's going to bring up 100 Docker containers across my cluster. So we can see all those all those instant. We can see all those instances here. So they're all running. And when I go to that application, staccato is low balancing across all those all those Docker images that are scattered across the cluster, across many machines that are all running on on top of OpenStack. So you can see you can deploy deploy applications very quickly, whether you're just pushing code, or whether you're pushing actual Docker images, and then you can provision databases very quickly as well and bind those two together. So I can prove provision many, many databases and bind them all to the same application. And this is this is all running on HP cloud. So this is accessible to anyone. So this could be a production app, you could all access this URL. If you can read that small. And then it's just as easy to free up those resources and delete that application, delete that rat, delete all those Docker images, delete the database in just a couple of seconds. So now all those resources are freed up. And so that's kind of the goal of platform as a service in cloud foundry is is really to iterate very quickly on developing applications. And it's really that layer above OpenStack. So OpenStack is really concentrating on the infrastructure. But we really want to make it really simple for developers to develop code. So it's a very enterprise focus architecture ties in with LDAP or your whatever your authentication system is. So you have organizations, it's a multi standard system and then spaces, you can have users in those spaces that have different roles. So maybe some people can read the logs. Some people can restart the application. In Instacado, we also have concepts of timeline. So you can see things that have happened to different applications. And when they happen, if you want it, you can you can start conversations around those things. You can also see those changes over time. So this application here was scaled up to two instances, and then push some new code. So if I didn't like that new code, I could roll back to this version here. And it's seamlessly phases over from one version to the other. Okay, so is there any questions? Yeah, so the open source project lab foundry doesn't have a web interface. So most vendors will create their own web interface. Any other questions? I think that's my time. And yeah, since we're in Vancouver, we're a Vancouver based company. And yeah, we are hiring. So if anyone in Vancouver is looking for a job, come speak to us. We're the active state booth over there. And a lot of us will also be the Clive Foundry booth. So happy to answer any questions there. Thank you.