Support

Deployment Scaling

Deployment Scaling

Auto-scaling of servers in a server group is the mechanism that allows deployment infrastructure to match deployment demand as closely as possible.

Scaling behavior can be controlled via several methods.

  1. Cloud provider

  2. enStratus default

  3. enStratus custom

Some cloud providers provide a mechanism for auto-scaling servers in a group. If the cloud provider supports this behavior, it is probably supported by enStratus in the configuration of the server group.

By default, enStratus will scale servers in a server group based on the parameters defined in the server group. The default scaling behavior mechanism is based on the CPU load average of the server. The minimum and maximum server values defined in the server group limit the scaling of servers to the defined range.

To enable scaling, the maximum number of servers in a server group must be greater than the minimum. enStratus will scale the number of servers in a group up the maximum, but will not exceed the maximum number of servers. It is possible to customize the scaling behavior of a server group by utilizing/extending logic contained in the /enstratus/bin/scaleCheck script.

The scaleCheck script that controls scaling behavior signals enStratus to scale up, do nothing, or scale down by returning 1, 0, or -1, respectively. enStratus calls /enstratus/bin/scaleCheck every 5 minutes or less.

1 #!/bin/bash
2
3 # Copyright 2009 enStratus Networks LLC
4 #
5 # scaleCheck - Checks to see if this server is resource constrained or is wasting
6 # resources
7 #
8 # This software is part of the enStratus Cloud Management System. Only
9 # authorized licensees of enStratus may use this software and only
10 # in the context of enStratus-managed virtual servers and machine images.
11 # Unauthorized copying or distribution of this software is strictly prohibited.
12 # Authorized licensees may copy this software onto any machine images 13 # and/or virtual hosts being managed by the enStratus system as needed.
14 #
15
16 set -u
17
18
19 BASENAME=‘basename $0‘
20 CUSTOM="/enstratus/custom/bin/$BASENAME"
21
22 if [ -x ${CUSTOM}- ] ; then
23         ${CUSTOM}- "$@"
24         exit $?
25 fi
26
27 if [ -x ${CUSTOM}-pre } ; then
28         ${CUSTOM}-pre "$@"
29         if [ $? != 0 ] ; then
30                 exit $?
31         fi
32 fi
33
34 STATUS=0
35
36 if [ -x ${CUSTOM}-post ] ; then
37         ${CUSTOM}-post "$@"
38         STATUS=$?
39 fi
40
41 exit ${STATUS}

A voting mechanism is used by enStratus to determine whether or not to scale the number of servers in a group. Essentially, if the majority of servers in a server group ”vote” to scale up by returning 1, a new server will be started. If the majority of servers in a server group vote to scale down by returning -1, a random server in that group will be terminated. If most servers vote 0, no scaling will occur.

The scaling behavior sensitivity is regulated by thresholds handled by enStratus to prevent runaway scaling up or down in the deployment. The ”sensitivity” of scaling behavior is controlled on the tab where the minimum and maximum servers are set. The sensitivity settings are called breach and cool down periods.

Breach and cool down periods control the duration over which the servers in a server group must vote to scale up or down. These period settings prevent rapid fluctuations in the number of servers online in a server group.

For more detail, please read: How auto-scaling works. With pictures. from the Support Portal Forum.

back to top

Updated: 08-01-2011:

enStratus Customer Login

Need additional assistance?
Contact Us

Newsletter Sign-Up

Thanks for requesting to join our email newsletter. Look for our periodic updates on cloud computing and enStratus.