@CloudExpo Authors: Elizabeth White, Zakia Bouachraoui, Liz McMillan, Yeshim Deniz, Pat Romanski

Related Topics: @CloudExpo, Microsoft Cloud

@CloudExpo: Article

Windows Azure Series - Roles Offered by Windows Azure

The development environment

Part 1 of the Windows Azure Series provided an introduction to Windows Azure, and Part 2 provided a look inside the Windows Azure datacenters. Part 3 will discuss the Windows Azure Roles and the Development Environment. The last one is especially important; we will focus on it for the next couple of articles and look at the API as well. This article will focus on the "Compute" part of Windows Azure.

The Roles Explained
Windows Azure currently (April 2011) has three different roles. In case I didn't mention it before, Windows Azure is a Platform as a Service offering. Therefore, developers have to think a little differently about IaaS platforms. If you have more roles, Windows Azure does the load balancing for you. There is no need to pay extra money for a load-balancing service or to handle this on your own. But now back to the Roles, which are the WebRole, the WorkerRole and the VmRole. Each of the roles serves a different need for modern Software as a Service applications.

The WebRole
The WebRole is the main role to display web content to users. This is the role people would consider to run in IIS (and in fact, the role runs on IIS). The WebRole features different technologies. With Microsoft technologies, developers can use the "classic" ASP.NET or ASP.NET MVC. To date, .NET 4.0 and the ASP.NET MVC 2.0 Framework are supported. The WebRole supports other frameworks as well. Windows Azure allows you to run applications as FastCGI. This means that frameworks such as PHP can run in Windows Azure. The goal of the WebRole is to display website content. Tasks that require more "Compute Power" should be outsourced to other roles. A good way to achieve this is with a WorkerRole. Another great feature of the WebRole is the ability to run applications as Full IIS. This allows developers to run multiple sites in a WebRole instance.

The WorkerRole
As already mentioned, the WorkerRole's primary target is to run as a background worker. This allows easier scalability of web applications - and the cloud is all about scaling out your applications. When you first look at the WorkerRole, it might look strange. It does only one thing: run in an infinite loop. You can run .NET applications, as well as a large variety of other technologies such as Java. In order to communicate with other roles, various techniques are available. One good choice might be to use Messagequeues.

The VmRole
The VmRole is not as "PaaSy" as the other two roles. The target of the VmRole is to allow easier migration to the cloud as some applications are not as easy to bring to the cloud. The VmRole was introduced to allow easier migration. It's necessary to mention that you might lose some of the advantages you have with the other two roles.

Instance Sizes
Windows Azure includes a variety of instance sizes. Currently (April 2011) there are five different instances with a variety of memory, instance storage and virtual CPU sizes. The instances are as follows:

  • Extra Small: Consists of a 1 Gigahertz virtual CPU with 768 MB of RAM and 20 GB instance storage. This instance is useful for demo applications or applications that need low performance. The negative aspect is the low IO performance but it's very cheap.
  • Small: Consists of a 1.6 Gigahertz virtual CPU with 1.75 GB of RAM and 225 GB instance storage. With this instance, average tasks can be achieved and the performance of this system could be used for a production system. It costs more the twice as much as the Extra Small instance.
  • Medium: Consists of two 1.6 Gigahertz virtual CPUs with 3.5 GB of RAM and 490 GB instance storage. This instance already allows some parallelization since it comes with two cores and the RAM is already powerful. A major plus of this instance is its high IO performance.
  • Large: Consists of four 1.6 Gigahertz virtual CPUs with 7 GB of RAM. The instance storage is 1 Terabyte. This instance allows complex computing tasks and is made for memory-intense tasks. The IO performance is high.
  • Extra Large: This is the strongest instance with eight 1.6 Gigahertz virtual CPUs. The memory is 14 GB large and the instance has 2 TB of instance storage. If you need to compute the real heavy stuff, this is definitely the instance for you. The IO performance is good but this instance has its price. One compute hour is almost $1.

For detailed pricing, please visit this link: http://www.microsoft.com/windowsazure/pricing/

Windows Azure Developer Opportunities
Microsoft integrates a lot of different platforms and tools on Windows Azure. The most popular framework for Windows Azure is Microsoft's own framework, the .NET Framework. To date, the .NET Framework 4 is fully supported on Windows Azure. If you are a fan of ASP.NET MVC like I am, you can't run ASP.NET MVC 3 applications on Windows Azure with a simple template as the MVC 2, which is already included. [1]

However, there are a couple of other tools that are supported on Windows Azure. A great tool is PHP, which can be run as well as all other frameworks, tools or languages that are supported by the FastCGI IIS Role on Windows Azure. Microsoft wants to make Java a first-class citizen on Windows Azure and there is a framework for Java to query Windows Azure Services. In fact, Windows Azure uses ReST a lot so there is an easy way to include numerous platforms and tools on Windows Azure.

The Development Environment for .NET
My favorite platform though is the .NET Platform, so this series will focus on that platform. However, later in the series I will show how to integrate other platforms such as Java or PHP. If you also use .NET, the best way to develop Windows Azure applications is to use Visual Studio. It's not necessary to buy the commercial version; you can also use the free version, Visual Web Developer 2010. However, you might lose the benefits of Version Control, ALM or other items that are included with the full version. In my demos I will only use the free version.

Figure 1: Create a new Windows Azure Project

Once the Windows Azure tools are installed, you can start to develop your Windows Azure applications. In Figure 1 you can see the available Windows Azure Roles with the Visual Web Developer. I'll create a short sample in one of the later articles, since there are still a lot of basics, such as storage, that we need to address prior to source code examples.


  1. How to run ASP.NET MVC 3 on Windows Azure: http://blog.smarx.com/posts/asp-net-mvc-in-windows-azure

"This article is part of the Windows Azure Series on Cloud Computing Journal. The Series was originally posted on Codefest.at, the official Blog of the Developer and Platform Group at Microsoft Austria. You can see the original Series here: http://www.codefest.at/?tag=/azure+tutorial"

More Stories By Mario Meir-Huber

Mario Meir-Huber studied Information Systems at the University of Linz. He worked in the IT sector for some years before founding CodeForce, an IT consulting and services company together with Andreas Aschauer. Since the advent of Cloud Computing, he has been passionate about this technology. He talks about Cloud Computing at various international events and conferences and writes for industry-leading magazines on cloud computing. He is Cloud Computing expert in various independent IT organizations and wrote a book on Cloud Computing covering all topics of the Cloud. You can follow Mario on Twitter (@mario_mh) or read his Blog at http://cloudvane.wordpress.com.

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.

CloudEXPO Stories
The Internet of Things will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform and how we integrate our thinking to solve complicated problems. In his session at 19th Cloud Expo, Craig Sproule, CEO of Metavine, demonstrated how to move beyond today's coding paradigm and share the must-have mindsets for removing complexity from the development process, accelerate application delivery times, and ensure that developers will become heroes (not bottlenecks) in the IoT revolution.
DevOps with IBMz? You heard right. Maybe you're wondering what a developer can do to speed up the entire development cycle--coding, testing, source code management, and deployment-? In this session you will learn about how to integrate z application assets into a DevOps pipeline using familiar tools like Jenkins and UrbanCode Deploy, plus z/OSMF workflows, all of which can increase deployment speeds while simultaneously improving reliability. You will also learn how to provision mainframe system as cloud-like service.
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.