This is the first of several articles about Azure, Microsoft's cloud computing platform that was rolled out in 2008. Azure is quite large, and during the next year we're going to see several entire books written about Azure. In other words, there's far too much to fit into a single article. However, I do want give you an overview of it, and get you up and running. So for this first article, I'll present a walk-through of the basic starter sample that ships with the software development kit, while explaining the concepts.
If you want to follow along, you'll need either Vista with Service Patch 1 or Windows Server 2008, as well as Visual Studio 2008. (Or instead of Visual Studio 2008, Visual Web Developer 2008 Express Edition works, too, according to the online documentation). You'll also need either SQL Server 2005 Express or SQL Server 2008 Express. SQL Server 2008 Express is available here.
The Foundations of Azure
One of the foundations of Azure (and many other cloud platforms) is the concept of geographically distributed services. This allows users from different parts of the planet (and within regions of the United States) to be able to download or use services that are hosted on a service reasonably close to them geographically. This has many obvious benefits, such as faster response time and minimizing data transfers through an already overcrowded Internet.
When you create software for Azure, your software lives as what is called a "compute service." This is basically the portion of your software running under Azure where your server-side code (such as ASP.NET code) lives.
Microsoft uses the word "role" to mean a single code component that runs. For example, you might create an ASP.NET application, which would be a role, in this case a "Web role." Further, you might create additional modules that run in the background; these are called "worker roles." Together, one or more roles constitute a compute service.
Included with the SDK are two tools that help you develop within your own environment before uploading your software to the actual Azure cloud. These tools mimic aspects of the Azure services. The first is the Development Fabric; the second is the Development Storage.
The Development Fabric basically simulates Azure itself on your own local development box, and includes a tool that lets you manage your running services.
The Development Storage simulates the server-side storage services. Azure provides you with two areas where you can store your data, depending on your needs. First, you have access to traditional relational databases through the SQL Data Services, which is a cloud-version of SQL Server. Next, you have access to a nonrelational, flat storage system called Storage Services. On your development box, the Development Storage mimics this latter form of storage.