SurfZone

SurfZone is a cost management feature that helps limit the amount spent on cloud computing each month.

Feature Description

Cloud Service (CSPs) charge users for all the services they use. Unexpected costs and cost overruns are often reported by users. SurfZone is a feature that helps users control the cloud costs, including compute and storage volumes, that are generated by running jobs using MMCloud. SurfZone allows an administrator to set a monthly limit (or quota) on the MMCloud-related cloud costs incurred by a group of users. When the limit is exceeded, running jobs are automatically canceled or suspended (the choice is configurable). Jobs stay in that state until the quota is replenished at the start of the next month or the limit is increased. At that time, suspended jobs can resume automatically or wait for user input.

Operation

To enable SurfZone, a user with administrative privileges must first configure a SurfZone (or quota) policy and then assign users to that policy. The quota policy defines the monthly spending limit, the action taken when the limit is exceeded, the action taken when the limit is increased or the quota replenished, and the threshold for alerting users that the limit is approaching.

MMCloud-related costs are aggregated across users assigned to the same policy. Periodically, the aggregate cost is compared to the monthly limit. The interval is configurable, although the minimum interval is one hour.

When the aggregate cost across the group of users meets or exceeds the monthly limit, the quota policy is consulted to determine what action to take (cancel or suspend). You can cancel a suspended job at any time.

If jobs are suspended, they remain suspended until the quota is renewed at the start of the following month or the monthly limit is increased. At that time, the quota policy is consulted again to determine what action to take — resume automatically, stay suspended, or cancel.

The SurfZone policy can be modified (updated) at any time. You can remove a user from a SurfZone policy or add a user to a SurfZone policy at any time.

Note: The aggregate cost incurred by a group of users assigned to a SurfZone policy is checked against the quota limit at most once per hour. It is unlikely for the aggregate cost and quota limit ever to match exactly. In practice, jobs are only canceled or suspended when the aggregate cost exceeds the quota limit. Set the quota limit conservatively (that is, use a lower value) because actual costs always exceed the limit by some amount.

Configuration using CLI

You can create and manage SurfZone policies using the CLI or the web interface. Similarly, you can assign users to (or remove from) SurfZone policies using the CLI or the web interface.

To create and manage a quota policy using the CLI, complete the following steps.

  1. Enter the following float command at the shell prompt.

    float quota-policy add NAME --limit LIMIT --action cancel|suspend --auto-resume=true|false --threshold ALERT

    Choose between cancel or suspend and between true or false, and replace:
    • NAME: name to associate with this quota policy
    • LIMIT: amount in dollars that is the upper limit for monthly spending
    • ALERT: percentage of monthly limit consumed that triggers an alert to users (default is 80)
  2. Display all quota policies by entering float quota-policy list. Each quota policy is identified by an id.
  3. Assign a user to a quota policy by entering the following command

    float user update UNAME|UID --quota-policy ID

    Replace:
    • UNAME (or UID): username or uid of user to assign to quota policy
    • ID: identifier (id) associated with quota policy (for example, 2f4qaesir4wxz71mazstq). Use "0" to remove user from this quota policy.
  4. (Optional) Change quota policy settings by entering the following command.

    float quota-policy update ID --name NAME --limit LIMIT --action cancel|suspend --auto-resume=true|false --threshold ALERT

    Choose between cancel or suspend and between true or false, and replace:
    • ID: quota policy id
    • NAME: new name to associate with this quota policy
    • LIMIT: amount in dollars that is the updated upper limit for monthly spending
    • ALERT: updated percentage of monthly limit consumed that triggers an alert to users

Example

float quota-policy add bioteam --limit 25 --action suspend --auto-resume --threshold 90
id: 1c6zg1agw73x4dtmc7iy4
name: bioteam
metric: Cost
overageAction: suspend
autoResume: true
threshold: 90%
limit: 25
float user add userone --passwd secret123 <---- Optional step: only if new user required
username: userone
uid: 5003
gid: 5003
role: normal
group: ""
email: ""
type: builtin
enabled: true
ownGroup: ""
float user update userone --quota-policy 1c6zg1agw73x4dtmc7iy4
username: userone
uid: 5003
gid: 5003
role: normal
group: ""
email: ""
type: builtin
enabled: true
ownGroup: ""
quotaUsages:
    - id: p4lpx08sdevp5qs6eqec6
      policyId: 1c6zg1agw73x4dtmc7iy4
      policyName: bioteam
      metric: Cost
      limit: 25
      threshold: 90%
      usage: 3.8295

Configuration using Web Interface

You can create and manage SurfZone policies using the CLI or the web interface. Similarly, you can assign users to (or remove from) SurfZone policies using the CLI or the web interface.

To create and manage a quota policy using the web interface, complete the following steps.

  1. From the left-hand panel, select ADMINISTRATION > SurfZone
  2. On the SurfZone screen, click Create SurfZone on the top, right-hand side.
  3. Fill in the information in the pop-up window as follows.
    • Name: name to associate with this policy
    • Quota Amount: monthly spending limit in dollars
    • Usage Notification Threshold: percentage of monthly limit consumed that triggers an alert
    • Quota Exceeded Action: select Cancel or Suspend
    • If Suspend selected, check (or uncheck) box, to select auto-resume (or no auto-resume)
  4. Click Create in the bottom, right-hand corner.
  5. From the left-hand panel, select ADMINISTRATION > Users and Groups
  6. On the Users and Groups screen, select the Users tab.
  7. Locate the user to add to SurfZone policy and then click Assign SurfZone icon under the Actions column.
  8. In the pop-up window, use the pull-down menu to select a SurfZone policy (choose None to remove user from SurfZone policy).
  9. Click Assign in the bottom, right-hand corner.
  10. (Optional) To change SurfZone settings, select ADMINISTRATION > SurfZone from the left-hand panel.
    • Locate the quota policy to change and then click the edit icon under the Actions column.
    • In the pop-up window, make changes and then click Edit in the bottom-right-hand corner.