
In the last six months many new features, improvements and changes have accorded in the Azure platform most are from the technology side, as the system matures new lessons are learned and new features are created as the result of a feed cycle between the Azure development team and the user community. Below are three issues we have dealt with in the last three months.
Technology
6) Disaster recovery for web services requires 2 instances
Part of hosting in cloud platform is receiving the 99.9… uptime, without the extra cost of expensive network gear, redundant hardware and an on the payroll IT employees. Azure solution promises the 99.5 uptime for it services, it is a built in function for Azure CDN, Storage and SQL, yet to achieve the same for a web role you have to upload at least to instances. Apparently the issue was not so clear to many, so a new warning massage was added in the management and development interface.

7) Improve your availability
Using more than one instance is not enough, I would strongly suggest putting to usage the “Upgrade Domains and Fault Domains” settings. A “Fault Domain” is a physical allocation of hardware serving your application, for instance two different server racks. If you have uploaded two instances or more the app fabric is responsible to use at least two “Fault Domains”. That way if hardware unit fails at least one instance will keep on running.
“Upgrade Domains” is a logical grouping of your instances, the default is 5 domains the Azure app fabric will make sure these domains are located on more than one “Fault Domain”. Why would you need an “Upgrade Domain? Well when Microsoft is upgrading the servers it will upgrade one upgrade domain at a time if your servers are divided to several “Upgrade Domain” there will not be a point in time when all your instances are down.
To learn more check the following blog post "Service Runtime in Windows Azure" .
-There is one catch hidden in this process; let’s say you have 3 live instances all working in the capacity of 70%, your total used capacity is 210% out of 300%. Now one of the servers is undergoing maintenance which leaves you with a total capacity of 200% where will the remaining 10% go to?
8) Place your services close together
As ambiguous as the cloud platform is the servers are located at a physical location and network has an impact on your application performance and your client user experience. Obviously you should select a physical hosting solution as close as you can to the majority of your clients, but that is not enough placing your application modules that communicate with each other is even more important. If you are using SQL Azure or Azure Storage solution with collaboration of Azure Hosted services, place the services at the same physical location ( and no the regions Anywhere US and South Central US are not the same) if you decide to place services in multiple location closer to your client don’t rely on network connection across sits, consider duplicating your SQL Azure DB and using the sync service to replicate data across the different DB instances, that way your application and DB services will be located in the same place.
New features - Missing a feature you are probably not the only one
9) DB instance can be scaled
Web or business edition that was hard decision when we started our SQL Azure project leaving business edition performance advantage aside, size was a big factor. To increase your DB size from 1GB to 10 GB required a new instance and the coping of the data to the new instance while keeping some kind of sync process going on while the application servers are being rerouted to the new DB server. Now multiple that by the number of your clients !!! and try to explain the downtime or why you have to change their in-house ETL process.
Well the new version of SQL Azure allows you to change the DB size on the fly both for the web edition and the business edition.
Farther more having a 50GB combining with the new SSRS reporting system brings new possibilities for a mini datamarts in the cloud.
10) You can host multiple subdomain on one web roll
Filling we are not getting all we can from our instances (remember the multiple instances issue) we decided to upload more than one web site on our instances. Sadly you can upload only one web role per instance and there is no way around it. Yet from Azure documentation we knew you can host multiple web sites on the same web role using endpoint on different ports, but who will ever want to host his web site on a port other than 80? After looking for a solution, we approached Microsoft Azure support center; within 24 hours a blog post was published with a solution tailored for our needs.
How does it work ? the web role imitates the behavior of an IIS by setting a different host header entries the web-roll diverts the traffic to a different “website”.
Up until now if you had three clients each requires two instances (web-servers) and use a constant of 120% computing power, you had to upload each client on a three server group and only one server in the group could be down at a time. By uploading all three client applications to 6 servers instead of 9, utilizing 360% out of 600% available computing power, the new setting increases your availability and redundancy and at any point in time you can have two servers down and still have more the 360% CPU power, not to mention saving the cost of 3 instances!!!
New feature are being added to the different cloud solution at an amazing rate, and the development community is filling the web with new request and replacements for missing feature, such as fulltext search and comparison tools. If you run into a dead end, you must remember you are probably not the only person out there with this issue Google it or contact the support center, the solution is out there.
Guy