 Okay, we're all. We're here. We're seated. We're having the time of our life. Yours is cloud. Nice. Elizabeth has been at every UbeCon I've been to possibly all that there have been, all that there have been. And I told her if she couldn't come to this one, we simply wouldn't hold it. So if you're having a good time, it's because she's here. Elizabeth Crumbuck is really active in the Bay Area local, the local community outreach work for Ubuntu. And really big with Edubuntu. I've learned an awful lot about Edubuntu from the sessions we've had. So now are you set up to go? Hopefully in a moment. Okay, so she's just about ready. Her session is on Ubuntu in the cloud. She's getting herself set up. I feel badly about having run over, so I'm kind of glad that you took a minute to thank you. Thank you very much for that. So with that in mind, please everyone from the outside come on in and take a seat if you'd like. And we're ready for Elizabeth Crumbuck with Ubuntu in the cloud. Alright, so first you'll have to forgive me because I have a really bad cold right now. So I'll do the best I can. And if anyone has any questions, anytime just raise your hand and hopefully I'll see you. Wave. So presentation on Ubuntu in the cloud. It's a little bit about myself. I'm a member of the Ubuntu community council. Richard mentioned I'm pretty active in a bunch of places. Last fall I did a deployment of Edubuntu desktop in Ghana. And I'm also the web and marketing lead for the Zubuntu project. So if you saw my screen earlier, it's Zubuntu that I'm using. And then the community council is one of the two governing bodies of the Ubuntu project. The other one's the tech board. The community council governs things like making sure people have mailing lists and making sure people are abiding by the code of conduct and doing other community related activities. My day job is as an automation and tools engineer at HP. So you'll ignore the fact that I'm using a Dell and a Lenovo for my demonstration. I just started there last month. My role there right now is actually working on the infrastructure for the OpenStack project. So we're making sure all the systems for the infrastructure, people are using Garrett and Jenkins and all the test suites that developers upload their software to. We make sure the servers run for that. And that's not within HP. That's actually the open source project of OpenStack that they have me working on. I'm also on the board of directors for partimist.org. That's a non-profit in the San Francisco Bay area. That's been putting Ubuntu desktops into schools in the area. So we're in, I think, we've been in something like seven or eight schools and right now we've got three solid deployments in the area. I think two in Oakland. And then we've got like a laptop cart that's in another school in San Francisco. So we're sort of in and out of schools because bureaucracy and other things change. People get donations of computer labs and push us to the side and move things around. So we're a pretty dynamic organization. So that's a little bit about myself. My history is before I went to HP, I was a Linux systems administrator for a small tech services provider for about six years. And then, prior to that, I was just a Linux obvious. So first of all, I'm not going to talk about Juju at all. Everyone should go to George's Talk at 12.30 to learn about that. I'm sort of old school Linux to Fedman type person. So I don't use the fancy new crazy thing with the exception of OpenStack. So I'm not going to cover Juju at all, but I'll cover other things in the cloud world. So I'll quickly cover what all these stuff to the service things are just so we're all on the same page as what we're talking about. Then I'll go over some of the options for deploying Ubuntu in the cloud and public options that they're out there. And then running your own Ubuntu based cloud, which I have running on this Lenovo over here. So this is just a little screen thing I got from Wikipedia. You've got all the things around it, the things that connect into the cloud, which is pretty much the Internet. And then you've got things like applications and platforms and different infrastructures, and these are all cloud. So cloud is nebulous. Oh, sorry. So first you've got things like software as a service. That would be your web mail, Mintes and online application for managing finances. You have things like Salesforce, and they also offer infrastructure as a service. That's got a star next to it. But at the core and the basic, it's just software. Platform, I'm sorry, Salesforce offers platform as a service. Platform as a service is where a service is provided that you write your application to. So you might write some Python scripts that hook into Google's App Engine, and that has it run on Google's App Engine platform. Cloudfoundry.com, that's run by VMware, I think. And that's another platform you can write your code to. They also have Cloudfoundry.org, which is an open source project. So you can run your own platform in open source. And then Windows Azure actually has a platform as well that you can write applications to. So that's the platform. But what we're actually going to talk about is infrastructure as a service. You have a couple of options here. One of them is a VPS, virtual private server. And these are pretty much drop-in replacements for your old hardware things. They're pretty much meant to be persistent. You just, instead of having your own hardware, you manage. You switch everything to a VPS. And then you load up your MySQL databases in your Apache, and then you run your website that runs your blog. Pretty much basic translation there. And then Windows has one of these. The Windows Azure service is actually VPS. It's not really dynamic, cloudy stuff. And then I mentioned they also do a platform as a service. And I include them because Canonical highlights them on their website as one of their options for what they offer. Ubuntu on. And then you've got what we think of as the cloud stuff that's like Amazon EC2. So these are less like VPSes because they're meant to be spun up and scaled down and you can deploy lots of them in your applications. You can just put up your blog on an Amazon EC2 instance, but they're really meant to be built around scalability. And Amazon's term is elasticity, less EC2 elastic cloud. And then you've got a company like HP has a cloud, Rackspace has a cloud. And Amazon uses proprietary software on top of, of course they run Linux, but they use a system that they wrote themselves to run their cloud. But HP cloud and Rackspace cloud both run OpenStack, which is an open source project that creates a cloud environment. So actually deploying in the cloud. So we're talking about infrastructure as a service. This is from Canonical's website. They've got all kinds of stuff about cloud. And this is just them being very proud of the fact that Ubuntu is in the cloud. And showing, you know, they've got them on at HP Rackspace. And it's one of the most popular distributions to be deployed there. And they talk more about how wonderful they are. So I mentioned VPSs. I've had a VPS with LinNode for a long time, and that's why I included them specially in this. And as you can see, when you go to launch an instance, LinNode's best mechanism is pretty much through the web interface. If you want to start up a new LinNode, again, you're not deploying tons of them at a time or deploying them every five minutes and killing them again. These are more persistent. So you go through their web interface. You can choose lots of things. But of course Ubuntu is one of the ones that's in the options. Actually, mine runs Debian. Windows Azure. This is fun to see. So you're going to, like, Microsoft's website, right? And then you can install Ubuntu. That's pretty cool. They actually, there's an app to get installable package for managing Windows Azure, which you'll find on a lot of these options. There's command line tools and interfaces that you can run on your desktop to control what's going on in the cloud. So you can have to install it. When I tried doing that, it wanted to remove Network Manager, so I didn't do that. I don't know what's under that. I think it's broken, but it's Windows though. So everyone's probably familiar with Amazon EC2. When I asked the canonical cloud guys, I was like, why isn't 12.10 in this list? And he said, because no one uses this. This is the web interface that no one uses, but it makes better slides. I also asked what the difference is between this one and the one that canonical offers from, I think it's cloud images. I have it on the slide later, dodubuntu.com. And he said the difference is no one uses this one, but it's actually the same image as you'll find. And you'll see here, there's little like tabs here. And you can also upload your own Amazon image if you create your own AMI. You can also search through community images. And if you search through community image for Ubuntu, you'll find like thousands and thousands of results, which is kind of a mess. So canonical put together this AMI locator for EC2. And my computer behaves, I can actually bring it up. I'm using XFD, it's not a panel, they call it. Oh, I'm not online, that's right. So I'm not going to show that. Anyway, it's pretty much just a form and you fill out like what location you want and what image you're searching for. So if you're looking for like the server for 1204, you search in those search terms, so like if you're firing it up on the east coast or whatever. And then you take that ID that you search for in the locator and you put that into the community search thing and then it'll find the image. And that will be the one that's officially sanctioned by canonical and owned by canonical. And you know you're not getting an image that's loaded up with tons of spyware, crazy scary things that you don't want. So yeah, that's the locator. And you can find this, if you go to cloudimages.ubuntu.com there's all kinds of images for lots of different things there. So in addition to the locator, you'll find images for OpenStack and other cloud platforms there. So HP Cloud, pretty similar to LinNode, you'll see there's options for installing Ubuntu. And again, anyone who's using this seriously is probably not using the web interface that HP provides. There's an HP Cloud command line option. And I'm pretty sure you can also use OpenStack commands directly with Nova. Nova is the compute module to deploy and manage your machines. But this makes for a better slide. Then you've got Rackspace Cloud, pretty similar to everything we've seen before. So you've got Ubuntu as an option. And again, you can also... There's a command line tool for Rackspace. And they have, I think they have Nova as a command line option for managing your domains on Linux. But say you don't want to host your stuff in someone else's cloud. We ran into this with a lot of customers at my previous job. They want to run their own cloud. So they want to be able to spin up instances and kill instances and have dev environments and other things. So this was actually before. OpenStack was very big. So we sort of rolled our own OpenStack-ish thing. That was not nearly as cool. But these days, if you want to run cloud on Ubuntu, you want to use OpenStack. Previously, you might have heard of eucalyptus, which is still around and still supported by a few organizations. But OpenStack has a lot of support, which leads me to believe this is the direction it's going in. Of course, HP's paying me to work on OpenStack, and there's a whole bunch of us who are being paid by HP to work on OpenStack. So there's a lot... to work with people from all these companies working on pieces of it. So there's a lot of developer time and effort from a lot of big names. And of course, Rackspace and HP are already using it in their cloud in production. And the foundation, I think, was founded late last year, so they're actually an organization, everything now themselves. So if you actually want to try this out, there is a project called DevStack. One of the really awesome things about OpenStack is it's very modular, and you can use Zen, you can use KVM as the virtualization technology, you can use a bunch of different database backends, you can use tons of different storage backends, so it's very pluggable and very modular, and you can put all kinds of things into it that you want. The problem with that is if you say I want to try OpenStack, you have all these questions, you have all these options, tons of things you can choose from. And that's pretty overwhelming if you just want to check it out and run it and see what it is. So they put together DevStack, which is pretty much this really long script, the stack.sh script. And it goes and does tons of things to install a DevStack option, a DevStack environment with some default options. And it's very easy to get going. These instructions actually do work mostly, so you install Ubuntu, just a server. I'd recommend not doing this just on your desktop. On my machine over here, I've got it booted into its own DevStack environment, or you can boot it into a VM because it defaults to KVM. If you're running a modern system, you've got hardware virtualization, and KVM can run inside KVM, so it actually works in virtualization, which is pretty cool stuff. To install Ubuntu 204, and I usually do all my upgrades and everything to make sure it's the latest, you have to install Git, which this doesn't say, but by the next command, you may know that. So then you Git clone the repository that's got the current DevStack script in it. Once you've got that, you CD into the DevStack directory and then run this script, stack.sh, and I actually downloaded this in case I wouldn't have internet. A kernel virtual machine? Yeah. Yeah, it's a virtualization technology, like, you know, VMWare or Zen or something. Oh, that is not the right one. Git is coming with Ubuntu again. We brought it back. All right, that can go away now. So the stack script only works on Ubuntu. Why is my screen not working? It only works on Ubuntu and Fedora. I think it's Fedora 16. All right, this is not typing right now. Oh, I have a thing in front of me. Thank you. So on their website, you run the stack.sh and it does all kinds of things. It changes your sources.list, it adds users to your machine, it installs tons of packages and starts running all these applications. So on the website, they suggest, why don't you go read the stack.sh while you're waiting? So they have this really nice HTML version of stack.sh, which has the code over on this side, which is, I don't know my right or my left. And then it's got all the comments that's in the stack.sh file down the other side. So you can sort of go along if you're not familiar with shell scripting and figure out what it's doing for all these things. Something else you'll learn by reading the stack.sh script is while DevStack does provide default options for everything, you can also change them. So if you don't want to use KVM or if you don't have virtualization on your hardware, you can instead use Zen. You can change, if you don't want to use MySQL, you can change the database back end that it's using and other things just by setting environmental variables in the shell. And then the stack.sh script will pick those up and install it with those instead. So it's a pretty cool script. It takes forever to run because it's downloading tons of packages. It also detects what version of distro you're using. And while it does detect all these, we haven't actually tested all these. The OpenStack infrastructure team, we just got the Quantal slaves running, I think about two weeks ago to do all the testing for this. So... Yeah, so it's a very interesting script to read if you are interested while you're waiting for this to install. So this is where I get to do my live demo that's totally gonna work. All right, we have the login. So I ran DevStack on my little laptop over here. This is a $250 Lenovo that I got from Frizz. It has virtualization, but it's got like a 1.6 gigahertz processor, which is pretty awesome. It does have 8 gigs of RAM, so it can run virtual machines very slowly. So this is... This web interface here is called Horizon. It's the web interface for OpenStack. So again, I think most people will not use the web interface, but if you're a company who's looking to deploy this for customers, you may want to use the web interface to provide to your customers. You might have seen in my screenshots that Rackspace and HP did not use Horizon as an interface. They sort of wrote their own. I think that's because either Horizon didn't exist or just wasn't mature enough at the time. And also, Horizon's interface is not going to scale very well. It definitely needs a lot of love if anyone's looking to contribute. And I'm pretty sure it runs in Django, so it's a Python. Everything in OpenStack is Python. A lot of things are. So this is the basic administrative screen when you log in. So right now, I don't have anything running, but if I did want to run it, it would only say terminate. Well, that's fun. I can reboot it and see what happens. I think I shut my machine down in a bad state or something. So it's doing a hard reboot. So this is a VM that I set up, and I'll go back to my slides in a couple of minutes to show exactly how I set it up. But it only takes a couple of minutes. Actually, well, this is booting. I can go back to mine. So I logged in, got to my overview page. So what OpenStack comes with, it comes with the CROS image, which is a pretty really basic slim-down image that's sort of built for people testing out stuff on clouds or running on clouds. Just a very simple Linux. Or you can download IMG files in a two-couch format. And this actually UEC images. It's actually the same URL as cloudimages.ubuntu.com. So you just search through the cloudimages directories and say you want to find an IMG file. So you grab the link. This is the link to 1204 server. I'll show you how this in a minute. You bring up the create an image dialog. And then you just put in a name, which is a human readable name that you'll reference later. You put in the image location. So you don't download it. You just grab that URL and put it in here. Horizon will download it for you. And then you tell it what format it is. You give it minimum disk and RAM requirements, which will then later dictate what kind of template you can use for it, whether you want a really tiny VM or a big VM. You have to put in some minimum specs here so that you know which template it's going to work for. And then you can make lots of servers. But first you should set up SSH keys because if you don't set up your SSH keys first, you won't be able to log into any of these awesome servers that you created, and that's not a fun time. So there's a snapshot of something that's already installed, but you can manipulate them, and it saves history and everything. So you're not actually running like an installer or anything. You are just bringing up an image that then it becomes like a persistent thing. So you set up your SSH keys, and then when you go to set up an image, one of the tabs there is access and security, and that's where you select which key pair you wish to use. So during the image deployment, it pops your SSH keys into the image. That's part of the setup. So then you can log in just with your SSH key password. So to launch an image, you can select image from the tab, and I'll show this live in a moment. And then you select which image it is, and it's the image that I would have uploaded just a moment ago. I gave it an instance name, which ends up being its host name. And then a flavor is pretty much like a VPS size, like how much RAM you want to give it and how much other stuff. So this would be if you're on Amazon or something, and you have a free account and they give you a tiny one. So that would be the flavor. The flavor would be tiny. But since I required 8 gigs of space and a gig of RAM, the only one I can use is the custom flavor that I created here that actually meets those requirements. And I'm only launching one, so you can say how many you're going to launch at once. And then once you have it up and running, which it should be in my other window here. Yep, it's running now. You can actually SSH into it. Now it automatically sets up a LAN inside of the machine. So I can't actually access it from this machine directly. So can you see that at all? Okay. So I'm going to SSH into my other machine over here. On the Ubuntu images, the ones you downloaded from the cloud image site, the default user on those images is Ubuntu. And then my address was 10.dir.dir.2. I use passwordless keys. So now it's logged into that image that I just deployed. Now I made that too big, so I can't see it. So you'll see it's not running a whole lot. It's running DHCP client, so it can grab an IP address when it comes up. But other than that, it's pretty much just a very, very basic Slim Ubuntu install. And that's all just running from Ubuntu back now. So you'll see it's running. And you can do other things. So now that it's running, you can pause it or suspend it. I looked up the difference between these the other day. To suspend I think is the one that pretty much makes it go to sleep entirely, and it's like turning it off essentially. And then pause actually keeps it sort of in RAM. Not in RAM, I don't know. It's more alive if you pause it. But you can pretty much manage everything from your instance here in this thing. So I mentioned I'd show how to actually add the image, those screens I had up on the slides. So here you can, if you wanted to create an image, this is a screen where I put up where you name it. And then you put in that URL of wherever you want to download the image file from. So that's creating an instance, an image. And then this is where you can run instances from. The place you set up your SSH keys in is in this access and security section. So I've got a couple SSH keys in here. I've got one for the system itself, and then when I was testing it I was doing it at my computer at home. So this is where you would import a key pair. So if you've already created an SSH key on your desktop, you can name it, which is a human readable name, and then you just put in your public key in this section. And then when you go to create your image you'll just tell it which key you want to use. That's pretty much Horizon and launching a VM with OpenStack or DevStack. But DevStack is pretty much for developers and it's also sort of for testing. So it's not actually the thing you're going to run in production for your customers or your boss or whoever. So it's a really good learning environment. I suggest if you want to change some of the things and then change some of the environment variables, maybe load it up with a different virtualization technology. But pretty much DevStack is just a really great place to learn. Also to develop on if you want to help the OpenStack project, if you find a bug or anything. You can find it on DevStack and run all kinds of test suites against it and all kinds of fun stuff. And also you have to figure out what all these things mean, what the heck is Nova. So I put this on my monitor so I would remember what they all are. So they have all these great... I mentioned Horizon is sort of that dashboard. Keystone is identity management so you can manage the administrative users in the Horizon dashboard and it also manages the permissions on the command line. Yeah, I believe so. So a lot of people just run it on laptops for testing. I believe since you can define storage backends and stuff, you can make it larger. So if you define a different storage back end, like say it's using iSCSI or something, you can put it on multiple, but it's meant to be so people can use it on one machine because that's what most of us have for testing. Yeah. No, that's what we're trying. I haven't done it. I've used KBM actually for DevStack before. The documentation also... Oh, sure. That's a good question. I think you have to assume a trusted source. Downloads can get corrupt anyway in the download process, so it doesn't do an MD5 check. So that's a good question. Yeah, so doing it through the dashboard is just pretty much like the easy way to do it. You can actually download image files and just drop them into the directory that DevStack looks in for images and configure it from there. So you can do your own MD5 file without using the clicky interface. You can just download it, run MD5, I'll come on it and verify it yourself. There may be tools out there that people are using, but I'm not sure. Oh, sure. Sorry to... Like a desktop... Oh, another node doing a Nova compute with DevStack. I'm not sure, actually. Yeah, you might be able to, but the script itself is pretty simple. I don't know. That's a good question looking. You might be able to. Since compute Nova is just another piece of it, it may be possible to swap that out. Yeah. So some notes about running this OpenStack thing with Ubuntu. This is my favorite picture in the world. It's from the Ubuntu server team. This is actually from when they were doing planning. If you're running 1204, the LTS version, all the other running servers are doing, if you apt-get install OpenStack on that, you're going to get OpenStack Essex, because that's the release that came out right before Ubuntu. DevStack releases track Ubuntu, excuse me, pretty closely, and that's mostly because a lot of the developers who were starting out with OpenStack were using Ubuntu, and it's been fun in this new job seeing how many people have come from canonical to come to work on OpenStack, so there's a lot of Ubuntu people involved. So that's why Ubuntu was the original platform. It does support Fedora now, and we're about to start spinning up some Red Hat slaves once we figure out licensing. So OpenStack makes their release about a month before the next Ubuntu release comes out. So Essex came out right before the 1204 version of Ubuntu, but since they wanted people to be able to upgrade to new versions, Canonical maintains the Ubuntu Cloud Archive, which allows you to upgrade to newer versions newer and tested versions of OpenStack while still running 1204. So you can see right now if you install the Ubuntu Cloud Archive repository, you can install OpenStack Folsom, and soon you'll be able to install Grizzly once that's released, and then in the fall you'll be able to install Havana on your old 1204 machine. But the non-LPS versions, so 1210, if you have to install OpenStack, and it comes with the Folsom version. In 1304, if you have to install OpenStack, you will get a Grizzly version of OpenStack which will have come out just before that. So this is a pretty good guide for working if you're looking to use OpenStack. Only Ubuntu and if you're using the LTS, you have options there. And that's pretty much all I had. More questions? So if you're going to 1304, 1304 is not a long-term support release. It's not an LTS. So that one's actually more of a complicated one. You have to go to 1210 and then go to 1304. So it's not a very smooth process. The next LTS is 1304, and you should be able to upgrade 1204 to 1304. And they usually have all the things worked out for that by the .1 release of the LTS. That's when they start prompting people to do the upgrades. And then it's a pretty smooth process. As far as OpenStack goes, if you're upgrading using the cloud archive all along, then you will eventually get to the same version that the next LTS is using. So that should go pretty smoothly, but we haven't actually gone into a release cycle where that has happened yet, because OpenStack is not that old as far as LTS-LTS timing goes. I don't know. I think it's a bit of both. I mean, they're using HP Cloud now, and HP Cloud is actually using a much older version of OpenStack that they modified, and now they're like, oh, no, now we can't upgrade. And so I think they got into a position where they said, you know, we need to be part of the process and sort of be involved in the development of this thing because we don't want to have to patch our own thing all the time, you know, sort of the standard thing that companies get themselves into when they take open source stuff and mess with it themselves. So I think part of it is them just being practical and wanting to be involved so that they, the product that is released just that you can just do a get pull and they've got their product right away without too much nothing with it. It is also important that they're showing a good face in the community. I mean, they're one of the sponsors that can get this conference, and this talk I'm giving here is actually sort of personal. Like, I'm doing this for myself, but they've paid me to come here, so they're supporting the work that open-sourced people do. Yeah, I mean, it sort of depends on what you want. Currently, HP has a free version, so you could try it out. Linno doesn't have like a free version, whereas Amazon has free versions too. I think, I don't, I signed up for all of these, but Windows Azure has a free one, that doesn't use OpenSec. I don't think Rackspace has a free one, I have to check on that. I don't think I actually spun up an instance on Rackspace to test. But if you did want to try it out, yeah, HP has like free for 30 days, I think, or something. Amazon's free for a year, with really small instances. Linno has the money back guarantee, but there's not a free version. But it is month to month. And that's another thing. The pricing models for these vary a lot. When you're buying a VPS, you typically pay monthly. When you're spinning up instances on these more dynamic cloud instances, you're usually paying by smaller time increments. You may pay by the hour. You have something running. Limitation. I haven't run a desktop from it, but I presume. You might be able to. There hasn't been any task I've found particularly challenging. It's really fun getting familiar with the command line options for things like the compute modules, NOVA. It's a lot of stuff. But fortunately, there's a lot of examples out there and there's lots of help out there. And tons of people are using this now. The learning curve is not so bad because you've got company. And the mailing lists are all very, very active. I totally don't read the user one. Too much. But it's very good help. Everyone's pretty cool on that. And they tell you to read the manual and they show you where in the manual, which is always nice. OpenStack also does developer summits. They do them a few weeks before the Ubuntu developer summit. And as you explained, the Ubuntu developer summit is very work-based. The OpenStack summit is very closely based on that. I haven't gone to one yet, but I'm going to the next one. So they have sessions. And you all get together and work and then you go drink beer, I hear. And then you drink beer, and then you work. Never. With any software. I say, don't trust that it's going to upgrade seamlessly. I mean, they're doing a pretty good job of doing that. But I always say, do it in test environment before you put it into production. Because you always have quarter cases and you may have something that's configured that someone didn't test properly or some other ways. I would never do an in-place upgrade on a production system without testing at first. Except for basic security updates. But full versions, I'd be careful. It's not really because of OpenStack, it's just because of software. It's always broken. Especially something with an infrastructure here. You're upgrading your whole thing. And if it breaks, then everything is down and that's no fun.