page contents

About the Post

Author Information

Brief Introduction to Windows Azure

First blog 🙂

Hey everyone, last week I was talking with a good friend of mine Antoine Victor from ProDataMan. I told him that I was looking at Microsoft’s
efforts with cloud computing, which is called Windows Azure, so he asked me to write-up a short blog on this technology.

I hate to start off a blog by copying a few pages out of the latest book that I am reading (called Windows Azure Step by Step) but the author did an amazing job describing the different type of platforms. I think this is an excellent place to start and to be honest I wish it was more prevalent for customers when they make their choice about which company to use for cloud computing.

Windows Azure is very clear with their approach, but not all cloud computes are created equal or use the same direct level in marketing their product. So let’s see what the Microsoft Press Author had to say about the different models.

Approaches to Cloud Computing

The idea behind any cloud computing proposal is for you to pay only for what you use, scaling up or down according to business needs. Vendors supporting cloud computing can interpret this statement differently, providing varying levels of services to achieve this result. The three approaches to cloud computing are Infrastructure as a Service (IaaS), Software as a Service (SaaS), and Platform as a Service (PaaS).

Infrastructure as a Service

Some vendors provide the infrastructure to build solutions, and you rent the hardware such as servers, load balancers, a firewall, and cables. You then configure these remotely and install your solutions on them. You can scale up by requesting more servers and reconfiguring the load balancer without purchasing more hardware. You can scale down at any time by reconfiguring the infrastructure you rented from the cloud service provider. This vendor approach is called Infrastructure as a Service (IaaS) because a customer can rent the infrastructure without having to forecast and provision for the highest possible demand in advance. In this approach, you are responsible for correctly configuring the rented infrastructure.

These are the most important points to remember about IaaS: The lower levels of the stack are managed by the vendor. Very few vendors actually provide an operating system. You are still responsible for managing everything, from the operating system to the applications. The obvious benefit of IaaS is that it frees you from the concerns of provisioning many physical or virtual machines.

Software as a Service

In another approach, you can rent a service offered by the vendor and then configure the service by using the interface provided by the vendor, without having to know what infrastructure the vendor uses to provide that service. This approach is called Software as a Service (SaaS) because you pay to use defined services. For example, Microsoft Exchange Online carries a per-mailbox charge. To configure it, you use a web application supplied by the vendor to request mailboxes, and name and dimension them. You receive a password for that user and nothing else is necessary—users can access their mailboxes immediately. This proposed interface has little in common with the on-premises version of Microsoft Exchange. In an SaaS model, you do not have
control over nor are you responsible for the hardware on which the service is installed. Similarly, you have no control over the operating system that runs
the service, nor any control over the software apart from what the web user interface exposes to you. In other words, a vendor provides everything required
to run the application, shielding you from all the underlying components.

Platform as a Service

