 Talk about the building of the open paths and in the booklet it says about VM force and we will tie those two threads together My name is Derek Colson. I work for VMware and the cloud services division We work for a public company and these are forward-looking statements So we get to look at an eye chart So everyone read that as quickly as you possibly can I'll nod like this say I understand what you're talking about then We'll get on to the fun stuff So what is the open paths? What is even a pass? it's a pretty exciting time in terms of a Combination of Ruby as a language and what it's done in cloud computing and Amazon and people like heroku and engine yard and things like that I've done some amazing stuff There's a lot of different opinions on what even a pass is platform as a service or an open pass What we're talking about here is more about an application platform as a service And what I mean by that is is that it's an application delivery platform That favors choice and openness and we're really going to beat on that theme today I think everyone at VMware and the team that I work with Feels really strongly about how we want to position ourselves going forward And I'm interested to hear what you guys have to say about some of the choices. We've made what we want to do though Very similar to what was said by Dave Thomas in the keynote is You have the option to choose DHH just said it just recently a little bit differently But it's the same thing you have the right to choose what you want to do And we're going to talk about that like I said a lot So with all that a what what is it? What is an open pass? The application is a unit of currency So instead of you getting into a position where you say I've got my app running. It's running. It's a rails 3 app It's a Sinatra app I'm ready to go Keep that thought process through the deployment cycle. Don't all sudden stop and go. Oh, I got a follow help desk Tisk help desk ticket I've got to go and make sure I get the right server and the right version of Linux It has right security patches and all I have to follow ticket to get the URL and we've got to get the F5 Going and oh, that's right. We need a database and we need to do this It's the application. That's what you've been working on. That's what you've been sweating over Application is what we're talking about everything else has decided for you everything and You shouldn't care You will and we're going to talk about what that means But you shouldn't care. So what makes it open? And again, this is Very very opinionated on what you're about to see We think multi-framework We don't see in our line of work a lot of enterprise houses or even Generic customers of VMware that are very very in tune with our virtualization products say oh, don't worry about it We're only up x shop We have a lot that favor a lot of different frameworks, but might concentrate on one We just don't see that and again, I think a theme of this whole conference is favorite choice and openness So you want to run a Sinatra app? I love Sinatra. I'm a big fan of Blake's Great. You want to run rails? Of course spring spring is obviously something that VMware Owns and has a lot of interest in especially in the Java Enterprise development community Of course, why not node? Sure scala. I don't care Python. Yeah, I agree with DHH. She's kind of ugly, but sure knock yourself out favor choice multi-framework from day one I Feel very very strongly that you can't bolt this on This has to be something that was written down on the original back of the napkin in the restaurant going Yeah, this would be really cool to build one of these things Here's another one and this one again is also going to be controversial even within VMware multi-cloud There's a past meetup that was sponsored Last night at six o'clock where we had people from engine yard and heroku and VMware was represented there And we heard a lot from the audience talking about when the infrastructure as a service platform bleeds in to the effectiveness of the past and A lot of times for example like with Amazon a lot of times all you can do is throw your hands up and say Yeah, that kind of sucked They had a big hiccup and well, yeah, we kind of look bad for it. We got a black eye Nobody's gonna be perfect. There is no such thing But if you had the ability to say, oh, I didn't like what happened yesterday with my application I'm gonna go over here. I'm gonna target my system over here and I'll deploy my app in about four seconds And I have a flat line in terms of Iops performance We think that's important We think it's not only important. It's something that you guys should want and demand Working for VMware. It says Amazon. Yeah, Amazon choice You should have choice The other choice that we feel very strongly about is the services and the services ecosystem And I think a lot of past providers have done an amazing job And I think we're just kind of following the lead there a little bit There's some things that we're potentially doing different, but you know, I like my sequel great knock yourself out Well, I like postgres. Okay, great knock yourself out It's not our decision in terms of providing a past service to decide what you should do We should help and we should guide But I don't think we should choose for you This is another quick eye chart, but when the slides actually come out you can actually click through on these links and See our CTO Steve here It actually did a pretty good right up on what VMware's position on the open paths and talk specifically about our agreements with sales Force and VM force, which I'll talk a little bit about and also Google Wait there. You're wrong. I want control. I Used to be a server hugger. I'm old. I get it You know, I need to have things like I Need to have access to the web server. You can't write The engine X config as good as I can or Ezra Ken, which everyone probably uses his stuff. I Need access to the app server absolutely. I have to control everything Relax This is a tweak that went by from another Colleague, I always call him dr. Chen Jerry Chen who's here. He says relax They got rid of the horizontal vertical settings years ago They don't exist on TVs anymore and no one really cares anymore, but seriously We understand we get it. We understand that we're living in a complex world We understand that even though we want to do an open path where the application is a unit of currency And that's what you're dealing with. That's not the reality We don't feel that that means that you have to compromise the purity of what you're trying to offer and convention over configuration So we get it we understand we have utopia VMs. We have layer for connectivity the interesting thing is is that apps will bind to them and Then they the utopia VMs will bind to provision services. It's kind of a neat way to say I'm stuck I can't do x for example. I want to run a solar instance to do searching over my database If you look at those last two or the Second to the last bullet points in terms of apps will bind to them Your app understands where it needs to go to get to the solar service that you're running on your own utility VM They the utility VMs will bind to provision services The solar instance understands how to get to the database Which is being totally controlled by your open paths installation to say when someone sticks something in here I'm going to pull it out index it and make sure it's all available So we get it Why do we care? Cloud is about OPEX not capex I was very fortunate enough with some other people that came over to VMware with me to work at Google and It was abundantly clear at Google nobody cares about capex anymore It's all about OPEX. What is your operating cost in terms of moving forward? Paz reduces that I think everyone in this room kind of agrees that at least that is the stated goal And I think there's offerings in the marketplace today that actually do that very very well a Major portion of dollar spend is on the deployment and management of applications So when we say we're switching from capex to OPEX you really want to say well, what dominates the OPEX? There's lots of different answers there, but what we're seeing is a trend towards that is going to dominate you simplify that process Dramatically and what I mean by dramatically is is? Yes, it feels great that you can get your app launched in two weeks when it used to take a month What if it's like three seconds? Storage and computer trending towards zero. I think we all know that and what that means again is it highlights that third bullet deployment and management of your applications will dominate your OPEX spend Paz is supposed to fix this problem. So Paz is trying to fix the deployment and management life cycle Why else do we care? Well speed and agility are really important these days especially when you pull an all-nighter and you've got that app running and you go in the next day and you're like Okay, we're ready to go and again you get hit by that fun little wall sometimes of saying well great Follow your ticket and we're gonna have this thing just ready to go in about two months. It's gonna be exciting and You're just left to moralize you're like you've got to be kidding me. What do you mean? I just spent eight hours last night and we're ready to go All right. Well, yeah, you're right We'll get it down to a couple weeks and we'll be out the door and it'll be great It's not only frustrating sometimes it actually hurts business it hurts you even as an individual software developer of saying I need to get going fast Again, what if it was seconds for any type of app and I've seen this before I just think it's slowly going to become what we all really envision is what if the cloud is really your other computer? And I think a lot of people represent in this room who actually Work in the past industry already do that for example I know a lot of the guys at Heroku that you know They use the cloud as as they're testing and developing and going back and forth And I see that a lot more in terms of even the people that I work closely with on a day-to-day basis But for that to happen a lot of different things have to fall into place Because if it's not as easy and as fast as local development, it's really gonna not not fly so in terms of What do we think is important? Reflecting back on the slide that said about favors openness and choice When we look at what's important is things like SLAs Multiple service providers and what I mean by that is is that I don't want to undergo the hiccup That happens every couple days when I get a noisy neighbor problem Might not be the past provider's fault Might not even be the infrastructure providers for potentially could be a hardware thing. I just want choice I want to be able to pick and choose what I want to do without having to bend over and do unnatural acts to make that choice I want everything I do to be exactly the same no matter where I'm actually trying to push my application For me. This is one of my my pet peeves a lot of my co-workers laugh and say the you know I don't get it yet. I say well One either I'm wrong which is happens a lot or two. It'll just take a little bit longer, but I I call it the light bulb and The light bulb. Yeah, the light bulb and what I mean by that is that I Remember about five or six months ago. I actually went into a Walmart and decided to radically up my capex bend on CFL versus incandescent why Looked at my electric bill. I said what the heck, you know, why am I spending all this money on these lights? Op-ex versus capex Every time you know about six seven years ago. I was worried about what things would cost I was always in computers talking about capex. How much is the server gonna cost? How much is this gonna cost? How much is this gonna cost? Google changed that a lot for me in terms of even internally Google was okay You're gonna have to you know pay this much for the computers up front Then next week it was like well pay us funny money and then but you got to pay us a monthly rate Then it was how many resources do you want? There's this kind of weird bartering system and then pay us every month And as we moved over to VMware Everybody that came into Google said what is capex? I don't even know what you're talking about All I know is is I can get a hundred computers and I just have to pay a monthly bill So framework X versus framework Y and it's like what do you mean? Again, it's the light bulb. How much does it cost to actually do what you're trying to do? How much does it cost you to light the room? What if you could light the room for half the cost? What if lighting the room at half the cost was actually easy if we get into an Op-ex dominated world within cloud computing All right where everything is kind of trending towards zero Eventually, you're gonna have a bill that says my app is generating this and I pay this Economics 101 says either you make the top line go up or you make the bottom line go down In cloud computing if all of a sudden someone came you and said hey, guess what? I can have you light this room for a quarter of the cost and It's not 30 bucks a month. Let's say instead of $5,000 a month. You can do it for $600 a month Very very large companies. Yeah, maybe I don't know tough decision Individuals. Hey, that might be a really good thing The point we're trying to make is is that if the system that you're working on is not favoring open in this in choice You kind of lose out on that So what is VM force? VM force is actually VMware and sales force. It's an open-pads instantiation. That's at salesforce.com Spring and roof frameworks it uses salesforce.com data and services So it's in their data centers, but it's essentially providing everything we're talking about So how does one build one of these things? Again last night at the the Paz media if we talked a lot about These things aren't trivial. They're not, you know, two chef scripts that you run in your MacBook now can do this type of thing The way we actually did it is we have this concept of inner and outer shells and they all ride on top of the infrastructure as a service So IAS essentially gives you CPU network memory disk all those fun things and they're all kind of looking like big blobs The outer shell is the one that for us is actually going to do the creation and orchestration of The IAS we have the concept of a stem cell VM So we can clone these things almost instantaneously and we shoot them a little message saying hey We want you to become one of these and they spin up very very quickly It's in charge of change management So when the Paz is running, it's going to be in our mind. It's a service. It's always in flux It's always changing out from underneath of you But that change can never affect an end user You shouldn't ever have a thing where I didn't touch my app and all of a sudden my app stopped why? So it's a critical critical piece to our architecture of how that's going to work the inner shell is the the piece that runs the core components and In our verbiage and and others you would see it too We have this concept of routers and cloud controllers and execution agents and health managers and services The basic premises of when again some of the first things you write on the back of the napkin That you really just can't bolt this on At least in my opinion The whole system should be self-healing you should be able to shoot anything in the foot hand leg arm Anything except a kill shot, which is you just got you know a nuclear bomb dropped on you The system should heal itself completely It should be horizontally scalable at all levels so those components that don't really mean anything yet until the next slide like routers And cloud controllers and things like that They all should be NY scalable. You should be able to run one to end and you pick in to meet your needs Should utilize distributive state No single point of failure. You can't have a gunshot to the foot take the whole system out This point brings in a lot of pieces favoring the service or a favoring choice on a service provider goes to this bullet point right here, so if we actually want to Make any type of statements about no single point of failure We can't do it running on something that we don't know that they can also guarantee that So the choice of saying I want to layer My software on top of a pass that's layered on top of an is that's layered on a piece of hardware that has 16-way peering four times, you know power redundancy X Y Z needs to be a choice Above all it should be simple and dumb. This is one of my big tenants Distributed systems and cloud-based systems are complex inherently don't try to make them more complex Dumber as you get closer to the core For us messaging is a foundation. We use messaging for addressing component discovery and command and control Jason is our preferred data format of exchange We don't have XML. I don't foresee us ever having XML HTTP or file systems for data transport so as data components are being moved around the system They're either a urn point or there might be an optimization where a file system or another technology can actually make this an easier transition So app basics For us execution is start and stop and that's it And what I mean by that is that when we talk about multi-framework and supporting multi-framework from day one The way we actually Accomplish that is is that by the time the execution agent gets one of these things it sees a start button and a stop button and that's it It doesn't know if it's rails if it's Sinatra if it's node if it's spring if it's rude if it's grails Doesn't know it doesn't care. It knows it has a start button and when it's told to stop it It has a stop button Be cloud ready now This one's tough There's lots of different opinions on what cloud ready means and I'll be frank We don't even think we know exactly what we mean when we say it But if you feel like you have to do unnatural acts and you're not doing stupid things Maybe that pass is not what you want. I Don't think you should be told that if I know how to write my app. I know my QPS will be 10 I can do this all on a single my SQL database. I should be told no no no You actually don't know what you're doing. You need something that will scale because you're gonna be the next Twitter When I come back and say no no no, this is an internal enterprise app Peak 10 QPS if we're lucky my SQL is fine. I have active record. I that's what I want to use But you can't do dumb things I Can't do file read on slash home slash Derek slash stuff slash whatever that runs on my my laptop That doesn't exist in the cloud. I can't do you know event machine start server on port 80 You don't own port 80. Don't worry about it. You know everyone will be able to find you on port 80, but you don't own port 80 So simple things, but they are they do exist I just don't think if you're doing unnatural acts that that's necessarily the concept of what we mean by my cloud ready Here's another one Send us everything and I mean everything I don't understand what your app is supposed to do or how I'm supposed to create a start button unless you do Bundle is good so to speak and what I mean by that is is that bundler is trying to solve many problems with version control And version skew and all this other stuff But it's also trying to Define a way to say for you to run this app. This is all that you need Bundle package is even better though Send us everything how does that not suck remember local development if it's worse than local development. No one's gonna do it So how does that not suck where we're stuck? What the system which you guys are about to see in a second does is You can send us everything And we'll actually do fine with that after about 15 minutes of downloading your 600 megs of whatever But more interestingly is is you can actually send in a fingerprint of everything you're about to send us and We can come back and tell you great have it have it need it need it have it need it have it need it And then you go, okay, great, then I'll just send you whatever I really need What's interesting about that pool is is that that pool is is the fingerprinting is not only just a shawl one But it's a combination of a shawl one size And so it's actually shared globally within the whole pass So if anyone has ever uploaded a rails 3 gem When you bundle everything together and you're like, oh, this is gonna suck. All right, let's push it in you Don't have to send that to us So we get the best of both worlds you actually tell us everything you need to run your app But we want to actually download very many things at all This has been a big issue with us and we've carefully watched bundler both Excel and trip and stumble a little bit in terms of trying to solve this problem But it's a problem that has to be solved. I actually get a kick out of following a Ryan and node and and I've been watching He is TJ right as one of the guys that does the MPM stuff MPM has this magic of it somewhere on your computer and we'll figure it out for you But you don't need to really know about it But when you actually go to take that app and deploy it somewhere else. Yeah, you do And so, you know, that's what one of the things bundler was trying to solve And we think it's a valid problem because we want you to send us absolutely everything It's kind of like the old days where you compile your your C binary against a shared lib Send it to your buddy and he doesn't have it and it just doesn't run Bigger problem newer problem. It's got the cloud world around it So it's actually cooler than it was back in the day, but it's the same problem. So the tools Ruby, you know, the majority of this system is actually built in Ruby We use a lot of event machine messaging as we talked about in terms of a foundation Http, you know simple basic stuff json rack Sinatra thin em Http request So a lot of people when we talk about this say ruby Really ruby you actually are doing systems all programming in ruby Ruby's a great language. It's very very easy to understand. It's well designed A lot of the team feels comfortable in it. They can move very very quickly But more importantly distributed systems architecture has little to do with language choice I'm not saying it doesn't come into play But it has very very little to do with it and if someone says so it's hard to read that but it says walk the other way They don't know what they're talking about but We all want faster ruby. I do I love actually going into 192 and We're following rabbinius and j ruby and all kinds of fun stuff So I want everyone who's involved in that for keep pushing because it's it's great for all of us But again with distributed systems If that's the first recourse in terms of oh, it's because ruby is too slow No So some of the patterns hopefully this rings true to a lot of every you know people in the audience in terms of How you would build a system that's supposed to do all of these kind of neat things It's event-driven. It's non-blocking asynchronous ny scalable Um make no assumptions and what I mean by this simple things like Well, you need to start a first then you can start b Then you can start c Systems should be able to come up in any order at once and she'd be able to self heal itself Automically without intervention. She'd do all those type of things So more on okay, how we built this Components are dynamically discoverable they subscribe to are you there? Anything that comes up Publishes a yep. Hello. I'm here So it doesn't matter which order these things come up in anything can happen Never store central state That becomes your single point of failure And for us health status and state is always available via HDP and so you'll see in a second with monitoring I can Walk into a system. I've never seen before in my life Run one command which will discover every single component running in the system Comes back to me. It says what I am what my version is where my hdp port is and here's what you can get information wise for me So more on the components the routers the routers are these uh dynamic pieces that essentially bind a request that's coming to Food vcloud labs dot com to your app wherever that is These have to run in real time. They have to be able to sustain 100 k per second Changes per second Remember they can come up in any order So you could have 100 000 apps in your cloud paths and you say well, we're running out of bandwidth I want to do it start a new router It's going to get 100 000 messages saying i've got app foo. I've got app bar. I've got app as I've got all this other stuff Cloud controllers are what you use to interface with the system and this is going to be hdp rest We'll talk a little bit more about what that looks like they define the state of the world They define the concept of users apps and services Cloud controllers are special apps so to speak within the paths open paths But they actually talk to the end user through the routers just like all the other apps So again simple and dumb we're not making exceptions for Our system apps so to speak Droplets is a funny little thing we came up with in terms of what we were calling the apps early on Uh And the droplets and apps essentially is this massive execution field of of virtual machines that Have the ability to run your app the cloud controllers actually will figure out where to put your app And then of course your app will actually when it starts itself up The agent that's actually watching that the the app is running correctly will bind it to the router Remember when we talked about being dumb Um The cloud controllers actually figure out who to use by being really dumb They have no assumptions about the state of all the execution agents whatsoever Whenever you ask it to run an app it actually says i need help It sends out a message The message has a small signature on it says this is the shawl one of the app This is kind of the memory that we need this is the other kind of tints or flavors or something like that And the execution agents come back and say okay, I can help you no problem And the cloud controller says great. Thank you very much Here's here's a fingerprint of what I want you to run and go for it What's interesting about being that dumb is that actually does very very interesting things that look smart So if those execution agents are actually spread across Local resources and remote resources So hybrid types scenarios where you have stump stuff that might be on-prem some stuff might be off-prem If you actually watch and visualize what happens the system fills up the local resources first And then it kind of bursts into the overflow capacity on the other machines If you have two overflow capacity Reserves so to speak and one's latency is 70 milliseconds and the other one is 15 milliseconds Again, the visualization fills up everything locally starts spilling over here and starts spilling over here Without us saying oh you have to be cognizant aware that these guys are over here And they might be slower because they're further away Just because we're being dumb we always ask for for help We assume the first person to get back to us is the best fit for being able to do that When we do certain things like hey, we want to make sure that the app's not running next to itself Right because that's a bad thing. You don't want your app to have five instances all running the same vm Again, the the dumb part worked out really well Which is when you get the shell one and it says hey, I want you to run this app here's a signature It knows if it's running it and if it is it delays by some Small amount the message that it sends back So if there's anyone who's better fit to run it they will if no one is available You will eventually respond and the cloud controller will pick you Dumb is good Concept of services apps these days don't exist in a vacuum So they have the concept of services and you know databases and key value stores and all kinds of fun stuff The cloud controllers know about them and can provision them and then they connect up to the application so that they can use them And then there's a concept of health not health of the system itself, but health of your apps Um What I talk about a lot is the cloud controllers are the king of the court. They say what is supposed to be The health manager is the jester that runs around and makes sure that that's it And if it's not he jumps up and down and yells at the king the cloud controller says They're not doing what you told them to do And the cloud controller says oh, well, I'll tell them again. You're supposed to be running four instances. That's not three But all those interactions happen in real time So is any of this real or is this just a really fun talk? Yeah, it is it's real This is a fun eye chart of showing the last diagram in more detail about what is real monitoring Two things about distributed systems that I believe Very very strongly one we've heard a lot about the dumber the better. The other one is monitor everything Figure out what to throw away later We talked a little bit about this so I'll go pretty quick has to be simple Publish who's there everyone responds with a I'm here. This is what I am and this is my end point You pull some results Then you ask again I understand the push versus pull I understand it very very well and push models are obviously applicable in very very large scale system So this could be a push some of those data to me The point being is is that a monitoring system just says other parts of the system shouldn't be able to make any assumptions I shouldn't have to write a 45 line configuration file to deploy a monitoring system in one cloud versus another cloud And that's currently what our monitoring system kind of looks like And one of the pages So what are the interfaces to the system currently we have two we have a command line interface Which is a ruby script which we're about to get friendly with here in a second The other one is we have an sts Which is the spring version of eclipse plug-in that actually does a lot of these things for spring and grails developers Who are near and dear to be mware's heart because of the the relationship with the enterprises that we have This is another eye chart, but this is essentially some of the things you can do with the system you can Push applications you can start stop you can Create and bind services to your app you can scale them up you can scale them down You can map and unmap different URLs so vcloud labs.com is one instantiation of this that Is up it's real we're going to see it here in a second then some of the The people from vmware are here and we're going to start Taking invites talking to people and getting people on the system to actually test it out. So if What you're looking at is interesting and you like it Either come find myself or Vadim or Ezra for more of a demo and if you want to get on the system see Jerry or deco or cillian or carmine and they're all up here in the front Currently vcloud labs is on vcloud express with a partner of ours called terra mark So all the boring stuff is kind of out of the way Do a demo So this is the client That wasn't good That's not good either Bundle. Oh, I know what I need to do. I'm sorry Now we're in business. Sorry about that Rvm is your friend, but sometimes they can bite you So i'm logging to vcloud labs and I can say info and it actually sends you tells me This is how you're logged in. This is your memory usage number of service and apps you're allowed to use I wrote down my little cheat cheat sheet in terms of what I wanted to talk about This is real so vcloud labs.com With our lovely network. It's about 99 milliseconds away. So we'll have to see how this goes So this is a Real simple synod rap. It's kind of hard to see But essentially it says Hello, and it'll tell you where it's running. We can make it a little bit smaller so we can actually see what it's doing So it said, oh, okay. I understand your your synodra application. Is this what you want me to do? I say yes It uploads it It's trying to start it And it's running so if I go now to Food vcloud labs.com If I spell it right So we got hello from the cloud via blah blah blah Hello from ruby conf 2010 lots of exclamation points update foo Hello from ruby conf instances scale up. We talked last night about it's really hard to understand when you want to scale up But once you know you want to how hard is it? So now all of a sudden we've got two of these guys running. That's kind of interesting The network won't let me reload it fast enough So as they're spinning themselves up, we've got more and more that are starting versus running versus all the way up So to start up 100 instances of this. I timed it the other night takes about 10 11 seconds So they're all running now I go all the way back to one network stinks So back to one so in terms of Again talking about you know when you you've decided on your own you want to scale it up Does the system help you do that? How fast is it? How fast can you scale up and down? We talked last night about auto scalability is really really good until you get the bill Because your friend played a trick on you and ran a patchy bench all night long Um But once you've made the decision, you know, how hard is it to do that? Um, so for example, here's a redis application Push, I'll call it r and these are all pretty small apps. So we'll we'll see one that's a bit bigger here in just a second So if I want to test it says nope can't do that That's because it doesn't have a service So what services are available in the system? Currently we have rabbit mysql database and a redis redis is the one I want Create a service of redis and I'm going to bind it to my our app Now suddenly we have redis bound into the application Now if I want to say let's say redis sample Um, I want to go down here and say require H max show one Remember I talked about send us everything We really do fundamentally believe that's what you need to do But if you notice this app has nothing except itself We do have system gems and things like that that that form a default pattern on the system so that If you want to get started you want to do a little world and you want to kind of push things around and I think we have 30 to 40 of the more common system gems including rails 3 rails 2 3 10 All that kind of stuff so you can actually you don't stub your toe on day one But I just added something that I'm pretty sure the system doesn't have and so when I say update art It's actually going to go ahead and do everything that I'm telling it to do it'll send it in It tries to start it and what immediately happens is the system prints out It's harder to see Um That there's a startup log error that says Can't find h max yaw one So if we put in a gem file that says oh my app needs sinatra redis and ruby h mac require h max yaw one When we do this If I go and I say okay Now update my app It's going to pick up that gem file I copied the gem file dot lock so we couldn't all just sit here watch a ruby gems and bundler go along It's going to go ahead and says oh there's a pending thing and it's trying to actually pull in ruby h mac 0.040 And this time it said he couldn't actually find it. It's trying to work on it and things like that That experience is it works it kind of it bubbles along but Bundle package remember in the presentation I said that's that's your friend Put everything in there send us absolutely everything Because if we've ever seen it anytime ever before you actually won't physically upload it Oh, that's not good Sorry, I'll try to make this smaller so we can actually read it. I'll try it again We'll see if it actually works. Nope. I must have typed something wrong In terms of the uh The required stuff. All right, we will move on since it's a live demo In terms of The point was trying to be made Which I failed at but the point was trying to be made is is that we give you a default set of system gems Those will kind of be in flux, but we want to keep them small Sending us everything is the answer so bundle package for rails and snotter and things like that is you know is the answer Um, so what about other stuff? Um Pet clinic is a downloadable jar file that runs grails, which I would imagine not a lot of people here actually run Um But that war file actually comes directly from the internet and uses a database does some cool stuff in terms of putting together a web page Um Remember the unnatural acts. I should be able to just say go ahead and push this app and I'll call it pc for pet clinic Again, the further away you are from the court. It tries to be smarter. So it says, oh, I detected that you were a a grails app Sorry, you can't see that there we go Do you want me to go ahead and do this? I'll go ahead and provision a database on the fly. We will auto bind that into the app So for example with the red is that example I was doing things on my own trying to pull the environment variables that described The service, but if we know what you want to do, we can actually do every all the hard lifting for you If you notice it says uploaded application pet clinic 8k Pet clinic world file is actually about 22 meg big And it says it has started and so now we have A trivial app but getting more complex that was simply downloaded from The spring grails site that now is running on vcloud labs alongside of a sonata app What about rails 3? This is a rails new Put in a little hello from the cloud type stuff and a bundle package Is the steps that we did I'll call it r3 So again, you can see it says rails application is detected But once it actually gets to the execution point within the system running on whichever VM that's going to it just sees a start and a stop button So now this is uploading again. And so the bundle package is All that data is there. You're trying to quote unquote send everything into the cloud But because of the finger fingerprinting stuff, you actually send very very little. So we sent 5k of that app Same thing, but now it's all rails 3 actually vying to a database Going back to the pet clinic, which I know everyone laughs at but One of the interesting things I wanted to show you one is if I do target Remember we talked about VM force just a little bit Essentially, I just said take my Working environment what I'm familiar with my tool set Simply take it from pointing here and point it over here vCloud labs is actually running inside of terramarx facility in miami Sales force is obviously on the west coast. So now some I've just pointed my utility at totally a totally different thing and said, okay Do the exact same thing I just did with this cloud with this cloud So I say, yep, sure that sounds great. URL is obviously going to be different Yes, you're no problem And if the network cooperates with us So it's going to do the exact same thing it does with every single instantiation of the system It's going to unpack everything that you have It's going to fingerprint everything and send the manifest in whoever the cloud is whatever the global resources are It comes back and says great have it needed have it needed We go ahead and send it and now it says now it started on VM force So if now if I do PC Now it's running on a totally different cloud. My experience was exactly the same You have choice We favor openness And the last one I'll do is uh, I'll switch back the target to vCloud labs lack of sleep This is a note app Who here ever has worked with note or deployed a note at? It's kind of cool. Non-blocking sometimes is frustrating, but it's neat in terms of how well it scales um This is the app, which is again kind of hard to see but this one line right here of code Is what we did to get it to run on vCloud labs This is very similar to what hiroku's done In other words, just make the app so it doesn't assume what port is going to run. We'll pass you the port Don't worry about it What's interesting though is is that note is one of the newer frameworks on the scene and already the ability to take this and deploy it into a system that is Totally different than your laptop is one line of code And so now if I actually do a vmc push I'll call it chat So it's actually running and we can do Chat v cloud There's ryan's a chat app Again, we're going to be taking sign up and interest. Please find ezra. I know there's talking a lot of stuff in it and I think we lost a lot of people early on Ping one of us if you want to learn more please talk to some of us if you want to have Access to the system and get signed up for it And I'd be happy to take any questions Well, there's two pieces of that one is a technical question and one is a business Question the business question. I'm going to kind of scoot and direct you over there to the people that know that better than I do The technical question is is though that remember we talked about those inner and outer shells The outer shell essentially takes a pool of resources Now what we currently don't do is we don't Taint the resources based on what we want to put where We're trying to be very, you know, we just say here's all the resources and we're just going to play stuff as we we need to in terms of You know, we need More capacity So for example, the inner shell has a lot of slack capacity on its own So when you deploy an app it feels like it's instant even if you scale to a hundred instances That took like 11 seconds or something like that That's because the inner shell actually has the last tissy built into it where it has a capacity that it's actually running on Underneath of it the the bosh, which is what we call our outer shell It understands the impedance mismatch between what the inner shell thinks its capacity is and as it gets closer to that high watermark and what it actually has and so then it actually says Oh, you're getting close to your capacity. I'm actually going to start spinning up my own capacity and that's in the The way that happens is spinning up VMs cloning VMs and spinning them up And remember we talked about them being stem cells And then if it's you need more app capacity, we shoot a message saying this is what you're going to be And so the system is designed from the ground up to at least achieve this concept of as a user You feel like you have endless capacity. It just keeps coming and it's free and it's it's easy I mean to kick the tires a little world app of the cloud is Push it. Wow, that looks great spin it up to a hundred instances And it's hard to do that on a lot of different systems So we try to do that. Now, of course, there's also the failout of bosh says He's full. I'm full. Somebody's got to order more hardware, right? And so that's the that's the end of the game so to speak Sure Yeah The big thing there is essentially is is that the rules that are being defined for the system itself Might not necessarily apply to your app So the services that we're showing up there were for app consumption So the apps can store that and what happens at that point is with an ecosystem of service providers Is that you can provide the mysql instance that has disaster recovery or high availability Or hourly snapshots or things like that So, you know, it's it's this balance of Not making your app do unnatural things and having the system do the right things for you But when I said no central state, I was actually talking about the the past system itself in terms of anymore Yeah, and it's actually Put into the system now. There's two different ways you can do that One is you can actually do an update and an update will actually start a canary And it'll make sure that the canary is okay, and it'll actually sweep, you know, swap things The other one that we talked a lot about last night in the meetup is If I make a change For the demo, it's fine for me to just say update my app. I think I know what I'm doing Obviously, I don't all the time, but I you know, I think I do and production You wouldn't do that, but it'd be nice if you just said push this app and put it under New app dot internal Dot test dot, you know, me cloud labs dot com, which is vpnable And only accessible inside the company and you look at it and you play with and you say, okay, it's great And what I didn't demo was is that you can then just say map the url Swip them, you know, and you will be guaranteed to never drop a request So you can say, okay, it looks great and you flip it The other thing too is is you can obviously run lots of instances And so the router knows it has lots of choices to actually deliver your request We were only running one instance in that that demo when I was bouncing it up and down Yeah That's a good question. The question was is what are you thinking about around ci development and uh or ci systems in terms of If this looks like a black box The short answer is is that we've actually thought a lot about it We've actually manifested something called code the cloud which we're still working through Which has the concepts of test frameworks and staging frameworks and continuous integration and bug reporting All kind of in conjunction with a system like this Um, and so we're we're working pretty hard on what that feels like and what that looks like The short answer is is that even though app cloud is a black box, uh, I mean, uh, the system is a black box Um, you know, we do have the concept of these utility vm So we understand that there's going to be needs that aren't met by uh, oh, you just worry about your application and its associative services Any others? Thank you