Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/includes/nginxaas-azure/ncu-description.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ nd-files:
- content/nginxaas-azure/quickstart/scaling.md
---

An NGINX Capacity Unit (NCU) quantifies the capacity of an NGINX instance based on the underlying compute resources. This abstraction allows you to specify the desired capacity in NCUs without having to consider the regional hardware differences.
An NGINX Capacity Unit (NCU) quantifies the capacity of an NGINX instance based on the underlying compute resources. This abstraction allows you to specify the desired minimum capacity in NCUs without having to consider the regional hardware differences.

An NGINX Capacity Unit consists of the following parameters:

Expand Down
49 changes: 23 additions & 26 deletions content/nginxaas-azure/quickstart/scaling.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,19 @@ nd-content-type: how-to
nd-product: NAZURE
---

F5 NGINXaaS for Azure (NGINXaaS) supports manual and automatic scaling of your deployment, allowing you to adapt to application traffic demands while controlling cost.
F5 NGINXaaS for Azure (NGINXaaS) supports automatic scaling of your deployment to adapt to application traffic demands allowing you to control costs.

{{< call-out "note" >}}This feature is only available for Standard plan(s).{{< /call-out >}}
When enabled, your NGINXaaS deployment will automatically scaled out to increase the capacity (and cost) or scaled in to decrease the capacity (and cost). Capacity is measured in [NGINX Capacity Units (NCU)](#nginx-capacity-unit-ncu).

An NGINXaaS deployment can be scaled out to increase the capacity (increasing the cost) or scaled in to decrease the capacity (reducing the cost). Capacity is measured in [NGINX Capacity Units (NCU)](#nginx-capacity-unit-ncu).

In this document you will learn:

- What an NGINX Capacity Unit (NCU) is
- How to manually scale your deployment
- How to enable autoscaling on your deployment
- What capacity restrictions apply for your Marketplace plan
- How to monitor capacity usage
- How to estimate the amount of capacity to provision
{{< call-out "note" >}} This feature is only available for Standard plan(s). For the Developer plan, the capacity cannot be changed{{< /call-out >}}

## NGINX Capacity Unit (NCU)

{{< include "/nginxaas-azure/ncu-description.md" >}}

## Manual scaling

To update the capacity of your deploymentv using the Azure Portal,

1. Select **NGINXaaS scaling** in the left menu.
1. Select `Manual`.
1. Set the desired number of NCUs. Scale increases in 10 NCU intervals (10, 20, 30, and so on).
1. Select **Submit** to update your deployment.

{{< call-out "note" >}}There's no downtime while an NGINXaaS deployment changes capacity.{{< /call-out >}}

{{< call-out "note" >}}When using manual scaling, consider setting up alerts on the `system.cpu` metric to be notified when scaling may be needed. See the [Metrics Catalog]({{< ref "/nginxaas-azure/monitoring/metrics-catalog.md" >}}) for more information on available metrics.{{< /call-out >}}

## Autoscaling

With autoscaling enabled, the size of your NGINXaaS deployment will automatically adjust based on traffic requirements without the need to guess how many NCUs to provision. You must specify a minimum and maximum NCU count. NGINXaaS will maintain the size of the deployment ensuring the number of provisioned NCUs does not fall below the set minimum NCUs and does not grow beyond the maximum NCUs. Refer to the [Capacity Restrictions](#capacity-restrictions) when setting the minimum and maximum capacity.
With autoscaling enabled, the size of your NGINXaaS deployment will automatically adjust based on traffic requirements without the need to guess how many NCUs to provision. You must specify a minimum and maximum NCU count. NGINXaaS will maintain the size of the deployment ensuring the number of provisioned NCUs does not fall below the set minimum NCUs. Refer to the [Capacity Restrictions](#capacity-restrictions) when setting the minimum and maximum capacity.

When creating a new NGINXaaS deployment with autoscaling enabled, the initial size of the deployment will match the minimum NCU count.

Expand All @@ -53,6 +31,8 @@ To enable autoscaling using the Azure Portal,
1. Specify the minimum and maximum NCU count.
1. Select **Submit** to enable NGINXaaS deployment autoscaling.

{{< call-out "note" >}} For bandwidth-heavy workloads, NGINXaaS may automatically allocate NCUs beyond your configured autoscale maximum to satisfy demand, and you’ll be billed for any additional bandwidth consumed during the billing interval. For all other workloads, capacity is capped at the configured autoscale maximum{{< /call-out >}}

### Scaling rules

NGINXaaS automatically adjusts the number of NCUs based on "scaling rules." A scaling rule defines when to scale, what direction to scale, and how much to scale. NGINXaaS will evaluate the following scaling rules, in order, based on the percentage capacity consumed metric and the provisioned NCU metric.
Expand All @@ -63,6 +43,23 @@ NGINXaaS automatically adjusts the number of NCUs based on "scaling rules." A sc

To avoid creating a loop between scaling rules, NGINXaaS will not apply a scaling rule if it predicts that doing so would immediately trigger an opposing rule. For example, if the the "Urgent Increase Rule" is triggered due to a sudden spike in traffic, but the new capacity will cause the "Decrease Rule" to trigger immediately after, the autoscaler will not increase capacity. This prevents the deployment's capacity from increasing and decreasing erratically.

## Manual scaling

We continue to support manual scaling for backwards compatibility with legacy plans. In manual mode, the NCU value you set will impact the capacity that we provision for your NGINXaaS deployment. If your workload exceeds this capacity, then we may or may not be able to support this additional load. We recommend using autoscaling to automatically adjust capacity based on traffic.

To update the capacity of your deployment using the Azure Portal,

1. Select **NGINXaaS scaling** in the left menu.
1. Select `Manual`.
1. Set the desired number of NCUs. Scale increases in 10 NCU intervals (10, 20, 30, and so on).
1. Select **Submit** to update your deployment.

{{< call-out "note" >}}There's no downtime while an NGINXaaS deployment changes capacity.{{< /call-out >}}

{{< call-out "note" >}}When using manual scaling, consider setting up alerts on the `system.cpu` metric to be notified when scaling may be needed. See the [Metrics Catalog]({{< ref "/nginxaas-azure/monitoring/metrics-catalog.md" >}}) for more information on available metrics.{{< /call-out >}}

{{< call-out "note" >}} For bandwidth-intensive workloads, NGINXaaS may automatically allocate NCUs beyond your configured value to satisfy demand, and you’ll be billed for any additional bandwidth consumed during the billing interval. For all other workloads, capacity is capped at the configured value{{< /call-out >}}

## Capacity restrictions

The following table outlines constraints on the specified capacity based on the chosen Marketplace plan, including the minimum capacity required for a deployment to be highly available, the maximum capacity, and what value the capacity must be a multiple of. By default, an NGINXaaS for Azure deployment will be created with the corresponding minimum capacity.
Expand Down
Loading