Feature request: Auto-scaling/healing
Auto-scaling/auto-healing
Proposer
- Adam Israel
Type
Feature
Target MDG/TF
UI, SO, VCA
Description
This feature proposes that the VNFD and UI be extended to support and modify operational rules regarding the resource usage of a VNF, including the scaling up or down of resources or the replacement of failed resources.
Once metrics are collected from one or more components of a VNF, the operator may want to make decisions on how to scale resources in response to them.
These rules can be defined by an alarm, which defines the metric in question,
such as cpu usage, active network connections, disk io, etc. The alarm can then
define what action to take in the event the alarm is triggered, be it to
request or release resources from the RO, or to send a notification to the
operator that alarm has occurred.
A reference example of this functionality can be found in the libjuju examples.
Demo or definition of done
Here's an example of what that definition might look like, based on an example VNF composed of two charms: aaavnf and mysql.
aaavnf:
min-units: 1
max-units: 10
alarms:
high-load:
statistic: average
metric: cpu
comparator: '>='
threshold: .80
period: 300
policies:
add-capacity:
scaling-adjustment: 30
adjustment-type: percent
warmup: 360
low-load:
statistic: average
metric: cpu
comparator: '<='
threshold: .50
period: 300
policies:
decrease-capacity:
scaling-adjustment: -1
adjustment-type: units
mysql:
min-units: 1
max-units: 10
alarms:
high-io:
statistic: average
metric: cpu
comparator: '>='
threshold: .80
period: 300
policies:
add-capacity:
scaling-adjustment: 30
adjustment-type: percent
warmup: 360
low-io:
statistic: average
metric: cpu
comparator: '<='
threshold: .50
period: 300
policies:
decrease-capacity:
scaling-adjustment: -1
adjustment-type: units