 Steven wasn't able to make it so we have Angus filling into for him I actually don't know that much about heat, but I know that everyone's talking about it So I'm very interested to understand where this orchestration set of tools fits into the cloud and Sounds like a very Active and important project. So hand it over to Angus Thank you. So yeah I'm not going to give the demo today as Because Steve had prepared that and unfortunately I only figured out that I was going to do this last night So it will probably be a little shorter. So Both Steve and I are core developers on the project The Heat the mission for heat is is was initially to provide an AWS cloud formations implementation for OpenStack Of course, we have plans to Initial plans to you to potentially implement TOSCO as well But we haven't got to it and seem to have seen the drive from users But if there are other formats of template based orchestration that come along So the way this all works is you have a template and it has parameters Which are user parameters that you apply To the template and it goes and creates the stack. So the template has different sections on it There's a parameter section that defines what parameters you can pass into the template It has a mapping section which you can use as a lookup table essentially from within the template and There's resources which are all the resources like instances volumes volume maps and those are the real things that There's also an output section as well Once the stack is created you can Basically have references to the instance and show the generated IP addresses So what you then do on the right is you post your user defined parameters into the CLI and Pass that off to the CloudFormation API So here we are we have CloudFormation's templates API There's some lifecycle operations to create, delete, update, and introspection to list the stacks that you have created and describes brings out all the state information of the stack like current running states of all the things, all the resources and the events are generally in the order of Certain resource has been initialized and then it is running state or a failed state You should be able to get quite a bit of information out. So it's just a look inside what a template is Here we have the parameter section and basically it's the definition of E-value pair descriptions saying what it is and this is so There's also a heat validates so you can go and validate your template to make sure that everything that you're passing and Will actually at least pause Here we have the mappings an example of the mappings. The idea is that this is used from Your easy to image definition and you need an image ID and it's just a convenient way of converting from size and Architecture into an image name so on the right hand very right you'll see F16 x 86 64 CNF tools that is a Name of an image that you've registered in clients. Yeah, are there some resources? Basically, so there's ERP, which is elastic IP instance So this is in the association. So the way this would work is we go through and figure out the dependencies See that I I need to first create the elastic IP need to make the instance and then associate elastic IP running instance with That's all done using so an overview of the architecture. There's The API is the rest Engine and metadata that metadata has a bunch of things rolled into it and that is subsequently been pulled out CloudWatch but basically things that are on your VM and needed to talk to heat talk to that so template goes basically directly through the API and goes the engine calculates the starting order of all the resources and goes through that and sequentially goes Well, that's on Amazon And this is sitting on top of OpenStack And the idea is that you could get Input that you are using and go to the heat Need maybe a little bit of tweaking maybe the flavors but relatively little tweaking So we started with a base image which will just enough operating system and on that base instance a base image We have cloud and it's and our own version of CNF tools. So we currently Support 1617 So what happens is cloud and it starts and runs the user data to create the image We've got a tool that helps you Create that's that chaos so We've got a basically a library of Oz Tdls You'll know what Oz is it's a way to have an XML template and Create and install Distribution that's done that way and you can also Use Oz directly. So also what we do is heat your tool with the correct name so that when template gets Created it'll find the correct image as far as scaling goes way we work that is Through the hashing of the stack name so The load balance so in front of the API resource types Amazon has a lot of resource types. We don't implement it all and some are partially Or simplistically done, but the main ones are I think done quite well and as people once we Volume and instance there are some that we don't do I think we still need to do some work with quantum the later features that we need to order scaling conditions volumes IPs since the Amazon API is so broad and a lot of those services the demonstration I'm not going to give but it gives you an example of functional What snippets of a template you can see the user diets on the left there basically just Got my sequel also the same thing but using a nest that stack which is a bit lot cleaner So you can what you can do is Create if you use a particular kind of setup often you can create a nested stack and have parameters passed and then call that from another template Essentially uses a library. So we also have high availability which is Our own type you can see heat So we put on HA restore. So effectively we use cloud watch to monitor the instance Hot beat doesn't come in time Creates an alarm and call the restart a resource which just destroys the instance and then recreates it So it's very simple simplistic HHA, but feature is what a scaling Again using cloud watch what we do is using scale down Monitor it and 60 seconds and averaging average is just a stick It's a clever example just demonstrating Obviously, you would have a scale down as well in the scale adjustment. There is minus one. So Basically, we just get the bottom instance that you created and destroy it been closing. We think it's cool projects and continuously improving and functionality if you're a user or developer come get stuck in a Sheets on pre-node We're on GitHub Since I didn't have a demo I really encourage you to ask questions Well, I think the the neat feature of them is of the template is you can actually have like open stack resources like elastic IPs and You know advanced quantum networking all in one file. So yeah, we can do packaging but other things probably can do it better but it's the Complete solution, you know, you can have a multi instance running System with all in all the other bits and pieces like volumes You know and all of that in one place and it's not just So it's it's basically adopting their specification API and as soon as we can get stuck into other come along that's the goal is really orchestration from a template more than We've done it because it's the most Will be widely and not really relate we use native Creates and destroy resources. We don't use the IS cells. What is a user? I think that's probably it. Yeah. Well, what the monitoring currently is done in host sorry in the VM so basically You've got a post Systistics to the cloud watch server that gets it or we're gonna work with Philometer to Generalize the instrumentation that they're creating to so that we can use that instrumentation hopefully eventually Cloud watch Yeah, it's a minimalist proof of concept currently and we're had a lot of sessions upstairs basically trying to First of all see whether we need to go into a kilometer or not and secondly, what is missing? Yeah, and Okay, so the templates So he asked does it include multi node deployments and do you mean from the From within the template you can have multiple instances. So absolutely other Yes, yes, absolutely. I mean, that's what the main purpose of it is You know, so you yeah, and you have all the dependencies to so you start up a database So a base instance with server you configure it You get this IP have to wait for that to be created then you start up your web server and give it its IP so it can talk And wait for it to be got wait conditions that are implemented So make sure that it's completely ready before you start the next thing. Sorry. What do you mean by a child parent? When you when you say child and parent, what's the instances that are created? Yeah, on the host on the bare metal. Oh, you meant with an initial image that you register Usually the nested stack Once it's a nested stack, it's yeah, I mean look if you go in and break something and it doesn't function I suppose it's up to you to monitor that and to figure out that it's broken. It's not gonna You know, it knows the state of the VM And the VMs may be running great, but you know and the other aspect of that is the user then can't get it So that the I suppose along those lines the the other yeah, usually it's created with the user that Created the stack and that's also from a knee-trink perspective Don't want That usage data to belong to someone else belong to a person who created that resource So we create a tenant for each stack what it'll do is roll back So the point is I mean that is one of the main use cases is melty instance a melty resource creation so it will figure out the dependency order and roll through and something fails it'll delete there is an option which I don't think is implemented currently which is As in the command line, which will say don't just know clean up so you can perhaps diagnose Yeah, delete because otherwise you I mean if you're using a web like horizon you won't have access necessarily or you won't know what what exactly has started But the idea is to it fails It gives enough information to figure out what is wrong with it Perhaps there's a rock a bug in the template and you just need to fix that and try again Or you can let it sit there. So you can find those I'm done There's any more questions. All right. Thanks. Thank you There's a one last session in about 20 minutes and then it's the Mirantis's