Horizontal and Vertical Scaling
- Vertical Scaling is about increasing resources to current vm/physical machine (increasing RAM/CPU).
- Adopting Vertical Scaling means we need to restart the workload which means downtime
- Generally scaling is used in the sense of increasing but the situation is same even to decrease resource
- Horizontal scaling is about increasing workloads to distribute the load among mutliple systems
- Adopting Horizontal scaling means we need not have a downtime because we are adding more workloads (vms)
- Adopting Horizontal scaling means we need not have a downtime because we are adding more workloads (vms)
- In Azure, We can perform both horizontal and vertical scaling
Vertical Scaling in Azure
- Changing the vm size in Azure is a way to perform vertical scaling, This leads to restart of the vm
- Create a VM with apache
- Now resize the VM size
Horizontal Scaling in Azure
- We have two options
- Manually add/remove vms
- Automatically increase or decrease vmss => Azure Virtual Machine Scale Set (VMSS)
Azure Virtual Machine Scale Sets (VMSS)
- Virtual Machine Scale Set Refer Here
- VMSS lets us do horizontal scaling, with
- fixed count maintained
- scale out and in based on some metric to automatically increase or decrease vms
- A VMSS represents a Virtual Machine with some component/application which needs to be scaled (order service, user service not both)
- To Create a VMSS ideally we need an Virtual machine Image rather than using userdata/custom data/run commands to install applications.
-
Exploring options while creating VMSS