Welcome!

Java Authors: Dana Gardner, Carmen Gonzalez, Brian Vandegrift, Pat Romanski, Elizabeth White

Related Topics: .NET, Cloud Expo

.NET: Blog Feed Post

Overview of Windows Azure

Part 2: Pros and Cons

In the previous article in the Monitis blog we discussed the design of Windows Azure. In this article we will focus on the advantages and disadvantages of using that design — compared to an on-premises solution.

Let’s first look at the advantages of using Windows Azure:

  • Per-use pricing

As with other cloud services, Windows Azure charges the subscriber on per use basis. What this means is that if your application needs only two instances in the beginning, you will only pay for these two instances. At the moment your application starts needing four instances for example, you will start getting charged for those extra instances. This pricing model makes Windows Azure a great platform for applications that occasionally need a lot more resources than normal. It completely eliminates the need to purchase expensive hardware and software for building your applications.

  • Scalability

You can add or remove instances to your application whenever you feel the need to. If everything with your application goes well and you get more and more users using it, you can provide more instances for its use by just changing a number in the configuration file. And, if over time, it proves that the application doesn’t need as many resources, you can easily lower the number of instances.

  • Availability

Windows Azure uses a standard Service Level Agreement (SLA) that ensures you get 99.95% uptime for any application that Microsoft runs on your behalf. The design of Windows Azure allows the Fabric controller position your application to be on different physical servers that can’t be a single point of failure. So, all of your data is stored in three locations.

  • Recoverability

The design of Windows Azure allows the Fabric controller to identify problems with instances of an application and to power on a new instance in case the previous one crashes. The recoverability is managed entirely from Microsoft. Fabric controllers help to ensure the integrity of SLAs.

  • Eased management

The Fabric controller takes care of managing your applications. It first makes decisions about where to run them. Then, it monitors their performance. The Fabric controller saves the collected information and developers can write code on how to use that information. In case an instance crashes, the Fabric controller brings up a new one. It is also responsible for patching the operating system of the virtual machine that runs the instance. All of these management tasks happen in the background without the customer’s concern.

  • Ability to integrate with the on-premise infrastructure

The Connect feature of Windows Azure allows the applications that run in the cloud to use on-premises resources and services. The applications can use users and groups from the on-premises Active Directory for creating access rules and they can use internal databases for storing sensitive data.

As with every solution, there are some disadvantages in using Windows Azure including:

  • At least two instances per role

The design of Windows Azure makes it necessary for each role of your application (Web role or Worker role, for example) to run on at least two instances. Microsoft designed it that way in order for the Fabric controller to be able to stop one of the instances for restarts after patches or other maintenance procedures.

  • Load-balancing between the instances may interrupt stateful applications

With Windows Azure, there are at least two instances of each role that the application needs. So, the Fabric controller load balances users’ requests between them. What this means is that there is no guarantee two requests from the same user will go to the same instance. This may be a problem with some applications that need a stateful connection with the user. A stateful connection is one in which some information about a connection between two systems is retained for future use.

Knowing the advantages and disadvantages of Windows Azure is important, but it is also important for you to understand the pricing that goes with it. With this knowledge you will be able to informatively decide whether Windows Azure is the right platform for your applications or not. We will discuss the pricing model in the next article in this series.

More Stories By Hovhannes Avoyan

Hovhannes Avoyan is the CEO of Monitis, Inc., a provider of on-demand systems management and monitoring software to 50,000 users spanning small businesses and Fortune 500 companies.

Prior to Monitis, he served as General Manager and Director of Development at prominent web portal Lycos Europe, where he grew the Lycos Armenia group from 30 people to over 200, making it the company's largest development center. Prior to Lycos, Avoyan was VP of Technology at Brience, Inc. (based in San Francisco and acquired by Syniverse), which delivered mobile internet content solutions to companies like Cisco, Ingram Micro, Washington Mutual, Wyndham Hotels , T-Mobile , and CNN. Prior to that, he served as the founder and CEO of CEDIT ltd., which was acquired by Brience. A 24 year veteran of the software industry, he also runs Sourcio cjsc, an IT consulting company and startup incubator specializing in web 2.0 products and open-source technologies.

Hovhannes is a senior lecturer at the American Univeristy of Armenia and has been a visiting lecturer at San Francisco State University. He is a graduate of Bertelsmann University.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.