📖 Scenario: You are managing a web application hosted on Azure App Service. To handle varying user traffic efficiently, you want to set up auto scaling. This means the app will automatically add or remove instances based on CPU usage, so it stays fast and cost-effective.
🎯 Goal: Build an Azure Resource Manager (ARM) template snippet that configures auto scaling for an Azure App Service plan. The scaling rule should increase instances when CPU usage is above 70% and decrease when below 30%.
📋 What You'll Learn
Create a resource group variable named resourceGroupName with the value MyResourceGroup.
Create a variable named appServicePlanName with the value MyAppServicePlan.
Define an autoscale setting resource named autoscaleSetting targeting the App Service plan.
Configure two scale rules: one to scale out when CPU > 70%, another to scale in when CPU < 30%.
💡 Why This Matters
🌍 Real World
Auto scaling helps web apps handle traffic spikes smoothly without manual intervention, saving cost and improving user experience.
💼 Career
Cloud engineers and DevOps professionals often configure autoscaling to ensure applications remain responsive and cost-efficient.
Progress0 / 4 steps
1
DATA SETUP: Define resource group and App Service plan variables
Create two variables: resourceGroupName set to "MyResourceGroup" and appServicePlanName set to "MyAppServicePlan".
Azure
Hint
Use var to declare variables and assign the exact string values.
Create a JSON object named autoscaleSetting with name set to "autoscaleMyAppServicePlan", type set to "Microsoft.Insights/autoscaleSettings", and targetResourceUri set to the resource ID of the App Service plan using resourceGroupName and appServicePlanName.
Azure
Hint
Use template literals with ${variable} to build the targetResourceUri.
3
CORE LOGIC: Add scale rules for CPU thresholds
Inside autoscaleSetting, add a profiles array with one profile named "AutoScaleProfile". Add two rules: one to increase capacity by 1 when CPU percentage is greater than 70, and one to decrease capacity by 1 when CPU percentage is less than 30. Use metric triggers on Percentage CPU and set timeAggregation to Average.
Azure
Hint
Follow the Azure autoscale JSON schema for rules. Use metricTrigger and scaleAction objects inside each rule.
4
COMPLETION: Add location and finalize autoscale setting resource
Add a location property to autoscaleSetting with the value "eastus". Also add enabled set to true and notifications as an empty array. This completes the autoscale setting resource configuration.
Azure
Hint
Add location, enabled, and notifications properties at the top level of autoscaleSetting.
Practice
(1/5)
1. What is the main purpose of auto scaling in Azure App Service?
easy
A. Automatically adjust app resources based on demand
B. Manually increase server size when needed
C. Backup app data to cloud storage
D. Monitor user login activities
Solution
Step 1: Understand auto scaling concept
Auto scaling means the system changes resources automatically without manual intervention.
Step 2: Identify the purpose in Azure App Service
Azure App Service auto scaling adjusts the number of instances based on app demand to maintain performance and control costs.
Final Answer:
Automatically adjust app resources based on demand -> Option A
Quick Check:
Auto scaling = automatic resource adjustment [OK]
Hint: Auto scaling means automatic resource changes [OK]
Common Mistakes:
Confusing auto scaling with manual scaling
Thinking auto scaling backs up data
Assuming auto scaling monitors user activity
2. Which of the following is the correct way to set a CPU-based auto scale rule in Azure App Service?
easy
A. Set a rule to scale in when CPU usage < 90%
B. Set a rule to scale out when memory usage < 30%
C. Set a rule to scale out when CPU usage > 70%
D. Set a rule to scale out when disk space > 80%
Solution
Step 1: Identify correct metric for scaling out
CPU usage is a common metric to trigger scaling out when it exceeds a threshold.
Step 2: Check the threshold and direction
Scaling out happens when CPU usage is high (e.g., > 70%), not low or unrelated metrics like disk space.
Final Answer:
Set a rule to scale out when CPU usage > 70% -> Option C
Quick Check:
Scale out triggers on high CPU [OK]
Hint: Scale out when CPU usage is high, not low [OK]
Common Mistakes:
Using memory or disk space incorrectly for CPU scaling
Scaling in when CPU is still high
Setting wrong thresholds for scaling
3. Given this auto scale setting: minimum instances = 2, maximum instances = 5, scale out rule triggers at CPU > 60%, scale in rule triggers at CPU < 30%. If CPU usage rises from 50% to 65%, what happens?
medium
A. Instances reset to minimum count immediately
B. The number of instances increases by one, up to 5
C. No change in instances because CPU is below 70%
D. The number of instances decreases by one, down to 2
Solution
Step 1: Analyze CPU usage against scale out rule
CPU rose from 50% to 65%, which is above the 60% threshold for scaling out.
Step 2: Apply scaling limits
Instances will increase by one but will not exceed the maximum of 5 instances.
Final Answer:
The number of instances increases by one, up to 5 -> Option B
Quick Check:
CPU > 60% triggers scale out [OK]
Hint: Scale out triggers when CPU crosses threshold upwards [OK]
Common Mistakes:
Thinking CPU must be above 70% to scale out
Confusing scale in and scale out rules
Assuming immediate reset to minimum instances
4. You configured auto scaling with minimum 1 instance and maximum 3 instances. The scale out rule triggers at CPU > 50%. However, your app never scales out even when CPU is 80%. What is the most likely issue?
medium
A. CPU metric is not supported for scaling
B. The minimum instance count is too high
C. Maximum instance count is set too low
D. The scale out rule is disabled or not linked to the App Service
Solution
Step 1: Check if scaling rules are active
If the scale out rule is disabled or not properly linked, scaling won't trigger despite high CPU.
Step 2: Verify instance limits and metric support
Minimum and maximum instance counts are valid, and CPU is a supported metric, so these are unlikely causes.
Final Answer:
The scale out rule is disabled or not linked to the App Service -> Option D
Quick Check:
Active rules needed for scaling [OK]
Hint: Check if scaling rules are enabled and linked [OK]
Common Mistakes:
Assuming instance counts block scaling
Believing CPU metric is unsupported
Ignoring rule activation status
5. You want to optimize costs by setting auto scaling for your Azure App Service. You set minimum instances to 1 and maximum to 10. You add a scale out rule for CPU > 70% and a scale in rule for CPU < 40%. However, during peak hours, your app scales out to 10 instances quickly but never scales in after peak hours. What is the best way to fix this?
hard
A. Add a cooldown period to delay scaling in after peak hours
B. Increase the minimum instance count to 5
C. Remove the scale out rule to prevent scaling beyond 1 instance
D. Set scale in rule to CPU < 80% to scale in faster
Solution
Step 1: Understand why scaling in doesn't happen
Without a cooldown period, rapid fluctuations can prevent scale in or cause instability.
Step 2: Apply cooldown period to stabilize scaling
Adding a cooldown period delays scale in, allowing CPU to stay below threshold steadily before reducing instances.
Final Answer:
Add a cooldown period to delay scaling in after peak hours -> Option A
Quick Check:
Cooldown stabilizes scale in/out actions [OK]
Hint: Use cooldown to prevent rapid scale in/out flips [OK]
Common Mistakes:
Raising minimum instances unnecessarily
Removing scale out rule stops scaling out
Setting scale in threshold too high causes no scale in
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.