Differentiate Between Availability Set, Availability Zone and Scale Set

For architects around the globe, 2 main parameters for their architectural decision making are Availability and Scalability. The terminologies mentioned in this blog i.e. Availability Set, Availability Zone, and Scale Set, are related to these parameters. The point here is that rather than mechanically go though these terminologies, try to understand the purpose and related design aspects of it, you can clearly differentiate among them. So I am distributing these terminologies between Availability and Scalability and see how you could benefit by easily understanding the difference between them.
 

Availability

 
Availability ensures that resources are available whenever you access it. As a cloud service provider, Azure has different availability benchmarks for different services. These availability marks are normally publishing like 99.99XXXX %. So how many 9's, that much better availability.
 
Availability Set
 
During Virtual Machine creation, availability set is making sure that each VMs inside an availability set are isolated with separate physical servers, compute racks, storage units, and network switches. For example, let we have 3 VMs in an Availability Set. So if one set of physical servers, compute racks, storage units, and network switches of a VM down, resources of other 2 VMs still up and works as they 3 VMs are deployed under separate resources and down of one VM won't impact other VM. So here we are clearly achieving  Availability.
 
This availability is inside a single region in a specific data center. If full data center down, we lost this entire availability. Think that you have your furniture in a house across different rooms. During a flood, even though one room has been drowned, furniture inside other rooms still available. But if all house has drowned, you lost all your furniture.
 
 
Availability Zone
 
What ever told about availability, all are applicable here as well. But this availability is inside a single region across multiple data centers. Multiple data centerer can be inside a single zone or across multiple zones and all under a single region even though across region  replication also possible. If all those data centers down, we lost this entire availability. Think that you have your furniture in 2 houses across different rooms. During a flood, even though one entire house has been drowned, furnitures inside 2nd house is still available. But if both houses are drowned, you lost all your furnitures. In below image, each zone consists of multiple data centers and you decide how to do replicate across data centers and availability zones in that region.
 
 
 

Scalability

 
Scalability ensures that resources can handle the amount of work, based on change of quantity of work. If suddenly more work to do and later less work to handle, scalability ensures that resources are flexible to handle it. You can notice that scalability underneath brings availability to systems.
 
Scale Set
 
You can group multiple identical pool of VMs under a single scale set. For example you have 2 VMs which has applications belongs to travel domain and then you can put both under a single scale set and define same scale set for both VMs easily. Same way VMs with accounting domain applications to club under a different scale set. So it's easy to manage multiple VMs as a group to define and handle their scalability by keeping a consistent configuration across your environment. Here you define scalability against scale sets rather than individual VMs in it. So, thousands of VMs can be handled easily.
 
 
 
Here conclude Availability Set, Availability Zone, and Scale Set details. I used VM as an azure resource against these terminologies, but these are applicable to multiple azure resources even though the same technology concepts explained here will be used.