Windows Azure is a flexible cloud-computing platform that provides services for virtualizing VMs; building, deploying, and managing resources, data, and services; and building cloud-based applications and websites. What all this means is that you can leverage physical data centers that Microsoft has built and supports globally (see Figure 5-2) and deploy your applications to run in geographically dispersed locations. Within each of these locations are racks of servers (for example, Windows Server 2008 R2) that enable you to deploy into these remote locations. This, in essence, represents the cloud (or at least Microsoft’s cloud) and the benefits to the cloud: the fact that you have virtualized environments around the world that you don’t need to physically manage, and with which you can start up and use in a matter of minutes.
As Microsoft’s key cloud platform, Windows Azure enables you to provision and scale resources to the cloud without having to worry about chasing and managing your on-premise hardware. When you use Windows Azure you not only get application scale (hardware needs expanding as your data and application needs grow), but you also get patching and operating-system management (your cloud-hosted environment is always up to date), and a 99.9 percent uptime guarantee.
You might think of Windows Azure as consisting of three major pieces:
As a developer, you also have a main web portal, which you use to manage your applications, services, database, websites, virtual machines, and so on. Additionally, you have a rich, underlying set of APIs (for example, REST and .NET) that support task automation (for example, creating a new virtual machine). Figure 5-3 illustrates what this web portal looks like. Note that clicking each of the available options on the left side of the portal invokes a view that displays meta data as well as performance and usage information, and enables you to configure properties of that service. It also provides you with the ability to create new service instances (for example, a website or SQL Database) and configure properties against those newly created services.