Demo: OpenStack Heat Orchestrator
- Objective
-
Demonstrate how OpenStack Heat templates enable automating the easy deployment of a multi-VM workload.
Recording
This demonstration will be recorded and the video linked from here, so learners can watch the video and optionally try to replicate it by themselves.
Environment
There is no demo environment for now. Presenters must be able to provide their own environment, which should be a minimally configured OpenStack cluster with domains, projects, server flavors, floating IPs, tenant networks, etc. It should be configured in a way that it is ready for an OpenStack operator, that is, an OpenStack user with a member role in a few projects, to create a server instance and connect to that instance.
The heat template for this demonstration would be available in a public git repository and refer to flavors, images, and other resources that already exist in the demo environment. It should be more than a simplistic single-VM or two-VM example. Ideally, it includes a load balancer and autoscaller.
The demo environment must also provide a user workstation preconfigured with the OpenStack client, a web browser to access the Horizon dashboard, and a load generator tool such as ab
to trigger autoscaling of the application.
Demonstration
-
Open a web browser and access Horizon. Log in as the operator user and enter an empty project.
-
Show the sample Heat template, and highlight its networks and server instances. Show the template includes some low-level resources that an Operator would not usually see from regular workflows using Horizon or the OpenStack client, such as network ports connecting server instances to tenant networks.
-
Show, inside the template, the resources that provide for autoscaling and load balancing, without getting lost in the detailed YAML syntax of the template. The demo is about what it does instead of how to write it.
-
Create the application from the template, monitor progress, and show when it’s all done. Then show the main resources (server instances, LBs, server groups) in Horizon and emphasize you could manage them as regular resources, irrespective of Heat.
-
Access the application, just to show it works. Maybe the app displays the hostname or IP address of its server instance, to make it easier to observe load balancing and autoscaling.
-
Run an artificial load generator and show, on the project overview page, that more server instances were created.
-
Access the application again, a few times, to show requests were answered by different server instances.
-
Show that, after a while, without load, you get fewer server instances (some instances are destroyed).
-
Delete all application resources using Heat, to show it works beyond initial deployment of an application.
This ends the demonstration.