Why ASP.NET Developers Should Care about Windows Azure

Even though I sat in the audience at the Microsoft Professional Developers Conference during the November keynote session when Azure was announced with great fanfare, I did not fully comprehend why Windows Azure should matter to me. Why, as an ASP.NET developer, should I care about Windows Azure?

I build websites. I work in an industry in which technology advancements fundamentally change the way I perform my work every two or three years. For example, I remember when new technologies such as JavaScript, ASP.NET, Web Services, and Ajax were first introduced. Each of these technologies changed what I thought was possible when building websites. Each of these technologies expanded what it meant to build websites into something greater than what it was before.

Windows Azure will change the way I think about building every website in the future. Windows Azure changes what it means to develop applications for the web.

What is Windows Azure?

The short, and not very informative, explanation of Windows Azure is that Windows Azure is “Windows in the cloud.” But, what exactly does that mean?

Imagine that you need to build a new web application. It doesn’t really matter what the application is. You might need to build a new internal web application used by a few dozen of the employees of your company. Or, you might be launching a new startup and you want millions of people to use your new application. It doesn’t really matter because you’ll most likely want to use Azure for any type of web application that you create.

Imagine, furthermore, that you have an unlimited amount of funds. There was a massive bank error and you end up with billions in your checking account that you can use to build your application. You decide to go on a spending spree to set up the hardware for your web application.

If money were not a consideration then you would buy multiple servers. If your startup is successful then you want your application to scale to meet the demand. In that case, you would want hundreds of machines to host your website so you could handle thousands, or even millions, of visitors to your website. You would need the ability to load balance the traffic to your website across multiple servers.

Furthermore, you would want hardware redundancy. If one server fails, you don’t want your application to fail. You want your application to fail over to a new server automatically. And, if you want to sleep very peacefully at night, then you would want the servers to be located at different geographical locations. That way, if a blackout brings down your web servers hosted in Iowa, then your website could fail over automatically to web servers in Texas.

If you had an unlimited amount of funds then you would spend the money maintaining multiple data centers located at multiple geographical locations even if your needs were modest. If you take the trouble to build a web application then you don’t want it to fail because of a hardware failure even when the application is being used by a small number of users.

In short, you want to build a web application and then you don’t want to worry about it.

Microsoft knows how to Scale

Microsoft has spent billions of dollars building data centers to host thousands of servers. We have built data centers in Iowa, Washington, Texas, and Illinois and we are planning, or in the process of building, data centers at other locations dispersed around the world.

