An architect always has the tough job of convincing the client that the solution deployed is “optimum” under the given constraints!!.
Especially when it comes to Azure where there is a constant Cost vs Compute fight!!.
Got this excellent diagram from the Windows Architecture Guidance which illustrates what you get when you create an Azure account..
Basically when you select Azure as an offering in your subscriptions you get
- One Azure Project(Portal).
- Within this portal you can host upto 6 Services(Websites)
- Upto 5 Azure Storage Accounts(each with 100TB of data).
- Interesting Limitation:- Each service can have only upto 5 roles(Web+ worker in any combination)
- Very Interesting Limitation:- The entire project can consume only 20 compute instances!!
The last point is extremely important, but to understand its significance we need to understand some basics in Azure.
You create your service as a combination of web + worker roles, each role you configure runs on a Virtual Machine(VM)
For each role you can define the size of VM you prefer, based on the memory and disk space requirements expected or that role.
Here are the configurations for the VMs
Compute Power is equal to the number of CPU cores being consumed by your VM!!
Suppose you had 2 role configured for 3 instances, each on Large VMs then you consumed 2*3*4=24 instances of the CPU core and are actually out of space!!.
The calculation is Role*instances*No of CPU Cores in VM.
A very important point to remember when you define the tasks being accomplished by your roles and the kind of VM they are being hosted on!!