This is the first in a four-part series from contributor Patrick Meader on working with Microsoft Azure.
The Azure Services Platform (Azure) is Microsoft's first attempt at a cloud services platform, their take on implementing Platform as a Service (PaaS)-style functionality. Azure includes an operating system (Windows Azure) and several collections of developer, communication and data services intended to simplify the creation and hosting of Windows-based applications in the cloud.
Microsoft released pricing and other details of its Azure Services Platform, including service level agreements for key components of the platform and its tentative release date in November, at its Worldwide Partner Conference in July 2009.
Microsoft is far from alone in pursuing a vision of hosting applications and services on the Internet, and it would be impossible to discuss Microsoft's vision for Azure without also touching on the efforts of its chief competitors. For example, Google has been developing Google App Engine (GAE), while Amazon has the Amazon Elastic Compute Cloud (EC2) platform. Azure, however, shares more similarities with GAE than with EC2, which is more about renting hardware-based resources than a platform to program on.
In this series of tips, discover what is needed to develop applications for the Azure platform, with particular attention paid to the requirements of a Visual Studio developer. Find out which alternative languages can be used to create Azure-based applications, as well as learning about several cases where Azure might make sense and Azure pricing structure.
How Azure builds on Windows
The biggest promise of Azure-based applications is the ability to write them to scale as needed in real-time. Customers will therefore only use the amount of resources they need, rather than budgeting a set amount of resources that can overtax or underutilize their current setup. What Azure provides is the ability to move anything, from pieces of users' infrastructure to the entire thing, into the cloud using Azure as a platform. This is similar to using various flavors of Windows now; in fact, Microsoft describes Azure as a new piece of the Windows platform.
"Microsoft Azure has terrific potential to allow us to offload compute-intensive processes, allowing us to scale at a fraction of the cost of traditional solutions," said Jeff Certain, software architect at Colorado CustomWare.
That ability to scale up still requires some manual adjustments and decisions on the users' end, although some of the process can be automated. Adds Certain, "One of the downsides to Azure is that it still requires manual intervention to scale. The introduction of an API to allow spinning up new nodes programmatically would open the door for a number of interesting scenarios."
Microsoft is targeting several different groups with Azure: Web developers, corporate developers, ISVs and businesses. The arguments to each vary slightly, but it's the same basic promise Microsoft always makes: Microsoft Windows developers or businesses that use or resell Microsoft-based developer products can leverage their existing knowledge and/or infrastructure to take advantage of cloud-based computing.
Part 1: An introduction to developing for Microsoft Azure
Part 2: Azure tools for cloud-based development
Part 3: Comparing Microsoft Azure's pricing policies
Part 4: The risks and rewards behind developing in Azure
ABOUT THE AUTHOR: Patrick Meader has been covering the Windows development as an editor, analyst and author for more than 13 years.