Microsoft has developed a tremendous amount of institutional experience around creating web applications and web services that can scale to meet huge traffic demands. Microsoft is responsible for maintaining many of the highest traffic websites on the Internet including Hotmail, Microsoft.com, MSDN, and MSN. And the Microsoft Windows Update service scales to meet the demand of hundreds of millions of clients worldwide, 350 million unique scans per day, 60,000 ASP.Net requests per second, and 1.5 million concurrent connections (see http://technet.microsoft.com/en-us/mscomops/cc424867.aspx).

Microsoft had to build vast data centers to handle the traffic demands of our websites and services. By taking advantage of Windows Azure, you can host your web applications on our web servers. You can take advantage of the billions of dollars that Microsoft has spent in capital investments to build our data centers to host your web applications.

Windows Azure is Utility Computing

Windows Azure provides you with utility computing and storage (but it offers much more than that). The idea behind utility computing is that you should pay for processor time and storage in the same way as you pay for a utility such as electricity. In order to power your toaster to toast your bread in the morning, you don’t need to pay the billions of dollars needed to build the nuclear power plant or hydroelectric dam providing the electricity for your community. Instead, you pay only for the electricity that you actually use. You don’t pay billions, you pay pennies.

When you use Windows Azure, you only pay for the computer processor time and storage that you need. You can take advantage of the vast economies of scale that Microsoft derives from building its vast data centers. Because of these vast economies of scale, Microsoft can offer processer time and storage very cheaply.

Here’s how it works. You build an ASP.NET Web Forms or ASP.NET MVC application using Visual Studio by taking advantage of a new project template named the Web Cloud Service template (see Figure 1).

Figure 1 – Creating a new Cloud Services project

clip_image002

Building an ASP.NET application that you plan to run in the cloud has certain requirements. You must code the application in such a way that it can be scaled. For example, you cannot use in-process session state in an ASP.NET application that you plan to host within Windows Azure.

After you build your web application, you publish the application to the cloud (the Microsoft data centers) by right-clicking your project in the Solution Explorer window and selecting the Publish menu option. Selecting Publish opens the Azure Services Developer Portal in a browser window enabling you to upload your project to the cloud (see Figure 2).

clip_image004

After you upload your web application, the application becomes available to the world in a matter of minutes. For example, if you create a new application, and give it the name MyApp, then you can access the application by using the URL http://MyApp.CloudApp.net. Of course, you can point your own domain at your web application.

After you create a web application in the cloud, you can adjust the number of processors that the web application uses. If your web application needs to scale to handle the demands of millions of users, then you can easily modify the settings for your web application so that the application runs on hundreds or thousands of processors.

I’ve been involved in a number of successful Internet startups. One huge barrier to getting a new startup off the ground has always been the costs associated with building a website that can quickly scale to handle huge traffic demands. Azure removes all of these worries.

Windows Azure is a Services Platform

Utility computing is great and I would use Windows Azure even if the only thing that it offered was utility computing. However, Windows Azure offers much more than processor cycles and storage space. Windows Azure is a new Microsoft Windows server operating system.

An operating system provides services for running applications. Windows Azure is a services platform. You can take advantage of several types of services offered by Azure within your application.

For example, you can use Live Services within an Azure web application. The Live Services are the same services used by Microsoft web applications such as Windows Live Hotmail and Windows Live Messenger. They include services such as the identity service, communication service, presence service, search service, and geospatial service.

For example, the Identity Service is the service used by Windows Live ID. Whenever you log into a Microsoft website, such as Hotmail, you use the Identity Service behind the scenes. You can use the very same Identity Service to authenticate users for your web applications.

Windows Azure also works with another set of services called the SQL Services. The SQL Services are built on top of instances of Microsoft SQL Server running in the cloud. You can use the SQL Services to store the data for your cloud applications. SQL Services will support data synchronization and reporting.

Finally, Azure supports a set of services called the .NET Services. The .NET Services include support for services that are critical to enterprises such as workflow services.

Windows Azure enables Mesh Enabled Web Applications

Windows Azure enables you to easily build and host applications in the cloud. But Azure offers something much more than this. Azure enables you to create something called mesh enabled web applications. This final feature might end up being the most interesting aspect of Azure.

Live Mesh is part of the Live Services. You can sign up for Live Mesh by visiting Mesh.com (see Figure 3).

clip_image006

Live Mesh enables you to synchronize content between multiple devices. For example, I use a laptop and desktop computer at work, another laptop and desktop computer at home, a cell phone, and an Xbox. I don’t think that I am that unusual. Most people interact with the Web through multiple devices.

After you register a device with Live Mesh, you can synchronize any content that you place on one device with any other device automatically. For example, if I add a picture or Microsoft Word document to my home desktop computer, the picture or document is copied to my other computers and devices automatically. This feature of Mesh is very useful and I take advantage of it every day.

But, that feature only scratches the surface of what Live Mesh will enable you to do. Live Mesh will enable you not only to synchronize files across multiple devices; Mesh will enable you to synchronize applications across multiple devices.

You will be able to buy Mesh enabled web applications from a marketplace of applications. After you buy a Mesh enabled web application, you will be able to use the application with each and every device on your Mesh. By taking advantage of Azure and Live Mesh, you can build applications that span multiple devices.

You create a Mesh enabled web application by creating JavaScript or Silverlight applications. After you create the Mesh enabled application, you can upload the application to a developer portal and start using it in your Mesh.

Realize, and this is the interesting part, that you can run a Mesh enabled web application offline. Even if the application was built using a technology such as Silverlight, you can execute the application separately from a web browser. For example, you can execute a Mesh enabled web application within a Windows Mobile cell phone.

Windows Azure can be used for On Premises Applications

Finally, it is worth emphasizing that you can use Windows Azure in conjunction with on premises applications (on premises applications are contrasted with cloud applications). Your application can run on a server within your organization and interact with Azure over the Internet. You can interact with Azure through standard APIs such as REST.

For example, imagine that you have built an ASP.NET application that enables you to view customer records. You might need to store many, many gigabytes of customer records. However, you might not want to invest in the hardware to reliably store all of this data. In that case, you can use Azure as your storage service in the cloud. Your ASP.NET application can store and retrieve the customer records across the Internet.

Summary

Windows Azure will change how I create every web application in the future. I want all of my applications to easily scale and I want all of my applications to run reliably. Windows Azure will enable me to concentrate on my web application code and stop worrying about the hardware.

Discussion

  1. Farrio says:

    Azure is great I think but what I’m afraid now is the performance of the website. How can you ensure that the data transmitted between US and Euro or Asia would not be a problem?

  2. Bui Pham Minh Tri says:

    Dear,

    Can you tell me how I can get an invitation for Windows Azure services?

  3. Kim Rossey says:

    Stephen, will you keep us posted on how you use Azure in the future?

  4. Chilá says:

    I really appreciated this article of you, and I think it would be more useful to brazillians, do you approve it? If so, as soon as I publish on my blog (http://weblogs.asp.net/marcochila) I’ll notify you. Can I do that? See you and thanks in advance.

  5. huey says:

    Azure is something of interest, but I wouldn’t mind some more documentation on best practices with either Azure Tables or SDS. There was a PDC lunch session that seemed to start to address how to use multiple buckets (or whatever the term is, I forget) for Azure Tables, but the session was sort of a train wreck.

    For me, I want to have the same data indexed different ways. The only method I can think to do that is to store the data several times each with a different partition key. This would allow tables tailored for individual lookups. Unfortunately, synchronizing all the tables seems problematic.

    Maybe the performance hit of querying over partitions isn’t a big deal and is not something that should be avoided.

    I look forward to any next release with Azure or a feature road map for the storage parts.

  6. Ed McPadden says:

    Great post Stephen! I just tweeted a link to your post on Twitter. Another great overview of Azure for those hungry for more (like myself) is a very good white paper by David Chappell that was made available at the PDC: http://is.gd/fwj9

  7. Chad Moran says:

    I won’t be using Azure for a particular reason.

    The limitation of the data access layer. I want to be able to publish my existing application from Visual Studio to Azure and have it work, if I can’t do that without changing my DAL… too bad.

  8. Scott says:

    A great summary of why we should be interested in Azure. However, my confidence in “Microsoft knows how to Scale” is somewhat low. IMHO most MS Apps, Tools, technologies, OSs, etc. do not scale well out-of-the-box. They need a great deal of poorly documented tweaking to scale past the workgroup level. MS itself runs into scaling issues in scenarios where the need for scaling would seem to have been be self-evident. Just look at the Windows 7 Beta debacle – http://blogs.zdnet.com/microsoft/?p=1805

  9. AlfredBr says:

    Just look at the Windows 7 Beta debacle – http://blogs.zdnet.com/microsoft/?p=1805

    +1

  10. @Chad,

    As you point out, you can’t take an existing ASP.NET application and upload it directly to Azure. You must redesign the application to take advantage of the Azure services.

    This forced redesign is a good thing because Azure forces you to write your web applications so that they can scale horizontally. Realize that you can adjust the number of processors used to run your application at any time. The services offered by the Azure platform are all designed to scale regardless of the traffic.

    The benefit is scalability and redundancy (reliability). The drawback is that you must follow the Azure programming model. I think this tradeoff is worth it.

    — best,
    Stephen

  11. FelixRMelendez says:

    Interesting article. Could you point to me where could I find more articles on Azure?
    🙂

  12. Rupa says:

    Nice Article!

  13. @Felix,

    If you want to learn more about Azure then I would recommend:

    David Chapell’s excellent article:
    download.microsoft.com/…/…rvices_Platform.docx

    The official Azure site:
    http://www.microsoft.com/azure/default.mspx

    The MSDN Azure site:
    msdn.microsoft.com/en-us/azure/cc994380.aspx

    Hope thish helps!

    — Stephen Walther

  14. For anyone interested in the private beta. Here is the link to sign up for it:

    http://dev.live.com/liveframework/sdk/

  15. Pawan Pillai says:

    Nice Article.. an eye opener !
    Pawan

  16. Tuan says:

    Thanks for the explanation, Stephen. You’ve got ME excited about Azure, too.

  17. hossein from iran says:

    thanks for this article
    where can i find the Windows Azure ?
    Windows Azure is release now?
    if u have link for downloud Windows Azure
    set here

    thanks a lot

  18. haycheskay says:

    Stephen,

    This is good material you have posted. But you have to ask the question why MS did such a terrible job on explaining/marketing Azure — just look at the official website(s) they published.

    There is probably more confusion than clear facts!

  19. Danny Yeoh says:

    Thanks For sharing..

  20. Just Saying... says:

    Thank you for this informative post. However, I don’t understand the disappointment with the commodity that is application and web hosting. I understand that there’s a move towards cloud from many different providers, but it almost sounds like Microsoft is saying “leave this aspect to us, our servers are becoming too unmaintainable.” It seems like an unnecessary layer, and layers sometimes become barriers.

  21. FelixRMelendez says:

    Stephen,

    Thanks for the links. I’ll take a look at them.
    Felix

  22. Jack says:

    Windows Azure will change the concept of web site coding, and we must care about it. Or, we will be dismissed. But i think this will happen 10 years later 🙂

  23. Top Job says:

    What I want to know, is the price.

    Will MS make this affordable in the $10 a month range?

    If they offered a limited resource package for free (for small blogs, hobiests, etc) I think they’d see huge uptake.

    I hope they do.

  24. David Rush says:

    You are pushing the company line. Of course Microsoft has been trying to develop subscription services for years including Windows and Office. Thank you Google for offering google documents. A9 and Azure will die over the issue of support.

  25. Sam Stange says:

    Do you know of any live sites currently using Azure? Do you know when we can expect a pricing model?

  26. Mahesh says:

    Very useful post Stephen, Thanks.

  27. mh415 says:

    It would be great to see a chapter dedicated to Azure in your upcoming MVC.NET book.

  28. Earlier i was aware of Windows Azure, Thanks for sharing useful information about Windows Azure. Now i have good knowledge about that.

  29. Thanks for this valuable information, Stephen.

  30. fqer t this is given in attachment. I understand that very well. Thanks.

  31. Thanks for this valuable information, Stephen.

  32. Thanks for sharing useful information about Windows Azure. Now i have good knowledge about that.

  33. GED Online says:

    Azure. Now i have good knowledge about that.

  34. Windows Azure. Now i have good knowledge about that.

  35. will get classes named IWhatever. Although – it doesn’t fail in Indigo – the naming is just awkward.

  36. Very informative and a nice blog. Thanks.

  37. tutu says:

    サイト売る is wonderful.
    逆転送 is wonderful.
    屋形船 is wonderful.
    店舗デザイン is wonderful.
    整体学校 is wonderful.
    お見合いパーティー is wonderful.
    債務整理 is wonderful.
    演劇 is wonderful.
    新宿 整体 is wonderful.
    会社設立 is wonderful.
    マカ is wonderful.
    格安航空券 国内 is wonderful.
    ブライダルエステ is wonderful.
    募金 is wonderful.
    オーディション is wonderful.
    広島 不動産 is wonderful.
    バイク便 is wonderful.
    ボイストレーニング is wonderful.
    過払い is wonderful.
    バラ is wonderful.
    顔やせ 小顔 is wonderful.
    先物取引 is wonderful.
    システムキッチン is wonderful.
    税理士 東京 is wonderful.
    カップリングパーティー is wonderful.
    ウェディングドレス is wonderful.
    結婚式 is wonderful.
    看護師 転職 is wonderful.
    水漏れ is wonderful.
    マドプロ is wonderful.
    電話代行 東京 is wonderful.
    ハーレー is wonderful.
    貸し事務所 is wonderful.
    異業種交流会 is wonderful.
    貸事務所 is wonderful.
    債務整理 東京 is wonderful.
    社会保険労務士 is wonderful.
    不眠症 治療 is wonderful.
    貸別荘 is wonderful.
    川越市 一戸建て is wonderful.
    川口市 一戸建て is wonderful.
    エアコン 修理 is wonderful.
    結婚 お祝い is wonderful.
    プロフィールビデオ is wonderful.
    相続税対策 is wonderful.
    ホワイトニング is wonderful.
    ゴルフ会員権 is wonderful.
    東大宮 不動産 is wonderful.
    習い事 子供 is wonderful.
    永住申請
    医療機器 買取

  38. online games says:

    Thanks For sharing..

  39. Hello..
    first time i’m hear about Windows Azure..
    Great.. thanks for sharing..

  40. tiffany jewelry says:

    I get this tiffany and co from my grandmother when she passed, but I would like to know if it’s definitely real, how can I do this?

    I saw lots of my favorite movie stars wearing tiffany & co, so I’d love to have one too.

    jewelry stores
    I get my discount tiffany jewelry repaired at a local jewelry stores cost about 20 dollars, it’s not that expensive.

  41. chlamydien says:

    I want to have the same data indexed different ways. The only method I can think to do that is to store the data several times each with a different partition key. This would allow tables tailored for individual lookups. Unfortunately, synchronizing all the tables seems problematic.

  42. NikeAir says:

    Nice article, very helpful. Thanks!
    ———————–
    Nike Shoes || air yeezy

  43. ee It’s lucky to know this, if it is really true. Companies tend not to realize when they create security holes from day-to-day operation.

  44. rashoodollison says:

    Of course Microsoft has been trying to develop subscription services for years including Windows and Office. Thank you Google for offering google documents. A9 and Azure will die over the issue of support.

    affordable degrees | associate degree program | bachelors degree program

  45. rashoodollison says:

    Realize that you can adjust the number of processors used to run your application at any time. The services offered by the Azure platform are all designed to scale regardless of the traffic.

    business administration degree | Corllins University

  46. Louis Vuitton Antigua bags says:

    Louis Vuitton Agendas , commonly referred to as

    Louis Vuitton Antigua bags, or sometimes shortened to

    Louis Vuitton Antigua has become one of the most

    Louis Vuitton Bequia Leather bags luxury brands.

    lv salelove

    sale lvnice

    louis vuitton outlet

    vuitton outlet good