Skip to content

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