The third approach is Platform as a Service, or PaaS. In this approach, you rent a platform on which you deploy your applications without configuring the infrastructure and without the limitations of the SaaS approach. The Wikipedia definition for PaaS is as follows (Wikipedia, Platform as a Service, 2011, …the delivery of a computing platform and solution stack as a service. PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet.

PaaS offerings may include facilities for application design, application development, testing, deployment and hosting as well as application services such as team collaboration, web service integration and marshaling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation. These services may be provisioned as an integrated solution over the web. The Windows Azure platform fits best in the PaaS category, because it doesn’t provide access to the underlying virtualization environment or operating system details such as the network interface, IP configuration, and disk management. The key concepts to remember when dealing with PaaS are:

The platform vendor provides and manages everything, from the network connectivity to the runtime.

PaaS offerings reduce the developer burden by supporting the platform runtime and related application services.

Developers can begin creating the business logic for applications almost immediately.

PaaS, compared to traditional hosting solutions, offers the potential for significant productivity increases, because the cloud provider manages all the hardware and operational aspects of the cloud platform.

Cloud Services Defined

The responsibility of you and the vendor is summarized in the following figure: (Tan color area is application owner responsibility)

The definition of cloud computing from Wikipedia is as follows (Cloud Computing):As you can see in the figure, despite significant differences among the various offerings in the cloud computing industry, vendors provide a set of services that you can rent so that you do not have to manage layers (presented as white, below the line).

“Cloud computing is Internet-based computing, whereby shared servers provide resources, software, and data to computers and other devices on demand, as with the electricity grid. Cloud computing is a natural evolution of the widespread adoption of virtualization, service-oriented architecture and utility computing. Details are abstracted from consumers, who no longer have need for expertise in, or control over, the technology infrastructure “in the cloud” that supports them. Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own computer.”

This definition points out two important aspects of these offerings: the usage of distributed resources (IaaS, SaaS, and PaaS), and the abstraction of the underlying technology from the developers. You already learned about the first aspect. The second aspect is important because you can manage abstracted resources such as distributed storage without having to know much technical detail about how to configure it, secure it, and distribute it.

The following list describes the benefits of using a cloud-based infrastructure:

There is no initial cost for the production web servers.
There is no fixed cost for the bandwidth.

No particular skills are required for the installation of the servers.

There is no initial cost for database clusters. The skills required for configuring a database cluster are unnecessary.

There are no routers or load balancers to buy or configure.
There is no firewall and security software to purchase or configure.

There are no skills required to secure the underlying system.
There is no cost for the staging environment.

There are no licenses to buy.

Brunetti, Roberto (2011-06-02). Windows AzureTM Step by Step (pp. 1-2). Microsoft Press. Kindle Edition.

With that being well said by Roberto Brunetti, I do want to point out that I used to work for Amazon’s Web Services (AWS) which uses the Infrastructure as a Service (IaaS) model. I am not here to compare the two services for a few reasons:

IT decisions should be personal and based upon the resources and skill sets you have available (In my opinion, with any environment, do not rely on other opinions, but test it for yourself and see if it is a solution that you can rely on)

There are more than enough AWS versus Azure conversations on the internet and I really do not see them as apples to apples or even apples to oranges (They both offer great strengths and challenges)

Most importantly, I wanted to expose myself to Windows Azure and share what I learned.

I am going to start off by talking about a very important topic with Windows Azure and that is what features does it offer and more importantly, what are the limitations of the platform.

A full list of features can be found here and I am just going to focus on the Virtual Machine, Database and CPU, which are listed here:

The Windows Azure Virtual Machine (VM) role enables you to deploy a custom Windows Server 2008 R2 (Enterprise or Standard) image to Windows Azure. The VM role runs a virtual hard drive (VHD) image of a Windows Server 2008 R2 virtual machine. This VHD is created using an on-premises Windows Server machine and then uploaded to Windows Azure. You can now sign up for the Windows Azure VM role and Extra Small Instance BETA via the Windows Azure Platform Management Portal.

Calendar Year 2011, we will enable support for Windows Server 2008 SP2, Windows Server 2003 and constructing VM role images in the cloud.

Compute Instance Size



Instance Storage

I/O Performance

Cost Per Hour

Extra Small

1.0 GHz

768 MB

20 GB




1.6 GHz

1.75 GB

225 GB




2 x 1.6 GHz

3.5 GB

490 GB




4 x 1.6 GHz

7 GB

1,000 GB



Extra Large

8 x 1.6 GHz

14 GB

2,040 GB



Pricing and metering for SQL
Azure Database


Web Edition Monthly

Business EditionMonthly Charges

Up to 1 GB relational database


Up to 5 GB relational database


Up to 10 GB relational database


Up to 20 GB relational database


Up to 30 GB relational database


Up to 40 GB relational database


Up to 50 GB relational database


General Guidelines and Limitations (SQL Azure Database)

I am going to highlight just a few key limitations:

When writing applications for SQL Azure Database, you can use the following drivers and libraries:

.NET Framework
Data Provider for SQL Server (System.Data.SqlClient)
from the .NET Framework 3.5 Service Pack 1 or later.
(No Surprise here since they are using Windows 2008 R2)

Entity Framework
from the .NET Framework 3.5 Service Pack 1 or later.

SQL Server 2008
R2 Native Client ODBC driver.
SQL Server 2008 Native Client ODBC driver
is also supported, but has less functionality.

SQL Server 2008
Driver for PHP version 1.1 or later.

Consider the following points when using tools to connect to SQL Azure

Only TCP/IP connections are allowed.

The SQL Server 2008 SQL Server browser is not supported because SQL Azure Database does not have dynamic ports, only port 1433.

You can transfer data to SQL Azure Database by using the following:

SQL Server 2008 Integration Services (SSIS)

The bulk copy utility (BCP.exe)

System.Data.SqlClient.SqlBulkCopy class

Scripts that use INSERT statements to load data into the database

SQL Azure Database does not support:

The RESTORE statement.

Attaching a database to the SQL Azure server.

SQL Azure Database does not support SQL Server Agent or jobs.
You can, however, run SQL Server Agent on your on-premise SQL Server and connect to SQL Azure Database.

SQL Azure Database does not support tables without clustered indexes. A table must have a clustered index. If a table is created without a clustered constraint, a clustered index must be created before an insert operation is allowed on the table.

Certain user names are not allowed for security reasons. You cannot use the following names:

Admin, administrator, guest , root and sa

In order to provide a good experience to all SQL Azure Database customers, your connection to the service may be closed due to the following conditions:

Excessive resource usage

Connections that have been idle for 30 minutes or longer

Fail-over because of server failures

I also would like to point out that there is a free trial for 90 days.

You can run a Small Windows Azure instance with a 1GB SQL Azure database for free for the first 90 days of your trial. Here are the Monthly Allocations:

Compute: 750 hours of a Small Compute Instance

Storage: 20GB with 50k Storage transactions

Data Transfers: 20GB out / Unlimited inbound data transfer

Relational Database: 1G Web Edition SQL Azure database

Access Control: 100,000 transactions

Service Bus: 2 connections

AppFabric Caching: 128MB cache**

** The Windows Azure AppFabric Caching service is provided at no charge for billing periods prior to August 1, 2011. Beginning on August 1, a single 128MB cache is included at no charge for the first 90 days. All other cache utilized will be charged at the standard rates.


Here is a great location on Microsoft’s web site on getting step by step instructions on getting setup with Windows Azure and using it.

How do I get started with Windows Azure? (Video)

For more information on Windows Azure, please see the following:

Windows Azure blog:

Windows Azure Platform:

Here is a great article on building applications in the Cloud, in short design for failure and fault tolerance. The more time you spend here will ensure the more success you will enjoy.

The Cloud is not a Silver Bullet (Lot of Profanity so you are forewarned!)                           


Tags: , ,

Comments are closed.

Copy Protected by Chetan's WP-Copyprotect.