 members of OpenShift which is sort of a new space for us as a company but my background was IT. I've actually spent about the last decade or so and a bunch of different varying levels of pain IT gigs and so for me I think 2011 has been one of the most interesting years that I've seen in a long time. So how many people just out here I see are familiar with infrastructure as a service if I say that term? Okay good. I don't have to go back too far there but I mean for me looking at the number of cloud services that are out there now and the actual power of them if you look at to the infrastructures of service offerings that are there today whether it's Amazon or IBM or Rackspace they're pretty amazing and if you look at the pressure that's put on IT organizations it's it's a little bit painful I mean these are and myself included came from like rack and stack data centers and now you have these public cloud services that can actually do it better and cheaper with a lot more capability than you probably do it in house and from the IT side that's a little bit painful but from the development side it's pretty cool and so not only are we seeing offerings like infrastructure to service but you're seeing higher level offerings now called platform as a service so there's a bunch of different things out there and the space is just sort of exploding so for us I'll go through two things here of actually what we're doing in open shift and then why we use Ruby and just a little bit of insight to a couple of things that we've done some services that we use just things that we think you know really helped us get the offering to where it is so first though if we talk about there we go so like I said great year right it's actually an exciting year but if you're stuck on the development side this is what I sort of feel like sometimes there's all this power out there there's so much stuff that you can use and yet a lot of times if you're you're sort of held back sometimes by your either internal or just what is actually sustainable in broad so development is it's fun it's fast you want to move as quick as you can but then when you're actually making money or things need to stay and they need to run you get saddled by a lot of the sustainability pain so that is where we hope that platform services actually going to help meet those two groups of something that it can be built on operational standards that are good enough that even your existing IT groups are gonna like it or they're gonna be supportive of it but then it actually lets you as a developer take advantage of all this stuff or at least a lot of this stuff that's out there so really getting the focus back to development so in this under talk a little bit about red hat this is new like most people how many people actually know what red hat is here I see a lot of max which terrifies me okay fantastic I'm a Linux guy so like I'm the one poor guy that's actually running a I think that here I think I saw one other but red hat I mean we're traditionally an operating system company and a middleware system company what a lot of people don't realize is where we really what we really focus on is operational stuff we help keep customers probably the most complicated environments in the world it's what we've done over the last decades we help them get them running we help actually keep those things running whether it's like nasty pushing a rada updates to them or make sure the OS is a bi compatible that's what we've done so we talk about platform as a service for us it's actually taking this stuff that usually I mean these are the big banks of the world stuff that we're working with around it and in sort of the movement of cloud trying to be able to bring that same capability and that same operational power directly to developers so we want to actually have be able to provide a great development experience the best we can but then actually have a carry forward to where it can be a real production environment real down to the point of whether it's you know SLA is around tickets or it's guaranteed that you're going to be able to get patches all the way through the stack from your middleware stack to the OS that's our hope so that's sort of where we come on platform to service so if I look at if anybody here actually has seen a computer use of you this is sold you might be from the like compile your own kernel community and just like a little bit of history of what I look at that we want to take off the plate of developers that was really cool 10 15 years ago but as the expectations of business and the rate at which we're supposed to move and build offering it's gotten a little bit challenging so when you look at where we started because a developer you sure own the whole stack you've got the source for something you actually built your own career if you're like me audio never work video you were pretty lucky like that was a good day for me it was like holy cow like I got this I can actually see a display that was big for me but it was a fun time right you can actually go you know you had complete insight to everything that ran but you had a lot of stuff on your plate once you actually got like a kernel that ran you had given on the hardware of whatever group was using you had to do with provision infrastructure security maintenance a lot of stuff really wasn't sustained most IT groups were grown so fast so that's where Red Hat's traditional model was right we took the whole look we'll deal with the sourcing we'll deal with upstream communities we'll pull together a distribution we'll build it we'll make your run on a whole bunch of hardware audio and videos gonna work for you you know not too many not a high priority for our customers but we certified we do worldwide distribution we did all that stuff and we did the support here in the middle which was good right it is really popular thing that is successful it's nice but there's still a lot of stuff on the place especially if you're a small shop you're an engineer developer you still had infrastructure you still have provisioning you have to do a configuration whether it's CF engine or puppet or you're just changing scripts and prod you had a lot of stuff on your plate and it all sort of takes away from into the day you're trying to develop you're trying to get work done so this is what we're hoping on you know our view when we look at paths it's how much extra stuff can we pull over there to the left and a lot of this has changed fundamentally in the last couple of years with a quality of infrastructure the service offerings that are out there we actually think we can sort of pull to provisioning aspect and the maintenance of that and the hardware aspects now there are a couple things that we have to share in the middle because we can't do all your configuration for that we don't know the apps or those things that security is another tough one of you know we talked a lot of people we can do phenomenal security sort of at the boundary points if your app has like a sequel injection problem like you can't help too much of that so there are some shared things in the middle along with support but the goal is really to let people focus get on development so how can you spend the majority of your day doing the stuff that you like but then actually have a lot of operational capabilities that are offloaded that you can trust in your IT group and your CI or wherever can trust as well so with that this is where my blood pressure spikes and I try to test my eyes on these small screens but I am going to show a quick live demo of actually starting a rack application and make sure you guys can actually see this and what openshift sort is now I'm going to show you from like the geeky command line in our face that's just what I do I'm one of the old like compile my own kernel guys so that's tends to be where I fall but we have web tools and those things as well so what openshift is I mean the past space in general if you know like cloud foundry or heroku or orchestra or php fog slash app fog or engineer the space is exploding it's awesome like we love watching all the stuff that's done here so hopefully some of this will be fairly familiar to this group but I'll go through fast on my my time here so I'm going to do some fancy copying and pasting because I know I can't type when I'm doing a live demo so all of our tools if you actually just install the ruby gym and there's sort of two ways to do it we do do a lot of our p.m. packaging because a lot of our users are actually on the door on this but probably our second users are all on max like this group here is a big 99% there so you just install a ruby jam has client tools and all of our client tools you have to see is RHC dash something when you're actually creating something that openshift it has two parts so one is what we call your domain it's basically pick that thing and the DNS name that's going to be yours that we're going to create all your apps under the second thing is go create all your apps and use them so I'm going to run this this is where we start praying about the wire so talk about what this does so I'm actually creating an application that little dash a that's saying my and the type is going to be a raft application we sort of standardize instead of saying like this is a rails application we try to sort of standardize to the rack tier it lets us run whatever you're going to run underneath that and we'll switch this to actual rails application dash P just a fancy environment way so you guys don't have to see me type my super secure password every time I run these commands but what's happening now it is so this is actually gone out to our cluster of servers it's it reserved your DNS name propagating that DNS name worldwide so if you're in like Asia Pacific might take a little bit longer to get it than if you're over here it's going to wait till that's propagated it's going to give you your URL and this should be running so let's see if I copy this switch over here you guys will see our hello world I gotta do my wireless test there and wireless is down one second I blame this guy over here he's the one that brought me this little wireless of it's been nothing but pain we'll see if my Google tests that's running here but that's a goal right so you now have basically your running raft application that's out there you know magic you didn't have to set up DNS you don't have to set up don't have to worry about it being updated or security rod it comes out for rails or if one of the underlying packages depending on what gyms you pick but we're gonna apply all that stuff to the server we're gonna deal with basically every operational concern we can all these things run on rail so you actually get all like the ABI benefits and those things of running on rail but we have free offerings now for this so you know generally we try to have all of the development use cases available for free so wireless is back so well that awkward silence I will show you the things I have cash so if you go to our sites is open shift our red hat calm that will give you a pretty quick walkthrough of how you can go get a username how you can actually go create this stuff we try what we've actually tried to do is keep these environments as native as possible so if you were to set this up on your laptop and you were gonna run passenger on your laptop or J boss or anything else we want it to be almost identical so we have snapshot tools where you can pull down your code and our goal is you're running the door or on your mac or centos it's gonna be the exact same setup although we do a little multi-homing that you draw on our servers so let's see okay so a couple of things that I'm gonna talk to you guys about is why we use Ruby internally for our so Ruby is one of our big platforms that people actually like it's been really popular in the cloud space but when we started we sort of have this decision of what language are we going to pick to do a lot of our scripting and our orchestration work we went through Python and Ruby we had guys are put pearl in there and bash and we actually standardized from Ruby for a couple of reasons one it it's exploding in the cloud space but to the ecosystem and tools around it have been really impressive for us see if that comes back at all the local wireless seems to be a lot happier today local wireless okay let's have a very nice switch over that that's right reduce my on-stage pain that happens to me on a monthly basis but so let's walk you a couple of things there switch my demo so we actually chose to do all of our development we do have some exceptions like if you pull down pieces of our code you'll see it gets in bash because that's where that lowest level the simplest thing you possibly run in a shell but one of the reasons that we actually chose to standardize on Ruby was the testing capabilities so we've seen a lot of talks already like unit testing those things are are pretty amazing but one of the things that we like was the web testing capabilities and how many people have used Selenium know how many people hate Selenium from like two years ago using Selenium RC have scars from that at least so that was my my world and actually Selenium web driver has come out and Selenium web driver coupled with the headless Ruby gem coupled with things like XBFB and a bunch of other things has been phenomenal for us so hopefully I'll see if I get wireless I'm walking through a big demo of this but I would really recommend checking out Selenium web driver their Ruby bindings are pretty good they're not perfect but for us to actually be able to code and Ruby do our site our site's just a Rails 3 site and then actually do all of our Selenium testing Ruby has been nice now headless I didn't even know about this Ruby gem until about six months or so ago and the reason we use headless is we do a lot of work in the public cloud and for us that actually means you you know you get a little accustomed to like you have X running or you have graphics you know desktop environment running but when you're trying to run Selenium tests in Amazon or in another provider you don't have video you still want to get screenshots you don't want your you know text and fonts look crazy headless is actually simplified standing up a virtual frame buffer environment in a provider like Amazon where it's awesome you can actually now offload your tests run them on Amazon take your screenshots bring them back down to your local laptop and it is about the simplest way to get all that running that link at the bottom I actually have a blog post because I was like I can't get through all the details of stuff but I wanted to show you sort of the basics of what this looks like and then also what we have expanded to so if we look at a what a Selenium web driver headless on the lines who looks like force it's pretty simple I mean it's basically native Ruby looking class where we do have a couple methods like go-to-home but this test is basically our way to check logging in and making sure that it works and that when you actually log out you just read the cookies that things are gone so if you look at a couple of things here the screenshot functionality is there you can actually use draw their driver capability to do things like manipulate cookies and then probably the last line is one of the most powerful ones for us of checking elements via XPath constructs to say okay once I've actually done this this element better be there or better not be there now by the big question is you know like great Matt this was all ten years ago right why do you care about Selenium and web testing and for us it's been really from HTML5 so the ability to like build a standard site you can trust pretty much CSS and those things today but the minute you make the jump into HTML5 and say okay I'm gonna use some native functionality I'm really gonna push the envelope with this your ability to test on Windows as much as like we hate IE it can't look terrible on that and then on Mac and on Safari and on Linux and Chrome your OS and your browser matrix gets really complicated so that was sort of the second thing for us is we started with this and we started in EC2 and EC2 pretty much does Linux stuff well and you can cover Linux and Firefox Linux and Chrome so the second thing we expanded to was using soft labs for Selenium so if you've actually you've got your investment in Selenium you're using web driver you're testing in Ruby it's great you love it but standing up all those different operating systems and different levels and different browsers as a pain so we actually offloaded a lot of that to soft labs which I'll show you internally as well so let me see if wireless and then we'll see if this actually works so soft labs we did have to tweak our Ruby Selenium test a little bit things we loved about it it let us actually keep our tests in Ruby too they deal with the pain of you can actually see this is Windows 2003 and Firefox 36 that is a very thankless job to have a variety of operating systems and a variety of browsers to be able to test on and then they did some really nice stuff which refresh this but you can see this video click on it right now but actually as you run your test they not only do the virtual frame buffer stuff where you can grab screenshots but they'll actually take a video of your entire test but they break down everything that you did so if you're you know if you have a photographic memory you can compare this with that old test they basically everything that you run to break out take screenshots at every point and actually do the video so it is a great expansion if you bought off on Ruby or doing your testing in Ruby you love the web driver stuff you're actually using headless but then you're really tired of trying to stand up like Windows and Windows licenses in EC2 sauce apps is a great next step there so let's see if we can actually get our here we'll save our app is running and slowly but it's loading okay so this is we back up into the demo we created this application as a rack application it's live you guys can go look out in your browser you can tell this is rack by the famous you see your lobster man you can flip it you crash it sorry no that's that's your rack application so that's usually our starting point for our for applications we guys done a rack we have that enjoys this a lot so the next thing we're gonna look at is how we would actually upgrade that to a real application because now I know this is not gonna work so I'm gonna show you guys I can guarantee you it's not gonna finish but we actually use github a ton I like exact presentation yesterday you can go you look at github.com slash open shift a ton of our quick starts for like this plus a bunch of other things are there we're trying to show you two lines of get magic that you run which basically says like take my repo here and make it that repo there and then you get push it and you'll watch you know basically all the gems get downloaded runs so what that is is if I go to my directory and I look at this we can see it's basically just a rack application it's your config are you not too exciting now I'm gonna run these two magic it commands we'll see if it works so this first one is saying okay I want to add a new upstream master to my repository that is going to take repository that I host our github it's good for a little sample apps in the second command says as no get pull recursive any conflicts use what he's got so that what I got and then then it works I'm going to copy over a couple files because this actually uses the push your service to do web service based off so you'll see I copy my credentials over here and then I get commit and I get push so what's gonna happen now is we've actually changed a lot of stuff in this application we've changed the gems that are required because not rack anymore it's actually got to pull down the whole rail stack we pull in gems from the company pusher web sockets company and you basically want to get all up and running so I doubt this is going to finish we'll see how lucky I am but it's gonna push out to the server you basically wait a couple minutes for your gems to get deployed and then that app will be running with a new rails app and I'll actually show you what that app will look like in my kitchens show style replacement because I do this enough that I always know I'll take X amount of pain up on stage but you'll basically see when that command finishes you have a rails application it's pretty neat actually we did this as a JavaScript example of how you can use web sockets push event-driven data from the servers and then receive it on the command line on a web socket and manipulate little JavaScript things so if you start this you look at the debugger you will see pusher events that come down and you'll see the memories there you can do things like memory it'll nicely change but you know that's based on application but it's a nice way to go from simple rack application to I have my fancy rails application one of the nice parts is if you deal purely in Ruby that's good but a lot of us in the IT world we have to deal with Ruby probably some Java there and probably bunch of other things and our goal has been to keep the experience and the lifecycle experience completely consistent so if you're having to deal with Java I still code in them for Java compilation and maven dependencies is all those things happen server-side in the deployment basically the same way I do my Ruby deployments we have a lot of quick starts there up there so the last piece that I know running out of time with this but I want to talk about that's been a challenge for us and we think there's a great project out there that we've liked a lot is a lot of machines to deal with now so one of the good parts about cloud offerings is you can get machines pretty quick and you can get a hundred machines in a second if you want the bad part about it is they're a little bit volatile so I got those that know Amazon like EBS is sort of painful sometimes it just drops off the face of the earth and you have to be able to manage your machines pretty differently than how you would manage them in a data center so for us we actually use the in collective project anyone familiar with that use puppet before so this is something that you wouldn't see if you were using open ship but it's something we use behind the scenes in collective actually uses messaging technology behind the scenes to be able to subscribe do operations do controlled operations on your machines and be able to query them pull fact factor from a factor and it lets us make a lot of decisions like what is the best machine that is in the right state to take an X application we have a lot of machines out there they're changing state all the time our users are very volatile with them and in collective is provided a great messaging based way to actually query that infrastructure real time and then do operations like deployment for it we actually took the in collective back end out and replace it with amqt and Apache keep it instead of stomp which it uses does another thing we loved about it is they're actually they use messaging but they're disconnected enough to where we could replace with a stack they were most comfortable with so with that that's what we do I apologize for the shaky live demo that always hurts my heart a little bit and then the the quick tools I like to creative commons all the pictures creative commons fantastic place to get presentation pictures all the slides done in escape and the fancy stuff and so see that have like a minute any questions or one question sorry yeah so the gyms the gyms are tougher so we actually always keep a rail stack it's pretty much tracks with fedora oh sorry the question was do we do updates to things like rails and to gyms it's been a really challenging space for us because we give users the ability to pick their own gyms and deploy that we do keep an always patched version so in fact there were some CVs that came out with rails recently so we will keep a rail site 3.0.11 I think so we are on this all our PM base every dependency is always updated but you're allowed to deviate from that if you want and if you deviate and you pull the gyms down from Ruby gyms and we have minimal management over that so and it's a mixed bag is how many people use that because people like to use the bleeding edge based gym stuff but one of the nice things is the interpreter itself so we aggressively actually keep the interpreter patch and let's see and all the things below it just you know track with rail. So when you fired up those servers there during the demo were those living on Amazon? Well we host most of what you would see hosted is hosted in Amazon today probably what it's stuff we like to reserve the right to like we'll pick the best hosting that works for us Amazon is really good right now so we we do a mixed bag but most of our end user application space is hosted in Amazon one of the reasons we do that is a lot of services like our yes or other things here there are co-located within Amazon so that's been the preferred user choice of what we spent so far. That's it? Okay thank you guys.