Previous Topic: MIG - Self Migration EnablerNext Topic: Filer Catalog


SLA - Application Controller - stop and start appliances based on performance and resource metrics

Latest version:

SLA: Controller

At a Glance

Catalog

Dynamic

Category

Application Controller

User volumes

yes

Min. memory

224 MB

OS

Linux

Constraints

no

Questions/Comments

Ask Forum

Functional Overview

SLA is an application controller which dynamically scales an application by starting and stopping other appliances within the application in accordance with a user-defined policy. Policy enforcement relies on periodic assessment of counter values accessed through the mtr terminal. The mtr terminal is typically connected to the aux terminal of the MON appliance. SLA tracks the values of a single counter over a group of appliances.

The policy is configurable through a simple web interface (GUI) exposed by SLA. The GUI is accessed using the application IP and the configured SLA port. A policy comprises:

SLA periodically calculates a trailing average for the counter by averaging the counter values of the running appliances in the appliance group over the trailing average period. When the trailing average passes the start value, SLA starts an appliance in the appliance group. When the trailing average passes the stop value, SLA stops an appliance in the appliance group.

SLA is typically used to start and stop individual web servers within the scalable web server appliances WEBx4/WEBx8 in response to HTTP request load.

Important

The SLA appliance is an assembly comprised of an instance of the PS8 port switch and an instance of the SLACTL appliance. The SLACTL appliance is not designed to be used independent of the containing SLA assembly. Use the SLA appliance when designing an application rather than directly using the SLACTL appliance.

Boundary

Resources

Resource

Minimum

Maximum

Default

CPU

0.1

0.1

0.1

Memory

224 MB

224 MB

224 MB

Bandwidth

1 Mbps

1 Mbps

1 Mbps

Terminals

Name

Direction

Protocol

Description

in

in

Any

Exposes a web interface (GUI) for configuring the policy. All other network traffic not directed to the GUI is passed-through aux without modification.

net

out

Any

Output for accessing the grid to facilitate appliance start/stop.

mtr

out

Any

Output for accessing performance and resource data using the MON Data Collection Interface.

log

out

CIFS

Output to a network file system for storing operational logs. If this terminal is unconnected, logs are stored on the config volume.

aux

out

Any

Auxiliary output. Incoming traffic that is not directed to the GUI is sent through this terminal without modification. This terminal can be left unconnected.

mon

out

CCE

Used for performance and resource usage statistics. This terminal can be left unconnected.

User Volumes

Volume

Description

config

Read/write volume for configuration data.

This volume is used to store:

This volume should be 10MB in size. See Preparing for Use for information about setting up a private key on the config volume.

Properties

name

type

description

appliance_group

string

The group of appliances which SLA dynamically starts and stops. This is an appliance name excluding any trailing numbers. For example, a value of main.srv.srv indicates that SLA will start/stop appliances whose names begin with main.srv.srv (that is, main.srv.srv1, main.srv.srv2, and so on.)
This property is mandatory.

grid_ctl_ip

IP

IP address of the grid controller on which the application is running.
This property is mandatory.

port_no

integer

Port for accessing the web interface. The GUI is accessed through the application IP and this port. Default: 8080.

username

string

User name for web-based authentication. If empty, no authentication is performed. Default: empty

password

string

Password for web-based authentication. This property is not used if username is empty. Default: empty

logs_base_dir

string

Directory where logs are stored. This property has no affect if the log terminal is not connected. Default: /

Performance

Additional resources do not affect performance.

Error Messages

The following messages may appear in either the appliance log file or the system log of the grid controller when the appliance fails to start:

Interior

The SLA appliance is an assembly comprised of an instance of the PS8 port switch ps and an instance of the SLACTL appliance ctl as shown in the diagram below.

Important: The SLACTL appliance is not designed to be used independent of the containing SLA assembly. Use the SLA appliance when designing an application rather than directly using the SLACTL appliance.

Operational Constraints and Behavior
Web Interface (GUI)

SLA exposes a web interface which is used to define the policy. This GUI is accessed using the application IP on the configured port port_no.

The Commit button commits the policy defined in the GUI for enforcement.

SLA GUI when a policy is being enforced

Above is an example of the GUI when a policy is being enforced. The graph shows the last 24 hours of policy enforcement and includes:

The buttons at the top of the GUI are used to:

Preparing to Use SLA in an Application

The following steps must be taken before SLA can be used to dynamically start and stop appliances within an application.SLA must be able to authenticate on the grid controller as a normal user.

To prepare to use SLA in an Application

  1. Create a public/private key pair in openssh format without a passphrase.
  2. Create a user on the grid whose public key corresponds to the generated public key.
  3. Put the generated private key file, with the name grid.private.key, on the root of the config volume of the appliance (such as /mnt/config/ folder) by performing one of the following procedures:

Start the application in debug mode and copy the grid.private.key in /mnt/config/ folder on the SLA appliance.

Typical Usage

LampX4

The diagram below shows how SLA can be incorporated in the LampX4 reference application. The INSSLR gateway properties are set to forward tcp traffic on port 8080 to its aux terminal. Pointing a browser at port 8080 of the LampX4 application IP or resolvable domain name brings up the web interface for SLA.

Notes:

SLA appliance

Notes

The appliance_group property does not resolve to two or more appliances within the application.

Open source and 3rd party software used inside of the appliance

SLA is a compound appliance comprised of PS8 and SLACTL. The base class of SLACTL is WEB5. There are no open source 3rd party software packages installed on SLACTL in addition to those found on its base class WEB5.