Sunday, April 5, 2009

Private Azure Clouds?

Lately there has been a lot of discussion on Microsoft's recent announcement to not provide the ability to host your own cloud in your data centre. For some additional background, please check out the following links:

During the PDC time frame(Fall 2008), I started to pay attention to the Azure platform and its offerings. Initially, I thought that this stuff was pretty cool and that it would be something that I would want to host in my enterprise. It wasn't until I started to better understand just what is involved in running a platform like this that my mind has since changed. At PDC, I attended a session called ".NET Services: Messaging Services - Protocols, Protection, and How We Scale" by Clemens Vasters. I believe that it was around this time that my opinion about hosting an on premise cloud started to change.

So I have put together a few reasons why I think it is a good idea to leave it to Microsoft to host the Azure platform.

Complexity - Part of the reason why I would be interested in a cloud offering to begin with is to let someone else take care of the hard part. Windows patching, upgrades and up time are all challenges of operating a highly available solution. If someone can provide me that, then I can focus on solving my core business problem.

Scale and Elasticity - The "pay as you go" model has many benefits, especially during the initial launch of your Cloud applications and services. If you were to build this on your own, how big, or small, do you make your cloud and how quickly can you allocate more resources to an application? Adding new processing capabilities on the Azure platform is as simple as "turning a dial". I suspect that this would be very problematic for many organizations to implement.

Cost - Perhaps if you had a stock pile of cash to build a larger than required data centre, you could. However, in this climate there are not a whole lot of companies that can do this. One company, with the capital to do so would be Microsoft. Generally, environments are planned based on expected requirements + x% for growth. How many companies would have the capital to invest in a platform that gives them the ability to scale out in the fashion that Azure allows you do.

Microsoft also has a Geo-Scale initiative where your applications/data may be stored in several different data centres around the world. The benefit of this is to take advantage of lower latency where you have customers accessing your application from all over the world. Also, avoiding natural disasters and widespread power outages are additional reasons to look for Geo-scale. It was only a few years ago where we had most of Eastern Canada and Eastern United States shut down do to a widespread power outages. Yes, UPS and generators will help, but many cannot withstand multi-day outages. Having Geo-Scale ensures of availability since regional events can be offset by data centres outside the affected areas.

Infancy - The Azure platform is still relatively immature. If Microsoft was about to "productize" this offering, I believe that it would slow down innovation. Microsoft would then have to worry about what other versions of the cloud a customer is running to ensure of backwards compatibility and interoperability. Note, I am looking at this from a platform perspective. I am not letting Microsoft off the hook for ensuring that their APIs/services still function for people who have written applications on top of them.

To look at the other side of the coin, I do feel that there are some valid use cases where someone would want to be able to host an Azure cloud platform:

ISV/ASP - Microsoft has generally worked well with ISV and ASPs in the past. I can see some ASP (Application Service Providers) looking to get on board the next wave of Microsoft Technology and start hosting these applications. For many ASPs, they have been hosting Web Applications for years. Evolving to the Azure platform is a natural progression. While I am sure there are many top notch providers out there, at the present time I am just not sure how many of them would be able to host a platform as big and complex as Azure.

Government - Many government departments, have privacy regulations, or laws, that prevent them from allowing their data to exist in 3rd party data centres. Other constraints may include hosting data in foreign countries. For instance data stored in the United States may be subject to the Patriot act. If your company is outside the United States, you may not want your data subject to the Patriot act. These types of constraints, do make hosting the Azure cloud on premise to be very appealing. You get to leverage the "building blocks" that Microsoft has provided in Azure, yet have total control within your environment.

Conclusion - For me, in my current situation, the Microsoft hosted Azure Platform is more advantageous. If I have requirements to expose, or exchange, data with people outside of my organization, I would prefer to let Microsoft handle the infrastructure related challenges that allow me to focus on solving my business requirements.

No comments: