# availability calculation of a azure service fabric stateful application

I have looked at the question and answer in How do you calculate the compound Service Level Agreement (SLA) for cloud services?

I have a service fabric application which has a stateful service which stores the data in the disks of the VMs themselves. Service fabric relies on underlying Virtual machine scale set's availability, which is 99.95 % The azure storage VHD has a SLA of 99%

Going by the answers in the question above, is my applications availability 99.95 % * 99% = 98.9505 % ?

This seems a little strange that i use a stateful service in azure service fabric which is supposed to be a distributed service mesh framework and the availability of the services built is so low.

I am sure I am missing something. Can anyone tell me if my calculation is correct ? Do I need to consider the number of replicas in my calculations in which case I have as many VHDs as replicas ??

• Could you provide some context, e.g. did one of your customers request this?
– 030
Commented Dec 22, 2017 at 7:01
• Possible duplicate of How do you calculate the compound Service Level Agreement (SLA) for cloud services?
– 030
Commented Dec 24, 2017 at 12:04
• I actually think this question is quite nuanced to Service Fabric as a product and platform, it's also worth remembering that Azure Service Availablity thresholds are very soft in nature - if they failed to meet the SLA then you get 10% back in expenditure for that month in the form of Service Credits. Commented Jan 17, 2018 at 12:15
• Not exactly for your maths, your vm availability has good chances to already encompass vhd failure as they probably use it, they are not independent probabilities so I'd assume the worst case is the vm availability. (I mean a failure of vhd would probably turn down the vm also, those maths are OK for independent service where a failure if one won't cause a failure of the other) Commented Jan 21, 2018 at 1:20

Virtual Machine Scale Sets (VMSSs) don't have a SLA of their own:

Virtual Machine Scale Sets is a free service, therefore, it does not have a financially backed SLA itself. However, if the Virtual Machine Scale Sets includes Virtual Machines in at least 2 Fault Domains, the availability of the underlying Virtual Machines SLA for two or more instances applies. If the scale set contains a single Virtual Machine, the availability for a Single Instance Virtual Machine applies. See the Virtual Machines SLA for more details.

The above statement points to the fact that VMSSs are just an orchestration layer over the top of Virtual Machines and as you quite rightly pointed out results in an availability for a VMSS of 99.95%.

In terms of the storage calculation, there are several parameters here:

1. Whether you are using Hot or Cold storage, the availability for Hot storage is 10 times that of cold storage.
2. Whether your application is read or write heavy, what you need to consider here is that there are separate SLAs for reading and writing.

Let's make some assumptions:

1. Storage is, in general, cheep. Therefore, only ever use the Hot Storage Tier.
2. Managed Disks are, in general, easier to use. Therefore, you are limited to only using Locally Redundant Storage.

With the above two assumptions your storage SLA is 99.9%.

Multiplying these two figures together you get, 99.985%, this is still kind of low, but higher than your 98% figure above. You can increase this number by hosting Service Fabric across multiple regions:

This would give you system availability close to four nines, i.e. 99.9898%