Windows Azure … the Platform for “Never Down” applications!

The title above might sound like a stretch to some readers but when you dig into the details, you will find that it is actually true. True not so much by applying magic or jazzing up the marketing message but rather by implementing simple logic that is coupled with strong technological and foundational grounds.


Windows Azure platform offers three different roles:


1)      Web Role: For now, think of it as your web front end for your application

2)      Worker Role: For now, think of it as your application server

3)      VM Role: For now, think of it as your own server (that you control every bit of it) in the cloud


When you develop your Windows Azure application, you are able to test it locally within your development sandbox and when ready to deploy, there are certain rules you must comply with to achieve the high availability and scalability outcomes. Every cloud application needs to be published in 2 or more instances. So, for a web app only, as an example, you may want to have it installed as 2 or more web instances. These 2 or more are fronted by a load balancer that is aware of the backend instances and their virtual IP (remember, these move across hosts and therefore are known by virtual IPs)


The idea is simple: When upgrading an app, you bring down 1 instance at a time and while it is down, the load balancer takes that one instance from the pool so users do not feel a thing. When done, that upgraded instance is added to the available application resource pool for consumption. This simple logic continues until all instances are upgraded.


In not so controlled upgrade processes, the same logic applies. The Windows Azure fabric controller (which deserve a separate blog on its own) monitors the health of the Windows Azure environment and if an app hicks up for one reason or another, it is able to try to service it, and if that does not work, it is also able to decommission that instance altogether and spin another one with pristine set of binaries and configuration, added to the pool to maintain “we are always in business” state.


The above is an over simplification to a very advanced and rather very sophisticated logic that powers the Azure platform (being Windows or SQL) but what matters most is that your applications remain up and running even during maintenance and users do not experience any down time. This is just one portion of Microsoft’s “Cloud Power”.


More to come …

Comments (0)

Skip to main content