The Answer here is C
Let us first understand the distinction between Scaling and avalability.
Scaling: Increase or decrease of VMs depending on loads
Availability: Presence of VMs on multiple servers
In these 2 definitions Scaling is automatic while availability is manual.
In the question, there is a key statement which is "App1 always run on at least 8Vms" this means that App1 must be present on at least 8vms. Here, we don't have any concern with scaling up or scaling down. So, our answer is already tending towards AVAILABILITY SET
Now, when you mention Availability set, you are already talking of Domains, both fault and update
Now when we have 10 update domains, the app will be distributed into 2VMs per domain and since we have 2VMs per domain, whenever an upgrade is to be done, only 2VMs can go down at a single time making us have 8VM i.e 4 update domains available every time.