Skip to content

Latest commit

 

History

History
63 lines (52 loc) · 3.3 KB

File metadata and controls

63 lines (52 loc) · 3.3 KB

Azure VM Scale Sets

  • Allows a virtual machine to deploy up to 1000 times in the same subnet.
  • Allow accurate auto-scaling
  • Provides high degree of control like IaaS, but manages networking/storage/compute/load balancing like PaaS.
  • Requires no pre-provisioning, automatically configures and manages:
    • Network
    • Load balancer
    • Network Address Translation (NAT)
  • Handles resource creations, dependencies and configurations.

Virtual Machines vs. Virtual Machine Scale Sets

Functionality Scale set VM
Azure Autocale 👍 👎
Availability zones 👍 👍
Reimaging 👍 👎
Overprovisioning 👍 Automatically increase reliability and faster deployment 👎 Custom code is required
Upgrade policy 👍 Can upgrade all VMs in scale 👎 Must be orchestrated
Attach data disks 👍 Applies to all instances in data sets 👍
Attach non-empty data disks 👎 👍
Snapshot 👎 👍
Capture image 👎 👍
Migrate to use managed disks 👎 👍
Assign public IP addresses 👎 Requires load balancer 👍 Possible on NIC

Connecting to a VM Scale Set instance VM

  • Done by accessing Load balancer inbound NAT rules and using the correct IP address and custom port.
  • You can see & set it in Load Balancer -> Inbound NAT Rules.

Continuous Delivery in VMSS

  • By default, the pipeline builds code, and updates VM scale set with the latest version of your application.
  • Can be done by two ways:
    1. Immutable Deployment
      • Create a custom image that already contains the OS and application in a single VHD.
      • Advantages
        • Predictability
          • Any new versions of the application can be tested on a similar VM Scale set and then deployed directly into the production instances without any downtime.
        • Easy to scale
        • Easy to roll-back
        • Faster to scale (no code to install on each VM as it is deployed)
        • Can use toolset from Visual Studio Team Services
    2. Use of VM extensions to install software to each instance at deployment time.
      • Customs script VM extension to install/update your application on VM scale set

Large VM Scale Sets

  • ❗ Scale sets created from Azure Marketplace images can scale up to 1,000 VMs.
  • ❗ Scale sets created from custom images can scale up to 300 VMs.
  • Layer-7 load balancing with the Azure Application Gateway is supported for all scale sets.
  • Scale sets are defined with a single subnet:
    • 💡 Ensure subnet is large enough to handle all potential VM instances.

Large scale set: can scale beyond 1000 VMs

  • Requires singlePlacementGroup = false property setting.
    • Layer-4 load balancing with scale sets composed of multiple placement groups requires Azure Load Balancer Standard SKU.
    • Fault Domains and Update Domains relate to a single placement group, to maintain high availability ensure there are at least two VM instances in each Fault Domain and Update Domain.
  • ❗Large scale sets require Azure Managed Disks.
  • Ensure your compute limits are high enough, the requirement for compute cores will prevent a successful deployment if not.