Jump to: navigation, search

Difference between revisions of "Heat/AutoScaling"

(When an alarm is triggered in watchrule.py the following happens:)
(Current)
Line 3: Line 3:
 
AS == AutoScaling
 
AS == AutoScaling
  
=== Current ===
+
=== Now ===
  
 
The AWS AS is broken into a number of logical objects
 
The AWS AS is broken into a number of logical objects

Revision as of 02:49, 21 June 2013

Heat Autoscaling now and beyond

AS == AutoScaling

Now

The AWS AS is broken into a number of logical objects

  • AS group (heat/engine/resources/autoscaling.py)
  • AS policy (heat/engine/resources/autoscaling.py)
  • AS Launch Config (heat/engine/resources/autoscaling.py)
  • Cloud Watch Alarms (heat/engine/resources/cloud_watch.py, heat/engine/watchrule.py)
Current architecture

When a stack is created with these resources the following happens:

  1. Alarm: the alarm rule is written into the DB
  2. Policy: nothing interesting
  3. LaunchConfig: it is just storage
  4. Group: the Launch config is used to create the initial number of servers.
  5. the new server starts posting samples back to the cloud watch API

When an alarm is triggered in watchrule.py the following happens:

  1. the periodic task runs the watch rule
  2. when an alarm is triggered it calls (python call) the policy resource (policy.alarm())
  3. the policy figures out if it needs to adjust the group size, if it does it calls (via python again) group.adjust()