 Test. Oh, there we go. Hey, how you guys doing? Yay! All right, welcome to Hands-On Heat with Heat tutorial at the Vancouver OpenStack Summit. I'm really excited. I just saw the screen outside on the TV monitor saying that next year it's gonna be in Austin, which is my hometown. So I'm very excited for you guys to all come back and visit my hometown and go to Torchy's Tacos. It's a wonderful little food truck place. Great Tacos. So when you come next year, make sure you go. I've converted our entire sales team. Torchy's Tacos. Yeah. All right. Good morning, and welcome to the Hands-On with Heat tutorial. My name is Rick Ashford. I am a technical specialist. It's pre-sales engineer, solution architect, technical specialist. There's like so many titles you can use for these. Today we're gonna be a technical specialist. For Susie Lennox, I've been with them for about six and a half years. Helping me out today is gonna be Cameron Cedar over here. He's been with Susie for what, eight years? Ten years? Okay. So we've got some good expertise in lurking in the back, but not really helping today is Jeff Lindholm from Susie. He's been doing this for 14 years. So I've got a lot of experience here in the room. We're really excited to be able to work with you guys today. What we're going to be doing is I'm gonna run through the slides for just a couple minutes. Not too terribly long. And then when we get to the end of that, I'll throw up a slide that has the URL for where to go to hit the horizon dashboard and to be able to download some lab materials. So let's go ahead and get into it, and it helps if you turn on your presenter. There we go. All right. So let's talk about deploying services in the cloud. So there's really three ways that you can do deploying your services. There's the easy way, the not quite as easy way, and the hard up front, but totally easier in the end way, which is where we're going to spend most of our time. So the easy way, manual deployment process, right? You can pull up your web browser. It's very easy. Just go select the images you need. You create the networks you need and go through and do it, and everything comes up, and life is wonderful. You get a raise and become the hero of the company. The not quite as easy, you can go in if you want to automate that, because the manual method does not scale up very well to large deployments. You can use the API. So you can use the Python libraries or whatever you want to use. You can script it all out, and it's a bit labor intensive up front, but that can easily scale out to large deployments. The problem with that is it's not very terribly friendly to all cloud, potential cloud users. Not everybody wants to dive into the command line and execute a script to be able to get what they want, at least not the people I know. So the hard up front, but totally easier in the end way, at least in my opinion, is using Heat, which is why we're all here today. So Heat was an incubator project starting in the Grizzly release. We have supported it at SUSE as of our 3.0 Havana release. We're now at 5.0, which is our Juno release. So we've been working with this for a while. And so the overall definition that you read on the pages, there's a surface, Arkansas, blah, blah, blah. To me, it's a little bit dense to read that. So the way I define it is Heat allows you to pre-define a set of your compute, network, and your storage requirements for a specific service, and then deploy the whole thing automatically, and life is wonderful. Okay, so first off, why is it called Heat? Because Heat makes the clouds rise. Yeah, get it. Your services are coming up in the cloud, huh? I don't make the jokes. That's just the way it is. Okay, so there's a couple of different formats you can use to be able to build your Heat templates. First off, it was made to be compatible with the Amazon Web Services Cloud Formations API. Yeah, boo up here in the front. Oh, and a thumbs up. You guys can fight it out. So the idea there being that if you have people that are currently on Amazon, you want to migrate them to OpenStack, it makes it easier. They can port over all the work they've already done. They don't have to start from scratch, in theory, as long as everything that they've used has been implemented in Heat, which doesn't always happen. Okay, so that can be done in JSON or YAML. And then we have the Heat Orchestration Template, which are hot, and that's kind of the preferred way for doing things. That's the OpenStack native way for doing Heat templates. And that is done in YAML. And what is YAML? For those of you who are unfamiliar. So it stands for YAML Anomarka Language, another wonderful acronym for the open source community. So it's basically just a structured via indentation. You can have your sequence items or don't have a dash on them, key pairs, or have you ID, colon, value type format. So is this readable in the back of the room? By the way? Okay, good. All right, so the snippets of code in here, don't worry about trying to copy them right now. They're all going to be in the lab materials that we have here in just a moment. So don't feel like you have to scramble or you're going to be out of sorts. So just a simple hello world like this, you can see it's very simple to define a blog. This is just a simple start up one instance, right? So in this case, we're going to be starting up a blog. So we've got a WordPress image right here that has a SSH key and you tell it what size you want it to be. Very quick and easy. It gets you one thing. All right, so then you can start to expand out on that. And I'll say, for example, you want to be able to take some user inputs to be able to do things like indicate what flavor do you want to have instead of having a pre-baked flavor. You can do, what else do we have in here? I just got generic stuff in here. Okay, so you can do things like pulling network IDs, all that kind of fun stuff. You can pull in user input. All right, then from a parameters instance, you can do things like starting to set defaults so that instead of just putting up a blank box, you can have it pre-filled with whatever it is that you want them to be able to choose. Great stuff. You have down here this hidden, colon, true. That will make it so that say you're having an input of password. It gives it a little dot, dot, dot instead of the letters so that it's not showing off to the person looking over their shoulder to grab the password. Although I guess if they're looking over your shoulder you can see what you're typing on the keyboard. It really doesn't matter, especially if they got Google Glass and they're recording the whole thing. Okay. All right, next thing you can do is, in addition to, once you've got it so that you can put input and you can get stuff from your users, oftentimes you'll want to restrict the user input so that you can make sure that they provide valid input so that you don't have, anybody see the XKCD thing with bobby tables? Everybody remember that one? Yeah, drop bobby tables, was the drop tables bobby? Yeah, exactly. You've got to sanitize your input. Okay, so I'm not the only one. Good. It's like I'm not the only nerd in the room. That's great. Most rooms I am. Okay. Okay. All right, so in this case we're taking the flavor and we're restricting out to specific sizes of what we want to do. You can do things like down here with the password. We're setting allowed patterns. You can put a regular expression in there and be able to restrict out to make sure it's eight characters long, make sure it's got capital letters, lowercase letters, all that kind of fun stuff. You can put that in there. Okay, some useful, helpful resources. The template logs, the documentation is getting much better for heat. When I first did a similar type session several years ago, it was not as fleshed out as you would like it to be. Now, generally speaking, there's usually at least a document entry, documentation entry for each of the things that may not necessarily tell you a whole lot, but at least there's something there for pretty much everything. And then over here on GitHub, there's also a whole stack of heat templates that are out there that you can go through and you can evaluate and look at them to adapt for your own needs. So it gives you a nice starter. All right, so now we're going to get our hands on, because this is a hands-on tutorial, right? All right, so you guys should already be on the SUSE heat lab SSID. We've got two SSIDs, one in the 5 GHz range, one in the 2.4. Pick one, hopefully you can get on. We shouldn't have a whole lot of stuff. The dashboard you're going to log in is 192.168.124.81. Okay, and the user number, how we're going to do is I'm going to start right here and we're just going to go down and you're going to call out a number. And that number that you call out is going to be your... to finish off your dollar num. So, let's see. The gentleman right here in the blue shirt, 16. 58, okay. And then wrap around back here. 4, 64, 69, 70. 71. Okay, and then for guys around the background, so I've got accounts provisioned out to 200. So for those of you who are doing anything from 75 to 200, if you're wrapped in a sitting around the edges or something like that and we didn't see you, your odds are pretty good that you will not get overlapped with somebody else. And if you do, then go find another one. So the login will be Gecko and then your number. And then the password will be OpenStack. For those of you who are not familiar, SUSE, we have our mascot is the chameleon and the chameleon's name is Gecko because we wanted to confuse people. It's German humor, I guess. I don't know. Okay, so the lab materials, if you pull up, I have a web browser set up off my laptop here and that has just a simple little patchy web server serving out of directory and you've got the materials in there. The images you will not need to, they are already pre-populated into the, into Glance. You do not need to add those in. Those are there so that if you want to download them and take it home, play with it in your own time, give it to your kids for Christmas, you can do that. Yeah, there is, so if you look in there, there is a hands-on with heat lab guide, a PDF. Go ahead and download that first and open that up and basically what you're going to be doing. I'll do it here for you. So you'll pull it up and you'll see there's a series of exercises here. You can copy and paste. In my test last night, the copying and pasting lost all the indentation. So you were going to have to do the indentation manually anyway. I personally recommend that you actually type out, at least for the first couple of examples, type out everything so you can sit there and watch it go up on your screen and interact with it a little bit. It helps you to learn it a little bit better. But if you just want to just copy and paste, you will still have to fix the formatting so you'll at least have some interaction with it. Yep. So, I'm going to leave this up right here for the rest of the session right here. So this is going to be self-guided. So Cameron and myself will be wandering around. If you have questions, we'll be happy to ask you. Interact with your neighbors, work with them. There are a couple places where there may be bugs in the implementation. In at least one case, that's there by design to give you a chance to try to debug something on the fly. That's towards the end. If there are other ones in there, those are not intentional. I apologize ahead of time. Which one, the dot one? Okay. So since everybody's going to be doing this, I am going to walk through one real quick. We can take a look at the address space in just a moment. See if we can expand that out. So logging in, your logins will not have access to the admin side of it. You'll want to come down here to the orchestration side and click on stacks. And we're going to launch a stack. So there's two ways that you can do this, and this is outlined in the lab. One way you can do it is you can copy and paste things into a text file. And then from there, copy it over into the... and upload that text file directly to the... to here. The other option is you can go to direct input and you can type it in here directly and you can type the heat code directly into here and launch it up with that. The question is will you be able to export something in or in manually? No. There's no export functionality on there. There is a project that somebody's written to try to do some interesting things like that, but that's not part of the baseline project. All right. So just to give you an idea what this is going to look like, in this case I'm going to do a URL because I'm going to cheat and use my web server that I've got right here. He's going to expand the IP space so you can get in there. And so I'm going to pull up... this is just a simple blog, YAML, so I'm going to be super creative. I'm going to call that a blog. And then we're going to launch it up... oh, I got to give it a password. And so I can launch it up. And hey, wonderful. There's a little ragdoll right here. You can drag it around. You can watch your systems provisioning out. See, right now it's provisioning out the database server. And so once you launch it up, you can do things like you can come over and look at the little network topology. You can see the instances and the networks and whatnot that you've created. You can browse around a little bit. In this case, I've got two instances. I've got a WordPress and a MySQL with a custom data network. And then I've attached some storage to it. Service, but it does give you the idea of in general what you would be doing when you get there. If you get to the end of the labs, there is one that's a much more advanced type one. And so that one I recommend you just download the YAML file from the... from my little website thing here from the web server. That is going to be an autoscaling for Apache type thing. Now, we're warning this because of the way we have the setup here, they have the cloud internal and they didn't have to worry about going outside. It does not have access to the network for being able to hit the server and actually be able to make it force it to autoscale up. But you can at least see what's going on in there and it gives you some suggestions in there for ways that you can tweak it and go explore and exercise some intellectual curiosity. So... I'm sorry, I can't hear you. The environment, don't worry about that right now. Yeah. All right. So, we'll put this back up here. If you guys have questions, let me know. Oh, and remember, this is a shared space. We do have these... So just so you guys know what you're playing on right here because I think it's really cool. We've got 12 Lenovo W530 laptops up here. They have... Yeah, this is great. This is one of my favorite laptops through the airport in Orlando on Sunday morning at five o'clock in the morning and they did not like me. So, the 12 W530 is a quad core with 32 gigs of RAM and a terabyte SSD and at least one terabyte SSD in each one of them. So, we've got a fair amount of resources here for the room. That said, it is a limited resource once we get to this kind of scale for the stacks running at any given time for your particular user. Just leave the resources available for stuff. Tear it down before you go to the next one. All righty? Everybody happy? All right, go to it. For anybody who came in late the user names that starts with Gecko and then the number the numbers go all the way up to 200. We have signed out the first 74 of those. So, pick something random like W5 and 200 and you can log in and you can do that yourself. They're reconfiguring the address space right now to expand it out and get more people in here. Thanks again. The question over here is are you supposed to be able to get to the instance once it's created and the answer is no just because we didn't want to have to mess with having you guys reconfigure VLANs on your systems and all that kind of stuff. There's only so much I can walk you through. So, if you want to get the materials if you drop by the SUSE booth and have them scan you and then just tell them that you want to get the lab materials they will do that. Kent actually just went to go get our scanner and bring it over here so that if anybody wants to we can scan you right here on the spot and do it. So, if you want to get the lab materials they will do that. So, if anybody wants to scan you right here on the spot and do it. I will go ahead and put my email address up here as well so that if anybody wants it you can harass me. Just don't sign me up for any weird stuff. Please don't. So, the question right here is are these templates one time use? No, you can take this and for example that blog one I have right here with the MySQL and WordPress. You can launch up 10 instances of that and then just give them all their separate namespaces and all that kind of stuff in different data networks and you can do that and then that way that gives you the ability to scale out and build scalable services very quickly and easily. So, absolutely multi-use. Alright, those of you who are having trouble with the wireless give that another shot. We've got it fixed. Okay, we do have the scanner now so if anybody wants to get scanned to get access to the materials later we can do that now. Alright, at 10.30. We've got a couple people that are getting up and leaving for other sessions if that should free up some more IP addresses here. So, if you've been trying to get on and you're going to keep that booted off I give another shot. Those of you who are getting to the networking one I had one intentional error and one unintentional error in there. For those of you who are looking for the floating network ID that's this guy right here. The other network ID that is in there incorrectly you should be able to find it within the interface. I forgot that you guys couldn't see as an admin.