 I'm Lloyd DeWolf, I'm the chair of the related open source project track and I'm very happy to introduce John Purir. I've only been part of open stack about a year and when I was trying to get the feel for the community and what was going on I looked at some of the videos from the year before and John played heavily in those videos so I was really excited to see the submission for this talk and the well-received voting that it got from the community on Cloud Foundry and I work for Piston Cloud and when I'm talking to people they're looking for solutions and one of the solutions they're looking for is to get their developers back in-house or to complement what they're doing on the public Clouds and Cloud Foundry is a big part of the solution that we're presenting people and I'm really happy to let John give a more detailed introduction and take it from there. Thank you. Thanks Lloyd. Well good morning everybody. My name is John Purir and we're going to talk a little bit today about not building clouds but actually once you have a cloud what do you do with it? So we're really kind of taking a look at cloud computing from the user's perspective and deployers perspective which is a little bit unique here you know with the with the design summit. So you know who am I? Lloyd gave me a little bit of an introduction. I've been with doing open stack since day one actually before day one led the team that did the original implementation of Swift and we of course I was at Rack Space at the time and we open sourced that as one of the first two projects. Moved from Rack Space, went to HP and stood up the first HP cloud which is an open stack based cloud and about four months ago left HP and went to a company called AppFog. How many people here have heard of AppFog? Okay that's good, good about half or so. So we are a company which focuses on platform as a service and really cross cloud connectivity and that's what we're going to be talking about today is you know how do you build deploy applications you know why is it important to do cross cloud connectivity at the application layer and what you know really what is hybrid cloud and what can it do for us. So what is a hybrid cloud and it's interesting that the you know like all cloud definitions it depends on who you talk to and what their perspective is but typically you know when we talk to folks and they say oh we're gonna stand up a hybrid cloud it's really all about hey I've got I've got a public cloud vendor you know maybe it's Amazon maybe it's one of the open stack installations at Trackspace or HP and I'm standing up I'm either virtualized inside my data center or I'm standing up a private cloud and I want to be able to you know connect the two in a in a logical way you know it's whether moving workloads back and forth so on and so forth and you know so you know up until now it's really been a when people talked about hybrid you know by the core I'm running the core and rent the spikes right so if I need capacity I don't want to you know build out capex that's gonna be sitting there not being used for the majority of time so I'll all you know kind of rent capacity out in the public cloud space and and this really then leads to this situation where when you are an application developer in this environment you get tied to the capabilities of the particular vendor that that you're dealing with you know whether it's the you know the block storage system or the databases available or or you know the other kind of capabilities networking capabilities that that the clouds provide right so we really think about this is kind of a vertical hybrid you know so it's you know typically you'll have your your cloud service provider be the same on both ends right and this is actually interesting because from a logistic standpoint it really is almost the only way to make this go if you know because because of the way that the cloud virtualization and such happens when you start talking about trying to move workloads between clouds if you don't have some sort of compatible infrastructure it's very difficult if not impossible to do so wouldn't it be nice right so a few of you I can see have a little bit of gray in your beard like I do and you remember Java and Java you know kind of like promised to the world right right once run everywhere right and that really resonated with a lot of folks Java's obviously done very well with it but it's right once in Java and run everywhere wouldn't it be nice if we could write once with any language or any runtime and run it everywhere in the cloud and that's what we're talking about today that you know to me that's a true hybrid cloud it doesn't put any onus on the developer to you know code to particular capabilities of a cloud or so on there's a there's a high degree of portability between clouds whether or not they're you know somewhat compatible like two open stack clouds right whether that be two public clouds or a private and public open stack cloud or even between open stack and let's say Amazon right because you know we all have to admit that there are a few applications running on Amazon for those of you who are actually you know running it shops I'll bet you have applications running on Amazon so so we need to you know kind of think about that as we as we move forward once we once we kind of you know get to this right once run everywhere you know it's really then okay now let's operationalize right how do we scale right so I've got a dev test environment and it looks good I put it into production and it's super interesting right I just wrote the next Pinterest right bam everybody in the world comes to my website how do I scale this out you know in an elastic manner right and then you know let's say I start with an application and it's running in my smallest data center it's the next Pinterest boom it gets hit I want to move it to one two three or my bigger dangerous data centers how do I do that right being able to move workloads between clouds and do it in a seamless and easy manner up to this point has been you know a little bit arduous and so wouldn't it be nice if you know with like one click or a single command line you could say hey you know what I'm running in data center a and I want to be running in data center b do it right and this is why you know I'm kind of calling this horizontal hybrid right so it's not necessarily a you know tightly coupled hybrid solution between a single vendor's offerings but it really is you know I can go multi-point I can go from any data center to any data center I can go from any cloud installation to any other cloud installation and that's that's the that's the dream so you know we talked a little bit about cloud bursting right in this you know rent rent the spikes once we can actually move have true workload motion between data centers there's a lot of use cases that that actually get very interesting you know when we talk to customers they they say well here's here's what we do right so you know interesting use case we're doing dev tests in a public cloud because it's economical but this this is a production line of business application that we are going to bring in house how do you do that there's traditional cloud bursting as I said IT folks don't want another data center right so when when people start talking about platform as a service a lot of times you have to understand that this introduces yet another data center right because as I you know pick a past vendor they deploy to us a certain back end and by you know de facto that becomes another data center for me that is not what what folks are looking for what you know what folks are looking for is really this idea of data center consolidation and in order to make that happen you have to be able to in an automated and easily accessible way move your workloads between data centers and really the this idea I mentioned earlier that that folks probably have applications running it out at Amazon it becomes a surprise to a lot of enterprises when they actually do an audit and they find out hey you know we're spending a hundred thousand dollars five hundred thousand dollars a million dollars a year at Amazon and the IT guys don't know what's going on they they they don't know what's out there they don't know what the applications are they don't have insight control and governance over what's going on there and so being able to get your arms wrapped around that is is a good thing and this this multi-cloud deployment really does enable that so the the interesting thing about being able to deploy to a data center and copy the application is it really then allows true kind of high availability for your applications right you know so I can you know I can deploy to let's say vendor a rack space public cloud I can then take the exact same application and deploy it to vendor B whether that be a private or public cloud you know maybe it's HP's public cloud maybe it's a piston enterprise private cloud now I've got this application running in two places at the same time allowing me to then you know either do a HA or DR type failover scenarios etc right and that's you know business continuity is is is critical in cloud applications and then the last point I wanted to make here was you know let's not let the technology dictate how we deploy cloud applications let's let the business tell us what what it needs right so you know a technology driven decision is hey I picked a vendor this is how they tell me to deploy it I then fit my model into that the business telling us saying look you know I may need two or three or four cloud vendors I may need two private cloud vendors hooked up to three public cloud vendors because it makes sense for my business not applicable to everybody but it's an option once you get to the point where you know applications can be moved data can be moved and databases are portable so this this is actually interesting and I've talked to a few a few people in this room about this like I said I've been involved with open stack for a long time and one of the things that I've always been a champion of is this idea that open stack can let a thousand clouds bloom and that we can get to the point where we can do federation across those clouds right so federation you know workload portability being able to have common credentials and authentication systems and so on and so forth so in preparation for this talk I actually went back to the open stack wiki and looked at the the first time it was proposed that we do federation with open stack because it really was one of the the core ideas that we had when we founded the the project to start with right so so if you take a look at this it was January 2011 where I basically posted a proposal around image formats and workload portability and so that's first of all that's a long time ago but the second thing is I'll point out so the status is proposed to the POC how many people here I know what the POC is for open stack not one that's awesome that's a project oversight committee so the project oversight committee turned into the PPB anybody here know what the PPB is okay about three right the project policy board and of course that has now morphed into the various committees and direct directorships for the foundation so the PPB really was the the group of folks that I was a member of that did governance for for open stack in the transition to the foundation anyway that's that's kind of an aside but any so two years ago or so kind of proposed you know kind of standard ways of doing exchange of data between clouds not specifying you know you know hard coding various formats whether it's VHDs or other you know type of virtual appliance formats and then and then really proposing that glance which is our image repository be the central point of control in terms of okay I'm going from cloud a to cloud B I understand what cloud a looks like I understand what cloud B looks like do the transformation of the workload and redeploy it on the new cloud turned out to be a really hard problem almost intractable so we have made great strides and you know a lot of great work has been done I want to call out Dan and the quantum team you know it's breaking out the project to do software defined networking and really dealing with all the issues you know kind of layer two layer three networking issues is really a foundational building block for federating clouds being able to take Keystone with our identity system and our authentication system and layer that over the top of the network topologies is is a step that will you know allow us to get to the point where we can actually have virtual connections between clouds but I'll point out this is still a work in progress we still don't have an end-to-end solution that says deploy an app over here move it over there in a seamless manner and and there's a reason for this and the reason is is that at the infrastructure layer a lot of topology and hardware and data center and networking things bleed through right so you know you've got different hypervisors and networks you got different you know even the the numbers of nicks in boxes is is an issue when you're trying to transform workload definitions between clouds and and then of course you've got slightly different API implementations you know we'd like to say that open stack API is consistent for the most part is some some areas it isn't and then you've got you know different service capabilities right different databases offered over here load balancers offered over there and so trying to hook up the application on the the destination side becomes a real a real issue so what do we do right so if you I love this graphic right because you know if you take a look at you know kind of an enterprise and this IT guy he's got different lines of businesses you know some of them have gone out and they're doing stuff with Amazon and they're happy with that he's got some core LOB applications that might be you know Salesforce and and force.com you know so he's got all these clouds and and there's no real way of managing it this is this is the the key point extending open stack with cloud foundry gets us down the road it and it gets us you know almost all the way to the point where this is a reality and it's interesting because cloud foundry is another open source project it's curated and shepherded by VMware so VMware one of the newest open stack participants I think probably most of you have followed the VMware coming in as a member on the mailing list or elsewhere so you know welcome to VMware to the open stack community it's a it's a Apache to license project it's on GitHub right you can see the the URL right there feel free to download it and play with it take a look at what's going on it's the key thing for us is is that this really provides the infrastructure neutral application environment that we need so you know back to the you know kind of the Java analogy right this is the Java VM right so this is the the container which we're going to put applications in this is going to give us the portability what we need to do is you know essentially port cloud foundry to you know the infrastructure of our choice and then we can move the applications knowing that it's a singular API it's a singular deployment mechanism etc etc right and the thing that another thing that really excites me about this is that there is an API right and it really then you know becomes a de facto standard API for deploying paths and this is important because we've talked about vendor lock-in right so back in the old days it was it was you know the Oracle lock-in like Cole was saying earlier if you were at his presentation right it's like we'll give you everything you just have to trust us right then you know came you know kind of this cloud and and hybrid clouds right and so the cloud vendors will say well there's no vendor lock in right because you use our private stuff or you can use our public stuff right that vertical that vertical cloud are talking about you are still essentially locked into that particular vendor you just have deployment options right so with with the cloud foundry API assuming that you know it's running in a variety of different clouds it really allows not only cloud service provider independence but also past provider independence so I'm talking as an employee of a company that's building a path we want you to use our stuff you know we're very proud of it but at the end of the day if we're not serving your needs go to another vendor who's implementing cloud foundry and it's the same API and literally it's a retarget from app fog to pick your vendor tier three push and now your application is running someplace else so this is I think it's a core thing it's very in line with open stacks philosophy of openness and this is you know true vendor non lock-in because you know within 10 seconds you know you can redeploy your app to another cloud foundry installation so it really pushes vendors like ourselves to do a really good job on user experience and and the customer satisfaction so cloud foundry is this this common runtime it's it's evolving very quickly it's it's younger than open stack by about a year or so so there is though a pretty vibrant ecosystem around it so if you're picking a particular you know pass vendor and they are playing you know they are using cloud foundry like I said you you essentially have a choice of a lot of vendors and it's very easy to move from one vendor to another and the interesting thing without open stack if you take a look at at the all these guys over here I think almost all of them if not all of them are here this week right so you know you can you can talk to you know scaler canonical app fog of course app fog will be at the rack space booth if you want to talk to us right scale and stratus you know they are all here and I'm sure they'd be happy to talk about the you know kind of their implementation of cloud foundry and and then if you take a look at the the top that promise of you know I want to write in the language that which I'm comfortable with I want to not have to do unnatural acts to be multi-cloud I want to be able to have the frameworks that I'm comfortable with you know whether it be you know rails or or Django or or something else and and then that you know the databases and services right my sequel postgres mango you know all of these things should be available and they should be portable this is the part where I talk about why we like cloud foundry this you know from a technical perspective so I spent a lot of time you know with the Swift guys obviously when we were architecting our stuff we've spent a lot of time with the Nova folks and how you know we build you know virtual machine orchestration and control when you take a look at the design of cloud foundry it's very much in that mode right so if you are if you are a enthusiastic open stack supporter you'll be very happy with the design choices and patterns that the folks at VMware and the cloud foundry community have done in building out their paths right so it's it's basically built on a message bus system you've got a variety of different processes that are listening for messages and you know it is it for me if not let it go so on and so forth so loosely coupled if things fail you want them to fail fast and then they'll get re-reinitiated right horizontal scaling is very key if you're actually deploying things that you need to scale out particularly in the areas of application environments right so so we on a very on a weekly basis when we're taking a look at our deployments across the the six public cloud data centers that that we're in today we're watching our application capacity right and if it looks like we're getting into you know 70 80% capacity usage we'll spin up yet another application environment right some place where applications can be targeted takes about 20 minutes right so this you know from an operational standpoint they made it very easy to to control the experience and the topology you know it's like I said it's loosely coupled distributed no single point of failure so HA is an integral design pattern of cloud foundry and it's interesting because if you take a look at this if you take a look at the the health manager right here built into the system is basically a watchdog right and it knows what the system should look like and it's like are you okay are you okay are you okay if it's not okay then the health manager will essentially put a message on the bus saying here's what I'm seeing and then something like the cloud controller can either you know reinitiated an application or do what what is necessary so so that is built in the other thing I'll point out that is really kind of cool is we've had a lot of discussion in Nova around scheduling right those of you who are Nova developers you know every single design summit we've talked about scheduling scheduling whether it be you know cells whether it be you know kind of multi data center deployments or or or whatnot there's a scheduling component inside cloud foundry as well and it'll do things like as we spin up more instances of applications it'll do negative affinity it'll say hey I want to place this this instance of the app in a container of applications that doesn't already have one right so those sorts of things are very important in terms of you know kind of keeping your your applications running keeping your high availability going if something wedges right it's not responsive the it'll be noticed right the health manager will say okay I got a problem essentially you'll shoot that application instance in the head and then of course the system is you know out of out of sync with what's actually happening versus what should be happening and the system will then redeploy that instance so it's a it's a very slick system it works it works very well and you know it's very well designed to be a cloud application platform let's let's take a look at how this this works in in real life so I talked I talked a little bit about I want to write in my application language and runtime that I'm comfortable with right so you take a look this is a graphical console and you'll notice we have Java we've got no PHP Python so you know you know you can have Scala you know any any of the Java based languages and another attribute of Cloud Foundry is very easy to add languages runtimes and services right so extending this to you know the flavor of the day in which I would probably say is go is is very easy right so let's take a node app right and then you'll notice that the the next set of choices is clouds right so at the top we have got six data centers of public clouds three three Amazon data centers are scattered around the world we've got Azure we've got HP's OpenStack installation in Las Vegas we've got rack spaces OpenStack installation in in Dallas and then you'll notice you have choices of private clouds right so you know if you are deploying a Pistons enterprise cloud or rack spaces private cloud or you know any other flavor inside your firewall that will show up and be a target and you as a developer can manipulate that in in exactly the same way that you would manipulate the the public cloud so so we talked a little bit about doing shadow IT so let's put it let's create this application and I'll just give it a random random name here okay so so this is the the way that you essentially create and deploy an application to the cloud and you'll notice that while I've been speaking we've essentially created this application we've packaged it we've taken it out to Amazon's East Coast data center and it's now running so it's as simple as that in terms of getting applications up and running so what if I want to scale it right so here's a slider and let's say I'll take it out to eight instances right so with that operation right there we have now taken an application that we just deployed to Amazon we've created eight instances of it it's been deployed to a variety of application environments sitting behind a load balancer and as a developer I've essentially done nothing to make that happen other than use a system if I want to horizontally scale here's a memory right so I can go from 128 to 256 it makes a memory for this application just like that so I have the ability of both you know going wide or going deep depending upon the load that's being put on this application and the the me as the application developer don't have to worry about that the system can take care of that for me so that's all good right and I think that a lot of you probably seen that sort of thing before here's here's something where it gets a little bit more interesting how many people here have been involved with trying to stand something like a Mongo database up okay well a few okay so I can I can get some some confirmation back here MongoDB so I'm gonna push a button there for those of you who haven't done it it's not necessarily the easiest thing in the world to do you know it takes you know an experienced person you know maybe a day or two to set up a cluster while I've been talking we've just provisioned a Mongo database and we bound it to our application right so with one click we essentially now have an application it's got a Mongo cluster behind it and it's ready for me to then you know develop my schemas and so on and so forth but wait there's more this hasn't actually shown anything about workload portability right it shows how easy it is to deploy and deployment is is is a really cool thing being able to choose where I deploy to it's a very cool thing but what if I this is this is running at Amazon today so we haven't even actually talked about HP's OpenStack cloud or Rackspace's OpenStack cloud and you know let's say we want to get off Amazon right we're only there because we had to be there right because OpenStack didn't exist so I hit the clone button I choose HP's cloud I give it another you know kind of random name and I say clone what's happening right now is all of that application logic all the source code all the data in the file system all the database information and databases are being packaged up so it's it's now exporting the data right and it's moving from Amazon's East Coast data center to HP's data center in Las Vegas not only that we're we're moving from an AWS infrastructure to an OpenStack based infrastructure now think about how difficult that would be if you were doing it by hand right so while we're speaking the app is now done and deployed right and if we take a look at so if you take a look at the upper right upper right up there you can see the infrastructure is now HP's AZ2 in Las Vegas and take a look at the services you'll see there's the Mongo database right so we recreated the Mongo database in the HP data center and now this is running on the other side of the country with one click of a button there's also a command line interface where you can essentially script all of this as well and then let's talk a little bit about you know OpenStack to OpenStack right so we can do the same exact thing and choose rack space you know and we could just as easily have chosen one of those private clouds as well right so if we wanted to move things you know in and out of the firewall we you know we could go from the the private installation of a rack space to the public installation of HP and vice versa and and this will work for any of the clouds that we've put cloud boundary on so take a couple more seconds here to finish that up when I'll point out that at the end of this you know we haven't killed any of the instances that are running so at the end of this you know once this thing starts over in in rack space we have three instances of the exact same application one running in Amazon East Coast one running in Las Vegas on HP and one running in Dallas on rack spaces infrastructure think about high availability think about disaster recovery think about data center consolidation being able to move from one data center to another some of you might might wonder about the Loch Ness monster anybody look at that go what what is that this is what you just saw the demo that seldom seen but often talking about just like the Loch Ness monster so thanks a lot I'll reiterate that the app fog guys you got Chad and and and Jeff right here will be at the rack space booth and I'm around all week I'd love to talk to anybody who's who's interested in what's going on here cloud foundry app fog you want to talk history of OpenStack I'd love to do that as well thank you very much thanks John I'm a believer I really appreciate the company app fog as well because here's a company that when a cloud fund foundry came out put 100% of it behind it and is right up there with VMware for their contributions thank you very much there's only about 10 minutes before the next session in this room so you're running off to another session you got to get there pretty quick thanks