DEV Community

Cover image for From Virtual Machines to Virtual Machine Scale Sets
 Ganiyat Olagoke Adebayo
Ganiyat Olagoke Adebayo

Posted on

From Virtual Machines to Virtual Machine Scale Sets

After exploring Azure Virtual Machines and resource management, the next logical step is creating Azure Virtual Machine Scale Sets (VMSS) — a service designed to deploy and manage multiple identical VMs automatically.

VMSS builds on the same VM fundamentals but introduces scalability, availability, and automation, which are essential in real-world cloud environments.


What Is Azure VM Scale Set?

Explain simply:

  • A VMSS is a group of identical VMs
  • Managed as one unit
  • Automatically scales based on demand

One VM handles traffic. VMSS handles growth.


Why VM Scale Sets Matter

Cover real-world benefits:

  • Automatic scaling (up & down)
  • High availability
  • Load balancing integration
  • Cost efficiency (pay only for what you need)

VM vs VM Scale Set (Simple Comparison)

Azure VM VM Scale Set
Single instance Multiple instances
Manual scaling Auto-scaling
Basic availability High availability

Core Components of VMSS

Introduce key concepts:

  • Instance count
  • Scaling rules
  • Load Balancer
  • Availability Zones
  • Upgrade policies

When to Use VM Scale Sets

Examples:

  • Web applications
  • APIs
  • Background processing
  • Seasonal or unpredictable traffic

Here is A step-by-step guide


Step 1: Create a Virtual Machine (Foundation)

Every scalable system starts with a single, well-configured VM.

  • Create a Virtual Machine in Azure Portal

  • Choose:

    • Image (Windows/Linux)

  • VM size
  • Authentication (password or SSH key)

  • Configure networking and security rules

  • Deploy the VM


Why this matters:
This VM becomes the template for scaling later.


Step 2: Add and Configure an Additional Disk

Once the VM is running, you can extend its storage.

Steps:

  1. Open the VM → Disks

  1. Click Create and attach a new disk
  2. Select disk type (Standard / Premium)

  1. Attach and save
  2. Initialize and format the disk inside the VM (OS level)

To complete this set up check out my Blog on

https://dev.to/adebayo_ganiyatoladunjoy/how-to-add-a-data-disk-to-an-azure-virtual-machine-windows-linux-331n

Why this matters:
Real workloads often require multiple disks — OS + data + logs.


Step 3: Prepare the VM for Imaging

Before capturing an image, the VM must be cleaned and generalized.

For Windows:

  • Run Sysprep
  • Shut down the VM

For Linux:

  • Deprovision the VM
  • Shut down the VM

VM must be Stopped (deallocated) before capture.

Why this matters:
This ensures every future VM created from the image starts fresh.


Step 4: Create an Azure Compute Gallery

Azure Compute Gallery (formerly Shared Image Gallery) helps manage VM images.

Steps:

Create an Azure Compute Gallery


Create an Image Definition

  • OS type
  • VM generation
  • Publisher / Offer / SKU


Capture the VM into the gallery as an Image Version

Why this matters:
The gallery makes your image:

  • Reusable
  • Versioned
  • Scalable across regions

Step 5: Capture the VM Image

Now you turn your configured VM into a reusable image.

Steps:

  • From the VM → Capture

  • Select Azure Compute Gallery

  • Choose the image definition

  • Create a new image version

Once completed:

From the image created, we can further create a virtual machine or a virtual machine skill set. Here, as the title implies, we are creating a ** virtual machine skill sets

The VM image is ready
The original VM is no longer needed for scaling


Step 6: Create a Virtual Machine Scale Set (VMSS)

Now comes the scaling part

Steps:

Create **Virtual Machine Scale Set


Choose the **custom image from the Compute Gallery


Configure:

  • Instance count (min / max)
  • Autoscaling rules
    Attach:

  • Load Balancer

  • Networking
    Review and deploy

Result:
Azure deploys multiple identical VMs automatically based on demand.


Step 7: Monitor and Scale

Once deployed:

  • Monitor CPU, memory, and traffic
  • Azure automatically:

    • Scales out during high demand
    • Scales in when demand drops

Why this matters:
This is how production-grade cloud applications are built.


Clean-Up: Delete Resources to Optimize Cost

After creating the virtual machine skill sets and confirmed that it works as expected, it’s important to clean up unused resources.

For learning and practice environments:

  • Virtual Machines
  • Disks
  • Public IPs
  • Load Balancers
  • Image versions (if no longer needed)

…can continue to incur costs if left running.

Deleting resources you no longer need helps you:

  • Control cloud spending
  • Practice good cloud governance habits
  • Build cost-awareness early in your cloud journey

In the cloud, what you don’t delete, you pay for.


Bringing It All Together

This hands-on process connects multiple Azure concepts into one complete workflow:

  1. Create a Virtual Machine – the foundation
  2. Add and initialize a data disk – realistic storage setup
  3. Prepare and capture the VM image – consistency and reusability
  4. Store the image in Azure Compute Gallery – versioned image management
  5. Create a Virtual Machine Scale Set – scalability and high availability

What starts as a single virtual machine evolves into a scalable, automated system capable of handling real-world workloads.

This journey reinforced an important lesson for me:
scalability isn’t a separate feature — it’s the result of intentional, well-planned steps.


Key Takeaways (Perfect Blog Closing)

  • A single VM can become a scalable system
  • Azure Compute Gallery enables consistency
  • VM Scale Sets automate availability and scaling
  • Planning images correctly saves time and cost

This journey helped me understand that scaling isn’t magic — it’s structured preparation.


Top comments (0)