Openstack Heat & How Autoscaling works
@Openstack chennai meetup Aug 2015
Jayaprakash
Technical Lead, Product Development
jayaprakash.r@cloudenablers.com
Beny Raja
Technical Lead, DevOps
benyraja.j@cloudenablers.com
Overview
●Heat is the orchestration component of Openstack.
Template-driven engine that allows us to describe and
automate the deployment of infrastructure &
application
●Extended capabilities such as Nested stacks,
Resource Groups, Auto scaling, Software deployment
using configuration management tools like puppet
Services
●Heat - CLI which communicates with heat-api
●Heat-api - REST based service which sends api
requests to heat-engine via RPC
●Heat-engine - Orchestrates openstack resources
●Heat-api-cfn - REST based service which sends api
requests to heat-engine via RPC
Heat Architecture
HOT Template structure
●heat_template_version
●description
●parameter_groups
●parameters
●input
●resources
●output
Reference:
http://docs.openstack.org/developer/heat/template_guide/hot_spec
.html
HOT Template
Develop your own Resource Plugins
●Plugin Life cycle –
Create,Update,Suspend,Delete,Resume
●Registering resource plugin name –
OS::Nova::Workload
●Properties & Attributes
●Handler Methods – handle_create, handle_update,
handle_delete...
●Configure heat to register new plugins and restart
heat-engine service
Reference:
http://docs.openstack.org/developer/heat/pluginguide.html
Heat - Standalone Mode
●Orchestrate Multi openstack setups
●Standalone mode configuration in heat.conf
○[paste_deploy]
flavor = standalone
○[authpassword]
multi_cloud = true
allowed_auth_uris = http://192.168.1.171:5000/v2.0,
http://192.168.1.223:5000/v2.0
●Heat cli to access remote openstack
heat --os-no-client-auth --os-username admin --os-password
openstack --os-tenant-name admin --os-auth-url
http://192.168.1.223:5000/v2.0 --heat-url
http://192.168.1.10:8004/v1/98073903698740af87fb57ca9e41eed5
stack-list
Autoscaling
●To maintain application availability and allows you to
scale the capacity up or down automatically
according to conditions you define
●Automatically increase the number of instances
during demand spikes to maintain performance
●Heat & Ceilometer are the components used to
implement Autoscaling in Openstack
Autoscaling workflow
Ceilometer Alarm Resource
Autoscaling Group Resource
lb_server.yaml
Alarm Action URL
●Heat engine server address
●Stack id & name
●Scaling resource id & name
●URL params – Timestamp, Signature, Access key
http://192.168.1.142:8000/v1/signal/arn:openstack:heat::<stack_id
>:stacks/test_stack/<resource_id>/resources/scaleup_policy?Time
stamp=&SignatureMethod=HmacSHA256&AWSAccessKeyId=fa7
1fad02e974f4f8a21265c58bacf0f&SignatureVersion=2&Signature=
poYnVLF9mLEGjBXbjT63svjCnymnhrLP9chFPHiyVoo%3D
References
●http://docs.openstack.org/developer/heat/template_
guide/hot_spec.html
●https://wiki.openstack.org/wiki/Heat
●https://github.com/openstack/heat-templates
●https://wiki.openstack.org/wiki/Heat/Blueprints/heat-
multicloud
●http://developer.openstack.org/api-ref-orchestration-
v1.html
Thank You

Openstack heat & How Autoscaling works