Virtual machine spec - Azure App Service plan

In Azure App Service, plans define CPU, memory, and storage resources that are available to VM instances to run apps. When you add an Azure target with the necessary permissions, Turbonomic discovers the plans associated with apps, and shows them as Virtual Machine Specs in the supply chain. Currently, Turbonomic discovers all plans, except App Service Environment v3 I4, I5, and I6.

Virtual Machine spec in the supply chain
Note:

For a list of permissions, see Azure Permissions.

Points to consider:

  • Azure App Service offers several types of apps, including web apps, mobile apps, API apps, and logic apps. Turbonomic discovers the plans associated with these apps, but only recommends scale actions for plans associated with web apps. If a plan is no longer associated with any type of app, Turbonomic will recommend that you delete it.

  • For web apps, Turbonomic also discovers the app instances that consume resources from a plan, and shows them as App Component Specs in the supply chain. The supply chain links App Component Specs with Virtual Machine Specs to establish their relationship.

  • VM instances underlying a plan scale as a group. For this reason, Turbonomic represents these VM instances as a single Virtual Machine Spec entity and does not monitor them individually. The Entity Information chart for a Virtual Machine Spec shows the current number of VM instances, while resource charts (such as the Virtual CPU and Virtual Memory charts) show aggregated metrics for all VM instances.

Synopsis

Synopsis
Provides: Resources to apps (via App Component Specs)
Consumes: Resources from Azure regions
Discovered through: Azure targets

Monitored resources

Turbonomic monitors the following resources:

  • Virtual memory (vMem)

    Virtual memory (vMem) is the measurement of memory that is in use.

  • Virtual CPU (vCPU)

    Virtual CPU is the measurement of CPU that is in use.

  • Storage amount

    Storage amount is the measurement of storage capacity that is in use.

  • Number of replicas

    Number of replicas is the total number of VM instances underlying an App Service plan.

Actions

Turbonomic supports the following actions:

  • Scale

    Scale Azure App Service plans to optimize app performance or reduce costs, while complying with business policies.

  • Delete

    Delete empty Azure App Service plans as a cost-saving measure. A plan is considered empty if it is not hosting any running apps.

Scale actions

Turbonomic supports vertical scaling actions for provisioned App Service plans. These actions change the size of all VM instances underlying a plan (for example, from small to large, or large to medium). Horizontal scaling actions, which change the number of VM instances underlying a plan, are currently not supported.

Vertical scaling recommendations rely on a variety of factors, including:

  • Resource utilization percentiles

  • On-demand monthly costs

  • VM instance count

    Turbonomic will only recommend vertical scaling actions on plans with six or less VM instances.

  • Scaling eligibility

    • Eligible for scaling – Basic, Standard, Premium v2, Premium v3, Isolated, Isolated v2

    • Not eligible for scaling – Workflow Standard, Elastic Premium, Free, Shared, Dynamic/Serverless

  • Azure-enforced constraints, including:

    • Region – Only recommend instance types in regions where they are available

    • Server rack – Only recommend instance types on server racks where they are available

    • Zone redundancy – If zone redundancy is enabled, only recommend instance types that support zone redundancy

    • Deployment slots – Only recommend instance types that support the currently configured number of deployment slots that can be added to apps

    • Hybrid connections – Only recommend scaling to instance types that support the currently configured number of hybrid connections for a plan

      Note:

      To see the number of deployment slots and hybrid connections configured for a plan, set the scope to the corresponding Virtual Machine Spec and then view the Entity Information chart.

  • Scaling constraints that you set in Turbonomic policies for Virtual Machine Specs

    For example, you can set a constraint if you want App Service plans to only scale to or avoid certain instance types.

For scale actions, you can create policies to control the scale actions that Turbonomic recommends. In those policies, choose from the following options:

  • Cloud scale all – execute all scaling actions

  • Cloud scale for performance – only execute scaling actions that improve performance

  • Cloud scale for savings – only execute scaling actions that reduce costs

The default action acceptance mode for these actions is Manual. When you examine the pending actions, only actions that satisfy the policy are allowed to execute. All other actions are read-only.

When policy conflicts arise, Cloud scale all overrides the other two scaling options in most cases. For more information, see Default and User-defined Automation Policies.

Delete actions

When Turbonomic discovers an empty plan (i.e., a plan that is not hosting any running apps), it will immediately recommend that you delete the plan as a cost-saving measure. Turbonomic can recommend deleting provisioned App Service plans, as well as Elastic Premium and Workflow Standard plans.

If a currently empty plan is not deleted and is subsequently discovered as used, Turbonomic removes the delete action attached to it.

Delete actions include the 'Days Empty' information that indicates how long a plan has been empty.

Days Empty details

You can control the delete actions that Turbonomic recommends, based on the 'Days Empty' value that you set. For example, if you want Turbonomic to only generate delete actions for plans that have been empty for at least 5 days, perform these steps:

  1. In the default policy for Virtual Machine Specs, disable delete actions.

  2. Create a dynamic group of Virtual Machine Specs and set the 'Days Empty' filter to Days Empty > = 5.

  3. Create a custom Virtual Machine Spec policy, set the scope to the group that you just created, and then enable delete actions in that policy.

Actions in charts

Use the Necessary Investments and Potential Savings charts to view pending Virtual Machine Spec actions. These charts show total monthly investments and savings, assuming you execute all the actions.

Necessary Investments and Potential Savings charts

Click Show All for each chart to review and execute the actions.

The table shows the following:

  • Actions that are pending for each Virtual Machine Spec

  • Savings or investments for each Virtual Machine Spec

Utilization charts for scale actions

Turbonomic uses percentile calculations to measure resource utilization, and drive scaling actions that improve overall utilization and reduce costs. When you examine the details for a pending scaling action on an App Service plan, you will see charts that highlight resource utilization percentiles for a given observation period, and the projected percentiles after you execute the action.

Utilization charts

The charts also plot daily average utilization for your reference. If you have previously executed scaling actions on the App Service plan, you can see the resulting improvements in daily average utilization. Put together, these charts allow you to easily recognize utilization trends that drive Turbonomic's scaling recommendations.

Note:

You can set scaling constraints in Virtual Machine Spec policies to refine the percentile calculations. For details, see Scaling Sensitivity.

Disruptiveness and reversibility of scale actions

Turbonomic always recommends scaling to a different instance type, so all scaling actions are disruptive and require downtime. You can reverse an action by scaling an App Service plan back to its original instance type.