0

We have a standard 3 tier web application that need to be migrated into cloud (more of VM based lift and shift instead of cloud native at this point). Wondering which factors should I consider to make a decision if Azure Scale Set or Azure Availability Set should be used for Web and Application tiers.

Probably answer to questions like:

  1. Can availability set autoscale like Scale set?
  2. Any overhead of using either option for a simple web application?
  3. Will both need load balancer in front of them ? Might help to take a decision.

Any suggestions please?

Saturn CAU
  • 155
  • 2
  • 8
  • 1
    I would recommend to use web apps in Azure that will be easier to scale during load. With scale sets - I have observed that Whenever the scale set will scale horizontally it will spin up the base image used earlier during provision, have your base image will all required application and dependencies, probably store it in a blob storage. Hence if you used vanilla market image and deployed your web application, during the scaling out, it will just spin the image. If it is a VM lift and shift, use Availability set with Azure LB in front of it . AV will make sure it fault tolerant – Harbinder Singh Oct 23 '18 at 16:16
  • its not fault tolerant, its highly available. thats a big difference. – 4c74356b41 Oct 23 '18 at 16:25
  • Yup highly available. Thank you – Harbinder Singh Oct 23 '18 at 16:29
  • Thanks @HarbinderSingh but confused with last few comments, do you mean AvailabilitySet is fault tolerant whereas scaleset is not ? – Saturn CAU Oct 23 '18 at 16:43

2 Answers2

2

You can refer to the N-tier architecture on virtual machines. Each of tier consists of two or more VMs, placed in an availability set or VM scale set. The load balancer is used to distribute requests across the VMs in a tier. Each tier is also placed inside its own subnet, and add NSG rules to restrict access to each tier and route tables to individual tiers.

For your questions:

  1. No, The main difference is that a Scale Set have Identical VMs which makes it easy to add or remove VMs from the set whereas an Availability Set does not require them to be identical. An availability set is spread across fault domains that shared a set of hardware components, which means when you have more than one VM in different fault domains in a set it reduces the chances of losing all your VMs in event of a hardware failure in the host or rack. A regional (non-zonal) scale set uses placement groups, which act as an implicit availability set with five fault domains and five update domains. Refer to this question.
  2. It's recommended to use VM Scale Sets for autoscaling. VMSS can automatically create and integrate with the Azure load balancer or Application Gateway.
  3. Yes, both need Azure LB in front of them.
Nancy
  • 26,865
  • 3
  • 18
  • 34
1

Generally speaking, both scenarios do not offer any way to magically make this happen, so you are kinda forced to use webapps if you want minimum overhead.

  1. yes it can, but you need to prestage vms
  2. yeah, you need to configure vms and for vmss you need automation so that scaling can happen automatically
  3. yes, both will need a load balancer (web apps - not).

But your app might not work with webapps, so you are kinda forced to use vms or vmsses

4c74356b41
  • 69,186
  • 6
  • 100
  • 141