Horizontal autoscaling of virtual machines
Abiquo 4.0 introduces horizontal autoscaling of virtual machines, using the scaling groups group entity, which is defined for a base virtual machines in virtual appliances. Abiquo will clone the base virtual machine to scale the group out, or undeploy machines to scale the group in, according to your scaling rules.
Scaling groups
You can easily create a scaling group using a base virtual machine. You machine. When a scale out event or a scale in event is triggered, Abiquo will clone the base virtual machine and deploy, or delete or undeploy virtual machines, according to your scaling rules and policy. To trigger a scaling event, you can create an action plan for the virtual machine with scaling actions, and create scaling triggers that are either monitoring alerts for virtual appliances or schedules for planned scaling.
IMG1
How does Abiquo clone the base virtual machine?
Abiquo copies the virtual machine’s template from the Apps library to create a new virtual machine and then applies the same virtual machine configuration. First Abiquo will add the same amount of CPU and RAM as in the base machine, and create empty disks and external storage volumes to match the disk configuration, as well as network connections of the same category. Then Abiquo will assign the same firewall policies and connect to the same load balancers. And Abiquo will copy all other configuration, including Chef recipes, backups, cloud-init, variables, and so on.
Does the state of the base machine make a difference?
If the base virtual machine is not deployed, Abiquo will not deploy it. In order to add another virtual machine, Abiquo will clone the base machine and deploy the clone. If the base machine is deployed, Abiquo will count it as one of the active machines in the scaling group. As part of a scale in operation, Abiquo will delete clone machines but it will only undeploy the base machine. Note that if the base machine were deleted directly on the hypervisor, this would destroy the scaling group, whereas if the base machine is undeployed, the scaling group is not vulnerable to interference at the hypervisor level.
What does the user need to do to prepare for autoscaling?
Users will need to ensure that they have enough resources in their virtual datacenter to deploy up to the maximum number of cloned virtual machines. In particular, users will need to obtain enough available IP addresses of the same category to assign to the clones, for example, by reserving public IP addresses, or by obtaining IP addresses in external networks, or creating private networks.
What restrictions apply to cloned virtual machines?
You cannot create alarms for cloned virtual machines that are part of a scaling group.
How do I create and configure a scaling group?
A user with the privilege to Manage scaling groups can easily create a scaling group from the options menu of the base virtual machine icon.
IMG2
The following screenshot shows the dialog to create a scaling group.
IMG3
To define the size range of the scaling group, users can set the minimum and maximum size for the scaling group, in terms of running virtual machines (deployed and powered on). The minimum size must be greater than or equal to zero, where zero means that the base machine is not deployed. When you save the scaling group, if necessary, Abiquo will create clones of the base machine and deploy them in order to reach the minimum size.
Scaling rules
Scaling rules is an undeployed base machine with no clones. Administrators may need to consider allocation limits and available resources.
The cooldown is used by Abiquo to determine whether it is too soon to scale again. When Abiquo receives a scaling request, it checks if the cooldown time has passed since the last event. If it hasn’t, Abiquo will discard the scaling request.
Users can choose to maintain virtual machine anti-affinity layers when autoscaling.
To ensure that the Abiquo workflow feature does not impede autoscaling by requiring a workflow response before deploying clone machines, administrators with the privilege to Manage workflow for scaling groups can disable workflow or enable it as required.
To define how Abiquo will scale the virtual machine group out or in . You will need to during a scaling event, the user sets scaling rules. Remember that scaling rules do not schedule scaling events. Scaling rules only specify how many clones of the virtual machine to create or remove in a scaling operationscaling event. When scaling in, Abiquo deletes clone machines and/or undeploys the base machine. Scale in rules can be different from scale out rules. If you users add a time frame for scaling, Abiquo will only perform use the scaling rule during this interval. If you do not add a time frame, then the rule will be what is called a default rule. You A default rule has no time frame and users can create one default rule for scaling out and one for scaling in.
Scaling order
When scaling in, Abiquo will choose the oldest virtual machines to undeploy first. When scaling out again, Abiquo will not redeploy virtual machines that are undeployed; instead it will create new clones.
Cooldown period
You can add a cooldown period between scaling operations, which will enable you to ensure that Abiquo waits for your operation to complete before determining if further scaling is required.
Maintenance modeeach scaling direction.
What happens when I save the scaling group?
When you save the scaling group, Abiquo will mark the virtual machine icon with the scaling group symbol and display the scaling group name. If necessary, Abiquo will create clones of the base machine and deploy them in order to reach the minimum size. The number in the bottom right-hand corner of the icon is the number of running virtual machines in the scaling group, including the base machine.
IMG4
How do I set up an autoscaling operation?
To set up an autoscaling operation, you will need to create an action plan for the virtual machine with the scaling group and add an autoscaling action. Action plans can now include the following horizontal autoscaling actions:
Scaling group: Start maintenance
Scaling group: End maintenance
Scaling group: Scale out
Scaling group: Scale in
IMG5
How do I trigger the action plan for the scaling operation?
For Abiquo v4.0 action plans, the Triggers tab replaces the previous Task schedules tab, and you can now configure action plans to be triggered by alerts as well as by schedules.
IMG6
How can I open a scaling group again after I save it?
Click on the scaling group symbol in the top right-hand corner of the virtual machine icon.
IMG7
The scaling group will open as shown in the following image.
IMG8
How can I make changes to the scaling group?
To edit the scaling group and rules, you can put the scaling group into maintenance mode. This switches off autoscaling put it into maintenance mode by clicking the “cog” button on the scaling group icon, or in the top right hand corner of an open scaling group.
IMG9
While your scaling group is in maintenance mode, Abiquo disables autoscaling operations and enables you to edit the scaling group and make changes to your virtual machines, for example, to manually deploy or undeploy machines. Note that in maintenance mode you can undeploy the master virtual machine, but you cannot delete it without deleting the scaling group.
When you exit maintenance mode, Abiquo will apply your changes . Then Abiquo will and then adjust the number of virtual machines in the group to within the minimum and maximum size range.
Workflow
If you are using the Abiquo workflow feature, then this could impede autoscaling by requiring a workflow response before deploying clone machines. Administrators with the privilege to Manage workflow for scaling groups can disable workflow for these virtual machines, or renable it as required.What happens when a scaling event is triggered?
When an autoscaling event is triggered, Abiquo will search for a scaling rule that is valid for the specific time range, or for a default rule. Abiquo will create or delete/undeploy the number of virtual machines for the scaling operation, then wait for the cooldown period before accepting another scaling request. Scaling operations are managed by action plans and subject to all standard Abiquo constraints, such as privileges and allocation limits. In this initial release, Abiquo selects the virtual machines to delete or undeploy using first in, first out (FIFO), but in future releases the administrator will be able to select the scale in policy, from last in, first out (LIFO) or FIFO. When scaling out, Abiquo will always create new clones instead of deploying virtual machines that are undeployed, for example, machines that were manually undeployed during maintenance.
Deleting a scaling group
If you delete a scaling group, Abiquo will not destroy the virtual machines. It will place all the virtual machines in the virtual appliance as regular virtual machines and the scaling group constraints will no longer exist.
IMG10