Availability sets for redundancy in Azure - Time & Space Complexity
We want to understand how the time to deploy and manage virtual machines changes when using availability sets for redundancy in Azure.
How does adding more virtual machines affect the operations needed to keep them highly available?
Analyze the time complexity of the following operation sequence.
// Create an availability set
az vm availability-set create --name MyAvailabilitySet --resource-group MyResourceGroup --platform-fault-domain-count 2 --platform-update-domain-count 5
// Create multiple VMs in the availability set
for i in range(1, n+1):
az vm create --resource-group MyResourceGroup --name VM$i --availability-set MyAvailabilitySet --image UbuntuLTS --admin-username azureuser --generate-ssh-keys
This sequence creates one availability set and then creates n virtual machines inside it to ensure redundancy.
Identify the API calls, resource provisioning, data transfers that repeat.
- Primary operation: Creating each virtual machine inside the availability set.
- How many times: This operation repeats n times, once per VM.
Each additional virtual machine requires a separate creation call, so the total operations grow directly with the number of VMs.
| Input Size (n) | Approx. Api Calls/Operations |
|---|---|
| 10 | 1 availability set + 10 VM creations = 11 |
| 100 | 1 availability set + 100 VM creations = 101 |
| 1000 | 1 availability set + 1000 VM creations = 1001 |
Pattern observation: The number of operations increases linearly as more VMs are added.
Time Complexity: O(n)
This means the time to deploy scales directly with the number of virtual machines you add to the availability set.
[X] Wrong: "Creating an availability set once means adding more VMs won't increase deployment time much."
[OK] Correct: Each VM still needs its own creation process, so deployment time grows with each VM added, even though the availability set is created once.
Understanding how deployment time grows with the number of resources helps you design scalable and reliable cloud solutions confidently.
"What if we created multiple availability sets and distributed VMs evenly among them? How would the time complexity change?"