At the opening keynotes of Microsoft Professional Developer’s Conference 2008, the big news was the introduction of the Azure Services Platform, an internet-scale cloud services platform hosted in Microsoft data centres, which provides an operating system (called Windows Azure) and a set of developer services that can be used individually or in combination. Microsoft’s Ray Ozzie dedicated a good portion of the keynotes to the why, how and when of this new service platform.
Microsoft has made extensive experience over the years running highly available services - such as Windows Update that delivers updated software components to users, to online Office help, MSDN, Hotmail, and others. These services grew organically on an increasing number of data centres distributed around the globe to serve a massive amount of requests, and were managed independently by separate units within Microsoft. As these services grew organically, each business unit in charge of running one of them made its own experience with scalability, load-balancing and high availability. Several years ago, Microsoft pulled together all of this widely distributed knowledge and expertise and saw how this could be leveraged by Microsoft's enterprise customers and developers. This provided a unique breeding ground for the new cloud operating system.
Organisations are faced with increasingly prohibitive costs running all of their operations in-house. Multiple data centres need to be established at different locations, data recovery, fail-over and load-balancing requires much specialised expertise and is very costly to implement. In keeping up with the increasing pace of increasingly agile business processes, demands towards IT departments increase, and many processes are nowadays being outsourced. This is especially true for customer-facing infrastructure, or enterprises with a large partner base or supply chain. As specific peaks in service requests occur - for example close to or during holidays, major releases or even product recalls - infrastructure must be planned for the highest possible usage scenario - leading to investment into much hardware, connectivity and electricity even though the infrastructure is idling most of the time.
The push for outsourcing infrastructure, and running services "in the cloud" - on externally hosted environments is therefore an attractive proposal, and one that companies such as Amazon, Google, IBM and others have been actively pursuing. Microsoft arrives rather late at this game, and - as an operating system vendor - approaches it from a different angle. Some pieces of the Azure Services Platform are still in its very early steps - APIs are still not fully mature, nor complete, and will undergo changes, while others - such as SQL Server Data Services (SSDS) - are more mature. Through this announcement at PDC2008 however, Microsoft is now luring developers on board by providing a full development environment early.
Microsoft has been widely expected to make a move within the cloud computing area, and this announcement comes just one week after Amazon removed the "beta" tag from its Elastic Compute Cloud (EC2) offering. At the same time, Amazon announced the availability of Windows and SQL Server on EC2, and that it would now offer SLAs (service level agreements)for EC2. In his keynote speech, Ray Ozzie "tipped his hat" to Amazon for their innovation, and expressed his respect for the groundwork done by Amazon, defining the patterns, architectural models and business models.
"On-premises" vs. "in the cloud"
Microsoft has recently started offering some its well-known solutions in two variants: the traditional "on-premises" variant where a customer needs to acquire and manage the infrastructure, and "in the cloud" - where the service is run within Microsoft's environment and accessible to the customer through the Internet. This latter is often tagged with "Online" and offers Microsoft's Enterprise Class software delivered via subscription services, hosted by Microsoft and sold with partners. Some services are already offered via both the on-premises and cloud variants, such as SharePoint , DynamicsOnline, Office Live Meeting, Exchange, and others. This service offering will increase dramatically. Microsoft emphasises that the company continues to fully believe, offer and support the on-premises offerings, as it has always done; and that the "cloud" offerings will be complementary - offering more choices to the customer without restricting them in any way.
The approach to the Azure Services Platform follows a well known pattern: Coming late to the party, Microsoft must make up now by enticing developers to embrace this new platform and creating the "killer-apps" needed to make Azure a success. Because of the extensive developer community and the advantages that Azure will bring, it will merely be a matter of time until applications will make it "into the cloud". But is Microsoft really late - or rather, does it really matter? There are currently very few established dominant vendors in this space, and whilst some customers are experimenting, very few businesses have already bet the farm on a specific cloud platform. Microsoft has a history of being able to turn the ship around and catching up quickly when it wants to.
Azure will only run in Microsoft data centres, and there are no plans to have other hosting companies offer the same service. This means no competition, and the question is whether customers are willing to be locked in this way. At this time, Azure runs .NET code, support for native code will be added soon. Microsoft points out that Azure provides an open, standard-based and interoperable environment with support for multiple internet protocols, including HTTP, REST, SOAP and XML. Third party tools and languages such as Ruby, PHP and Python are welcome. However, Microsoft's cloud services will allow only Windows Azure applications to be run - no code from other environments such as Linux or Java. Those would have to be hosted at other providers - however they can still use Microsoft's .NET Services, SQL Data Services and Live Services "across the cloud".
Compared to current cloud computing leaders such as Amazon and Google, the Microsoft cloud environment looks very much like a walled garden. Whether this turns out to be a disadvantage for the adoption of Windows Azure remains to be seen - at the current Professional Developer's Conference taking place, Microsoft is heavily promoting Azure and the shift towards the cloud. Some developers here are excited, some others very sceptical.
It now remains to be seen how well Microsoft's approach will work, whether market conditions or policy will make Microsoft's cloud offering more open and flexible by allowing other hosting companies to host Windows Azure applications, or allowing customers to host non-Windows Azure applications with Microsoft.