This article will begin by looking at the Windows Azure data centers and will then walk through each of the available services provided by Windows Azure.
Windows Azure Data Centers
Microsoft has invested heavily in Windows Azure over the past few years. Six data centers across three continents have been developed to serve millions of customers. They have been built with an optimized power efficiency mechanism, self-cooling containers, and hardware homogeneity, which differentiates them from other data centers.
The data centers are located in the following cities:
- US North Central – Chicago, IL
- US South Central – San Antonio, TX
- West Europe – Amsterdam
- North Europe – Dublin
- East Asia – Hong Kong
- South-East Asia – Singapore
Windows Azure Services
Having seen the data centers, let’s move on to discuss the various services provided by Windows Azure.
Microsoft has previously categorized the Windows Azure Platform into three main components: Windows Azure, SQL Azure, and Windows Azure AppFabric. However, with the recent launch of the Metro-style Windows Azure portal, there are some slight changes to the branding, but the functionality has remained similar. The following diagram illustrates the complete suite of Windows Azure services available today.
A. Core Services
The Compute service refers to computation power, usually in the form of provisioned Virtual Machines (VMs). In Windows Azure, the compute containers are often referred to as ‘roles’. At the moment, there are three types of roles:
(i) Web Roles
Web Roles offer a predefined environment, set-up to allow developers to easily deploy web applications. Web server IIS (Internet Information Services) has been preinstalled and preconfigured to readily host your web application.
(ii) Worker Roles
Worker Roles allow the developer to run an application’s background processes that do not require user interface interaction. Worker Roles are perfectly suitable to run processes such as scheduled batch jobs, asynchronous processing, and number crunching jobs.
(iii) VM Roles
VM Roles enable developers to bring their customized Windows Server 2008 R2 VM to the cloud, and configure it. VM Roles are suitable for cases where the prerequisite software requires lengthy, manual installation.
Using VM Roles has one substantial drawback. Unlike Web Roles and Worker Roles, whereby Windows Azure will automatically manage the OS, VM Roles require developers to actively manage the OS.
Apart from ‘roles’, there are two other essential terms, namely ‘VM Size’ and ‘Instance’.
- VM Size denotes the predefined specifications that Windows Azure offers for the provisioned VM. The following diagram shows various Windows Azure VM Sizes.
- Instance refers to the actual VM that is provisioned. Developers will need to specify how many instances they need after selecting the VM Size.
Windows Azure Storage is a cloud storage service that comes with the following characteristics:
- Highly available with 99.9% monthly SLA
- Scalable with automatic load-balanced partitioning
- Data is replicated for resilience and protection with 3 copies within the same data center, and another 3 copies geo-replicated in another data center
- Accessible through several libraries including .NET, Java, PHP, Ruby, etc. REST-based API
- Up to 100TB size limit per storage account
- Cost effective
- Storage capacity: $ 0.14 per GB per month
- Storage transaction: $ 0.01 per 10,000 transaction
The first step in using Windows Azure Storage is to create a storage account by specifying storage account name and the region:
There are four types of storage abstraction that are available today:
(i) BLOB (Binary Large Object) Storage
Blob Storage provides a highly scalable, durable, and available file system in the cloud. Blob Storage allows customers to store any file type such as video, audio, photos, or text.
(ii) Table Storage
Table Storage provides structured storage that can be used to store non-relational tabular data. A Table is a set of entities, which contain a set of properties. An application can manipulate the entities and query over any of the properties stored in a Table.
(iii) Queue Storage
Queue Storage is a reliable and persistent messaging delivery that can be used to bridge applications. Queues are often being used to reliably dispatch asynchronous work.
(iv) Azure Drive
Azure Drive (aka X-Drive) provides the capability to store durable data by using the existing Windows NTFS APIs. Azure Drive is essentially a VHD Page Blob mounted as an NTFS drive by a Windows Azure instance.
SQL Azure database is a highly available database service built on existing SQL Server technology. Developers do not have to setup, install, configure, or manage any of the database infrastructure. All developers need to do is define the database name, edition, and size. Developers are then ready to bring the objects and data to the cloud:
SQL Azure uses the same T-SQL language and the same tools as SQL Server Management Studio to manage databases. SQL Azure is likely to lead to a shift in the responsibility of DBAs toward a more logical administration, as SQL Azure handles physical administration. For example, a SQL Azure database will be replicated to three copies to ensure high-availability.
Although some variations exist today, Microsoft plans to support the features unavailable in SQL Azure in the future.
Coming up in my next article, I will carry on the discussion with the additional services that Windows Azure offers including ‘Building Block Services’, Data Services, Networking and more so make sure you keep an eye out for it because it’s coming soon!