 Okay, good. All right, so my name is Melvin Hillsman, as you can see from the slide there, right? OpenStack Engineering Rackspace. And this presentation, learning some OpenStack for great good. It's gonna be very high level, very simple. I'm hoping by the time I get through with the talk that the DevStack install will be done, unfortunately, Hotel had some internet issues yesterday. So I didn't get a chance to get everybody set up with the lab. All right, so keep in touch with me. Mr. Hillsman everywhere at mrhillsman.com, Mr. Hillsman at Gmail, at Mr. Hillsman on Twitter. IRC is Mr. Hillsman, so there shouldn't be any problem getting in contact with me if you decide you want to, right? Okay, let's dive into it. So non-volatile Mary Lane cloud and virtualization concept. So this is essentially what you should already know. Okay? So pre-virtualization, right? Before we started utilizing KVM and all these other virtualization technologies, we had basically this room with these big, big desktops in them, essentially, these big servers taking up a lot of space, using up a lot of energy. Pretty much problematic, right? So essentially what you had to do is if you wanted an application, you would have to do a change order request, purchase order, so forth and so on. You'd have to order your equipment, order drives, so forth and so on. Then you gotta wait for someone to approve it. It's pretty much it's not on demand, right? You can't just go and grab some resources and set stuff up as quickly as you would like to. So pre-virtualization essentially was a headache. You have to coordinate between a lot of different folks and sometimes not just different departments within your company, but other companies outside of your company. So then we moved on to virtualization. So virtualization basically provides a logical division of resources. So all those things that we saw in the data center previously are basically we can do the same thing with them but they're logical. They're not necessarily physical devices, right? They're virtualized. There's two different types. You got type one, which is bare metal native, so you can take an actual physical machine and it's seen as a virtual machine per se. And then you've got type two hosted, where, so again with these two different types you have, we hosted essentially the hypervisor, I'm sorry, type one hypervisor, type two hypervisor, apologies for messing that up on y'all. So type one native hypervisors are those that are function at the bare metal level, right? They know what's going on with the actual physical components of that particular server. Type two hypervisors are hosted and those are kind of like your parallels, virtual box stuff like that, right? It's a virtualization technology that lives inside of an existing OS. Okay, you also got hardware virtualization, desktop virtualization, nested virtualization. So essentially virtualizing everything. So, in this what we're gonna do is we're moving towards, right, we're moving towards talking about OpenStack. And so essentially you have to have an idea of what makes something a cloud. Why is it considered a cloud? So essentially there's three things that will make something or what people will attribute it to be in a cloud. The first thing is that it's on demand, right? It's available as needed, it doesn't require third party. So you don't have to make those calls necessarily to folks outside of your organization or even sometimes other departments. You can essentially just get your resources or determine the resources you need and go and get them on demand. It's elastic, so it can grow, it can shrink as you need it to. Essentially, again, falling back on to the on demand thing. You don't have to necessarily, with growing shrink you essentially can, let's say today you need 100 servers and tomorrow you only need 50. Or in a few hours you need 100 servers and you only have 50 right now. So you can grow and you can shrink as you need within specific time frames and not have to go through all the hoops of contacting these different people and doing a lot of paperwork and trying to cut all these different red tapes everywhere. And also what makes a cloud is that it should be self-service. It's no physical deployment and consumer direct requests. Again, this all falls back to the not having to deal with other departments and a lot of red tape. Essentially I can go ahead and if I need to create a server, I don't have to go through the full cycle of physically deploying the server, plugging in network cabling, so forth and so on. I can essentially just say hey, I need a server that's got four CPUs, it's got 16 gigs of RAM and I make a request and in a few moments it's ready and it's available for me. So let's look at traditional computing stack. Essentially traditional computing stacks are managed end to end by an IT department. So there's no end user manipulation, as it says right there. You basically, everything from the top to the bottom of this stack is controlled by some IT department. You have to contact someone in every single aspect. So networking, storage, those are your infrastructure type things, servers, hypervisors, operating system, middleware, runtime, data, application. Each one of those aspects, whether you want to install PHP or something at the higher levels or you want to install a certain operating system, you have to contact someone in order to get that done, you couldn't do it yourself. So you got an IT department that handles all that, right? So infrastructure as a service is basically a service model that allows the cloud consumer to provision computing resources and software. So operating system and applications. The cloud consumer manages the images, operating system, applications, storage, networking, computing resources, VCPUs, VRAM. Right, so basically infrastructure as a service abstracts these bottom four layers for you. So you don't have to deal with networking, storage, server and hypervisor stuff. You come in at the operating system, middleware, runtime, data, application. So you can install whatever operating system you want. You don't have to worry about networking. That stuff is taken care of. You don't have to worry about storage. You essentially say I want this amount of storage. You don't have to worry about, again, specific servers or hypervisors that's all taken care of for you. All you care about is I want to be able to install an operating system on X amount of resources. So that's what infrastructure as a server offers you. All right, so moving further up, you got platform as a service. So platform as a service, right? It abstracts from you in addition to the bottom four layers, it also adds in runtime, middleware and operating system. So platform as a service provides the operating system, libraries, programming languages, et cetera, for you as a cloud consumer. The cloud consumer provides the application or applications to be deployed on the instances and the cloud consumer does not manage the underlying cloud infrastructure. So again, this is where, let's say for example, like I said, you want PHP. You just want to install a PHP application. You don't want to deal with whether it's PHP five point this or that, you don't want to deal with upgrades, so forth and so on of any of that kind of stuff. All you want to simply do is get a deployment that has specific technology in terms of, again, a library or programming language that you can use and it's made available to you and then you take care of the data and applications. You install whatever type of software you want to run PHP and you have your data as well. Sorry, your application at the end. So you're collecting data, you have your application that's running and that's all in your hands. So cloud computing now is at a place where you pretty much have anything as a service. So you have firewalls, you have load balancers. A lot of stuff is abstracted in terms of anything as a service. You've got desktops as a service. I mean, databases as a service, pretty much you name it, someone's out there got it as a service, right? There's even now Rackspace has OpenStack as a service. So anything as a service provides the operating system and all the software for you is a cloud consumer. The cloud consumer does not manage the underlying cloud infrastructure nor the application or applications contained in the instances, right? You essentially just say, hey, I want to be able to run a firewall, I want to be able to run OpenStack. I don't want to worry about any of the underlying infrastructure stuff all the way down to computing stack. I want you guys to take care of it. Just give me what I want and let me use it. Okay, so we've essentially gone from pre-virtualization and we've got into virtualization and then we've got an idea of what makes something a cloud and then also the three technologies or the three buzzwords in terms of clouds, infrastructures as a service, platform as a service and software as a service. So there's three types of clouds, right? There's public, there's private and there's hybrid. So the public cloud in a nutshell is generally the most well-known and straightforward type of cloud computing. This is like your AWS, right? So public commodity cloud providers typically offer convenience. It's easy for enterprises and developers to set up, use and access the public cloud. Additionally, scalability is often a driving factor for businesses utilizing public cloud because you can essentially spin up resources really quick, right? And you can spin them down really quick. However, this type of cloud is not without risk, okay? Then your private cloud for business is concerned about knowing exactly where their data is stored and having complete control over it. So who ultimately has access? That's what the private cloud is really concerned about. It provides a higher degree of peace of mind. Additionally, private clouds may be the best option for companies that must jump through a lot of regulatory hurdles or handle sensitive data or for companies concerned over their own intellectual property being hosted on the public cloud. Managed private clouds are one specific form, type of cloud computing. The service refers to clouds that though specific to an individual business, it receives some assistance such as operating system service, monitoring and patching from a third party provider, which is your managed provider. It's allows for a company to select the custom cloud model that fits its needs while leveraging secure third party help for maintenance. And hybrid cloud essentially is a mix of the two, right? So you're allowed to have your, in the case of Rackspace, actually we do private clouds in your data center, someone, a third party data center, or in ours. So you can essentially have a private cloud in one of those or as well as a public cloud with another service provider and you can, you know, mix and match services between those. So again, just to kind of highlight, to give a, you know, more of a synopsis of what I was just saying, again, public cloud is convenient with plenty of provider options, pay as you go model, use only what you want. You can, it can be somewhat unreliable and it is less secure because again, you're sharing resources, right? Private cloud concepts align with those of public cloud. It requires some IT expertise and you have more control over reliable, more control and reliability. And then hybrid cloud against flexible scalable provides a benefit of both public and private. It is cost effective because you can, you know, abstract some of those things that you would normally have to be doing with your private cloud or on-premise stuff to a public cloud provider. It's cost-effective and it is gaining some popularity, which, you know, I'm assuming most of you in here would agree with that. So again, here's kind of the assumption with private and hybrid clouds and public clouds. So you have a secure VPN connection that sits in between the two and at any point in time, you can move resources back and forth. So if you have something that's in your private cloud and you've got folks that are using it, it's starting to gain a lot of traction or let's say you have like an event and you need to say, hey, I need to shoot this application over to the public cloud real quick. I don't want to spin up a lot of my private cloud resources or I'm doing other stuff with them, but I want to be able to handle this mass increase in traffic or users. And so you can shoot your application over to the public cloud, spin up as many instances as you need for whatever that timeframe is that you'll have that increase and then spin it down and push it back over into your private cloud. So OpenStack is essentially infrastructure you like. So it's sitting down at the very base layer. It's the infrastructure as a service and there's also additional resources in terms of firewalls and service and so forth and so on. So OpenStack does give you a lot of the additional components but at the heart of it really it's infrastructure as a service related. Okay, so latest release is Mataka. All right, that's what we're all hoping to be using soon. Okay, OpenStack depends on a number of different services. So you can use Galera, Custon 4 or Morai DB for that matter, Prokona 4, your database. It needs some place to persist, right? Persist certain data and that's what these database options are for. It uses a messaging service as well, Cupid or RavidimQ. There's a couple others that you could use for essentially different services in OpenStack talk to one another. So you need a way to be able to, what we call cast and call. So send messages back and forth to make sure that some of those messages get received and also sometimes it's just, hey, send this message and I don't care if it gets received or not, just send it. All right, it also depends on memcast and certain instances as well as MongoDB for certain services. All right, so here's your core services. I thought that would be bigger than it is. So you've got sender, which provides your block storage. You've got Keystone. You've got Glance. Keystone, I'm sorry, does your identity. Glance is your image service. Nova does compute. Neutron does networking and Swift does object storage. Okay, so Keystone is a core component. Should be installed first. It provides identity management. It also provides a catalog of services and endpoints. And you can also connect it to external directory services like LDAP or Active Directory, for example. It's a very mature project. I like that the foundation has moved to this model where they actually show you adoption maturity and age for these different projects. And then also you can go and look at more details for each specific one that has this. And it gives you a bit more detail of where these specific items come into play. In other words, why does one have a 96 adoption an eight out of eight or five out of eight, whatever it may be, and its age. Essentially age is pretty self-explanatory. So OpenStack Nova is instance management. This is your virtual machine. So Nova takes care of that portion for you. It manages the life cycle of these instances, the spinning up and the spinning down of them, the destroying of them. In other words, making a creation of them. You have sales regions, aggregates, so this is basically being able to divide up your resources into different sections and apply metadata to those resources. Let's say like you have some servers that only have SSD drives in them. So you want to be able to, you know, spin up resources that only use SSD drive. Or you have some resources that have 40 gig internet connection versus something that may have 10 or 20. So you want to be able to spin up resources in specific places. And that's what sales regions and aggregates allow you to do. It also provides drivers for interaction. So if I'm not mistaken, it works like Hyper-V. It works with, you know, UKVM. So your different hypervisors that you have on the back end, Nova provides the drivers to be able to communicate with those. And it also defies some networking. Nova Networks, which is, some people are still using it. A lot of people are using Neutron Networking as well. So I guess that's kind of a matter of choice or relevant to your environment, which one you decide to use. All right, Neutron offers the network management, okay? So that provides all your virtual switching, virtual routing, floating IP addresses, private IP addresses, L2, L3 stuff, DACP address, you know, all that kind of stuff is inside of Neutron. It manages the SDN infrastructure and you can leverage physical devices as well, like some companies like F5 and some others. They have, you know, plugins that you can install into Neutron that allow you to offset some of that, some networking throughput or concerns to those actual physical devices and not have to keep everything virtualized. Okay, then you have OpenStack Glance. This is your image management. So essentially, this is where you, you know, you say, hey, I wanna have, I wanna be able to use four CPUs and 16 gigs of RAM. I wanna be able to use two CPUs and four gigs of RAM. So essentially, Glance is going to store these different images, right? These different flavors is gonna allow you to be able to say, how do you want to make your resources available on a per instance basis? Whenever a person requests something, how much of a, how much resources is that person gonna be made, it's gonna be made available to that person per instance that they spin up. Also, so it can also use object storage as a storage backend, so you don't have to store everything on actual physical hosts in terms of, like let's see, have an infrastructure or a controller host, you don't have to store your Glance images there, which would use up space essentially on that host, right? You can store your images in object storage, which is Swift. Okay, sender offers you block storage. I like to think of it basically as a USB drive that I plug in or an external hard drive I plug into my workstation. So you can plug it in there, you can unplug it, plug it into another one, so that's essentially what sender allows you is persistent storage. And again, also you can divide that up, decide how much you wanna make available to certain people with quotas and so forth and so on. And then our final one here is OpenStack Swift, which is object storage. Again, so basically what this does is you just, it's like, hey, I just wanna store some stuff. Small files essentially is what you wanna do. You don't wanna try to store too much stuff in there unless really you have to, but it's best utilized to just store small images. It's good for like, if you have a website and you have a lot of images, you wanna be able to store them off somewhere and provide a centralized location for websites to use those images. And then you have optional services. So that's your Solometer, Trove, which is Databases, Manila. So you have a whole lot of optional services that you can use, but again, the core services are what most people are going to install is what you wanna install and that pretty much will get you where you need to get to. So that, again, like I said, it's just a high level overview and won't get too deep into it because really 40 minutes is not a lot of time to dive a lot into too much stuff. I would prefer to leave time for questions, for queuing, people be able to talk a little bit. I know me personally, I like to be able to communicate. I know y'all don't wanna just hear me talk the whole time, right? So let's see if we can get into one of these instances. Everything's over there. So does anybody have any questions while I'm trying to figure out what we can do in terms of accessing an actual install? Any questions? How many people are new to OpenStack? Okay, how many people has installed OpenStack? All right, good. All right, y'all are currently running OpenStack in production? Anybody? All right. Okay, nobody has any questions about running OpenStack in production even? Maybe? Okay. Where to run OpenStack in production? I guess high availability is, I'm using, it's a key. So for OpenStack software itself, how do you handle the high availability because for your controllers and your agents? Yeah, so at Rackspace what we do is we use three infrastructure nodes and we install, we use OpenStack Ansible to install, install OpenStack and all the services are inside containers. So in terms of high availability, we have Rabbit MQ cluster, we use Galera for clustering, you know, MySQL, but essentially those three infrastructure nodes provide you that high availability. So if any service goes down in one particular node with the use of a load balancer, the traffic can be sent to another node, right, to handle that. Each particular service will give you its issues because some work better than others in certain types of high availability situations, but in general the three node setup that we have, the way that we do it, the reference implementation or architecture that we do, it works very well. A lot of people are using it, a lot of people are satisfied with it, but that's generally how we handle it. Does that answer your question? Does that answer your question? Yes, okay, great. Any other questions? I'm kind of fishing for questions because like, you know, you hate live demos, so I'm hoping this is gonna play well with me. So I'm trying to get y'all, you know, to give me some more questions. Anybody? So either I did a great job or I did terrible. That's what you're telling me, right? It's one or the other. All right, let's see if this one's gonna work for us. I mean, most of you, most of you, everybody in here from what it sounds like have installed OpenStack and have it running. How easy was it to install OpenStack? Did anybody do it using OpenStack Ansible or everyone did it by hand? Does that kind of counts? I guess it kind of counts, you know, I mean, it really only takes a few, you know, a few directors in the file and then stack.sh. So I guess that kind of works. Depends on what the real way is. Yeah, so I mean, when I first installed OpenStack, I did it by hand and it was quite difficult. I think a lot of people run to a lot of difficulties because there's so many different things you have to make sure you get right in order for it to work. And so if you don't, it can be a problem trying to figure out what exactly you missed. All right, so I'm gonna try to get this up on the screen here. We've only got a few minutes left to be with each other. Bless you, will that work, yeah. Is that big enough? I can't see it, unfortunately, on my end here, let's see. Is that my password? Yeah, I can't see y'all, I'm sorry. Thank you for being so helpful. All right, let's see here. So this is essentially, oh, it's not gonna work no more. Let's get this out of the way. OpenStack. All right, that's huge. That's really big. All right, I can't see that. Okay, so when you log in, this is a bad angle, I'm sorry y'all. So when you log in, oh. All right, so when you log in, okay, you essentially get sent to this page, right? So it shows you an overview of your resources. Essentially, if I had, so this is resource usage. This is not what you actually have, but this is what's been used thus far. And let's see. So I'm logged in as an admin. And you can see on the left-hand side here, your beautiful tabs will show you your projects. Okay, your particular project that you're in right now. Okay, and then you've got compute. This is your compute resources. Networking resources. Orchestration is heat. I am, of course, again, the admin. So it shows me all that. And then identity is where you are going to manage projects and users. And Rackspace, we're not even gonna click that right now because I'm not trying to sell you guys any product. All right, so let's look at an overview really quick here. Oh, we're already there. All right, so again, that's, so here this is showing us what limits we have. All right, so this is project limits. So right now I can only create 10 instances, 20 VCPUs I'll have available, 50 gigs of RAM, 50 floating IP addresses, and security groups. Anybody know what does not know what security groups are? Oh, okay, security groups are essentially basically where you can, it allows you what access you do or don't have into an instances in terms of ports. So let's say, for example, you don't want anybody accessing your instances. I'm sorry, you don't want anybody accessing port 80 if they're not from a specific IP address. So security groups can provide that for you. And the underlying technology is IP tables. All right, I should have mirrored this because I'm not really feeling this guys. I'm sorry. All right, so let's go ahead and see if this is gonna let me create an instance. Though I should already have one there. Yep, there's one. It's got a, this is gateway net, which is access to the public. This is inside net or basically the private network for this particular project. And I'm hoping this is gonna allow us to install an instance. So you just click launch instance. All right, you can see here, this is my availability zone. Again, remember I told you earlier you have aggregates. You've got sales regions, availability zone. So this is essentially, I can say, where do I wanna spin up this instance at? Okay, let's give it a name. Let's just call it Austin. We'll go with small. And as you can see there, the resources at the bottom are growing based on which particular flavor I select. So again, this is glance. All right, this is glance determining or allowing me to have access to these different flavors or basically amount of resources. Okay, we just want one. And then we're gonna boot this from an image. I believe we got some great image there, which is that's gonna be Ubuntu. All right, so I named it RPCO, so don't pay attention to that. All right, then you wanna select a key name. So depending on what kind of instance you actually install, you can or cannot have access to it outside of using a key, a public key, right? So Ubuntu by default, it doesn't allow you to log in via password. You need a key. So we created a key. And then there's these different security groups. We're just gonna select that one there. All right, then you wanna do networking. So we wanna have this on or it's called inside net. So again, this is providing this particular instance with an IP address within my project. We don't wanna do any post creation. So this is like it. So again, Ubuntu images, CentOS images will have a software called CloudyNet installed. So whenever you spin up the instance, you can utilize a file, basically a file that will tell CloudyNet to do certain things within that instance. Or you can also write direct input here, which is basically just put those CloudyNet commands inside of this box here and it'll take care of it for you. All right, and then this partitioning can just leave that automatic. And we're gonna see if it works. Fingers crossed, that it failed. See, so no valid host found. All right, so you'll see this error. Let's, you know, in our last few moments, let's talk about this no valid host found error. This is a not very explanatory error, right? But essentially what you would do is you would go into, you wanna go into your, you know, go back into your server and you wanna look, so there's, so no valid host found was taken care of by Nova scheduler. So what you wanna do is you wanna look at Nova schedule logs and see why didn't it find a valid host? Why wasn't it able to schedule whatever resources or whatnot for that specific instance and it couldn't find a valid host? I'm not gonna go through all that because, again, I can't see that well and this is not helping that well either. So, and we only got a few minutes left. But essentially that's it. So join us if you have any further questions. If we can talk anymore about anything, you're welcome to join me outside after the presentation for a few minutes. Give me your business card, I'll take yours gladly. And that's pretty much it. If we don't have any questions.