New autoscaling policy: scheduled action in response to predictable work load changes

Registered by Haiyang DING

Currently the scale up/down action is activated by metrics from OS::Ceilometer::Alarm in response to unpredictable work load changes and there is not yet any policy corresponding to the predictable ones. As a matter of fact, the ability to response to predictable work load changes is very practical for an AutoScaling group. For example, some applications are mostly active during day time. For such applications, their administrator would want to (automatically) set up at least 5 VMs at 06:30 before the sudden rise in request numbers in the morning and (automatically) shrink the group down to 2 VMs at 21:00 since the number of requests is likely to stay low during night time until next morning. Such scheduled action could be repeated on a daily basis and the decision is up to the administrator. A similar resource can be found in Amazon Web Service, called AWS::AutoScaling::ScheduledAction. I think we should introduce this function to heat AutoScaling by creating a new resource: “OS::Heat::ScheduledPolicy”.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Haiyang DING
Direction:
Needs approval
Assignee:
Haiyang DING
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Thomas Herve

Related branches

Sprints

Whiteboard

Here are some of my thoughts on this resource:

----

HOT syntax
heat_template_version: 2013-05-23

resource:
  …
  scheduled_scaling_policy:
type: OS::Heat::ScheduledPolicy
properties:
  auto_scaling_group_id: String
  desired_capacity: Integer
  end_time: Time_in_UTC_format
  max_size: Integer
  min_size: Integer
  start_time: Time_in_UTC_format
  recurrence: String_in_Cron_format

----

Properties:

auto_scaling_group_id:
AutoScaling group ID to which the scheduled policy is assigned.
Type: String
Required property

desired_capacity:
The number of VMs that should be running after the scheduled action is triggered.
Type: Integer
Optional property

end_time:
The time in the form of UTC for the actions defined in this policy to end.
Type: String. Should be in UTC format
Optional property

max_size:
The maximum number of VMs belonging to the AutoScaling group when the scheduled policy is applied.
Type: Integer
Optional property

min_size:
The minimum number of VMs belonging to the AutoScaling group when the scheduled policy is applied.
Type: Integer
Optional property

start_time:
The time in the form of UTC for the actions defined in this policy to start.
Type: String. Should be in UTC format
Optional property

recurrence:
The time in UTC that recurring actions described in this policy will start in future.
Type: String. Should be in Cron format. (http://en.wikipedia.org/wiki/Cron)
Optional property

PS: The OpenStack Mistral project provides task scheduling services, so should we integrate with Mistral? Maybe we need a discussion.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.