Introduction

Cloud computing is steadily emerging as the next big thing in enterprise software arena. Many companies have already launched their own versions providing a wide variety of features.

*Image courtesy - Wikipedia

Microsoft has launched a CTP (Community Technology Preview) that is available for signup at www.azure.com. The biggest advantage presented by Azure is a very quick developer ramp up, as .NET developers can very easily learn new cloud based computing features. Also huge existing code base of customers can be reused and quickly scaled up to the cloud platform using Azure.

The intension here is to demonstrate my understanding of Azure in a series of small tutorials moving from simple to complex topics. In this first article, I shall demonstrate how any individual knowing .NET can create a simple "Hello World!" on Azure Platform.

Step 1 - Signup and Get Started!

Azure is based primarily on 3 kinds of services:

Windows Azure: Provides compute and storage platform

SQL Services: Provides SQL and data storage related services

.NET Services: Provides service bus and access control features

Many other services and SDKs may be available in future on Azure like SharePoint, etc.

To get the invitation code, one needs to register at www.azure.com and subsequently follow the instructions given on the site to receive invite code.

Step 2 - Installing Pre-requisites

Links for Azure Development tools and SDK are available on www.azure.com. Also you can download tools from here. To install these tools, you need at least Visual Studio 2008 on Windows Vista SP1 or Windows Server 2008 or Windows 7.

Step 3 - Creating Project

Once pre-requisites (tools & SDKs) are installed, the Cloud related projects become available in Visual Studio. Start Visual Studio and create a C# "Cloud Service" project with a suitable name.

You shall be asked to select a role. Azure provides mainly 2 types of roles:

Web Role: It is more like a Web Application where you get Web Pages, code behind and other web related services.

Worker Role : It is more like a Windows service which once started will keep running and perform the tasks you wish.

Your application may contain either one of these or both, depending on functionality you wish to create. Currently in the CTP, the maximum roles your project can have is limited to 2.

In our case, as we are creating a Web App, we select "Web Role" and continue to complete project creation.

Step 4 - Implementation

Your project created contains many files including "ServiceDefinition.csdef" which is very interesting. We keep it unchanged and continue to web page 'Default.aspx'. Drop a label from toolbox to the page.

Double click the page and within Page_load(..) function, add this line:

this.Label1.Text = "Hello World! Welcome to Azure!";

Step 5 - Debug and Test

Debugging this code is similar to regular ASP.NET Web Application, just press F5. It will launch the 'Execution Fabric' simulated cloud environment of Microsoft.

Step 6 - Deploy

Right click the project and in Visual Studio, select 'publish' from the pop-up menu. Once 'Published', Visual Studio shall create HelloAzureService.cspkg and ServiceConfiguration.cscfg files. One may then logon to www.azure.com and create Windows Azure project if not already created. To deploy these files on the cloud, upload the generated (.cspkg and .cscfg) files as shown below. More information on deploying Azure services is available here.

Once you click upload, the following screen appears:

It takes a while before the application is deployed and one has to be a little patient. Once WebRole1 status is updated to 'Started'; you may test your application in staging more itself by clicking the given URL - http://6c0873bd9a2d47d7a38e1a87af9c0b35.cloudapp.net/. Further you may deploy the application by moving to production mode, if you are satisfied with it during the staging mode. Below is a screenshot of the application running in staging mode.

Points of Interest

As one may realize, it is very easy to ramp up to cloud computing using your existing expertise in .NET Framework. More information and analysis about cloud computing is available at my blog.

Share

About the Author

- Instrumental in transforming various concepts to successful concrete products/features.
- Passionate about quality in everything from the requirement specification to the end product.
- Involved with wide range of technologies and domains.
- Likes to think from customer or end user perspective.

the internet is powerful because it allows for parrallal progression and technology evolution. while centrilization can improve the TCO on particular project, it is a fundimental showstopper for independent infrastructural innovations. I think cloud computing is a great concept that will eventually die off as smaller localized services will be able to provide faster and more effective solutions.

Azure should give you enough to build your own platform for developing and deploying software solutions. While in a nutshell it is nothing new (technology already existing reused in different fashion) it may give a release to the businesses that are bottleneckign with current software solutions. Others may even consider it as opositet (it will further tight in the bottlenecked software solutions)... No one can be smart enough to predict what would the real benefits be from this new platform. One thing is for sure - Microsoft has not developed much software that would be classified as not beneficial. In many ways their solutions had helped businesses work more efficient - I strongly believe Azure would be one more weapon in their aresenal. It is one more choice beeing offered - I see no harm in that at all.
Only time will tell (depending on marketing strategies and investments involved in this project) how really beneficial Azure can become.

Benefits are
- developers can focus on business logic as infrastructure(hosting/scaling/backup/software/hardware/load balancing etc) is taken care by cloud computing provider. (Microsoft in case of azure)
- cheaper (possibly!) and scalable solutions
there are many other benefits to like easier integration, communication etc.
But first 2 are enough to change enterprise application development landscape.

again, i understand the short term benefits of this. (even though azure is just a fancy vm running ws2008 with sql etc. and i would personally like to have the ability to manage my servers myself.)

however, what is the long term benefits of this type of deployment? Infrastructure as a service or platofmr as a service is what i call a non sustainable plan. As busineses relience become more and more dependent on technology, software solutions become the bottle neck for business value.

so you are right, it is cheaper...and so is a your first time doing drugs.

you are also right on that it allows developers to focus on business logic...and so is buying a business rules engine, or just buying a integration product like biztalk.

it just worries me that as we generalize more and more technology, and become more and more centrilized, we will soon lose the benefits of custom solutions completly. to me a piece of technology isn't just the software implementation, but also the hardware, the communication etc. on one hand it is great to have cheap infrastructure on a short term returns, i think it is an backwards step interms of the technology evolution.

Personally i see it as another "Fad" in the long line of "Fads" it catchs the eye with funky development concepts and ideas and blue sky thinking and then once the marketing machine has geared up and its out there, big businesses will look at it, see the security concerns, see the fact their confidential data is held on some server outside of their data centres and then go back to how they originally do it. Its purely a tool for SME's to cut their hosting and backoffice costs, nothing more..

There is nothing new in Azure, that hasnt been done in other technologies before, and sadly thats a sign of a "Fad".

Some of us do realize that technically nothing new is there and cloud computing is a "fad"; but from business perspective its different game now as infrastructure and its initial costs are taken out of the scene.In a way it may also be a marketing gimmick for cloud companies to achieve vendor-lock-in.

We may never know whether cloud computing will succeed or not until it does - given many concerns like security and billing rates; but one thing is sure that for many startup's who cannot or do not heavily invest in infrastructure, may now be able cheaply publish useful applications. Not that hosting companies did not provide similar things earlier but there is a pay-as-you-grow feature which may sound attractive. Technology is now packaged much more conveniently as a "cloud" and made available to business.
As a solution architect it may reduce effort I spend in determining and setting up the infrastructure for particular solution for a customer.

Good point you made there about the security concerns. Personally, my greatest concern with Cloud computing is security of data and availability of service. With companies like Amazon having very slack SLAs stating: "We will have no liability to you for any unauthorized access or use, corruption, deletion, destruction or loss of any of Your Content or Applications". The short-term gains may not justify the long-term problems that may occur.
Another concern is the privacy of the data held in the Cloud. Have you ever wondered how much of your personal information is held on Google's servers? If you are a heavy user of Google Apps, try Google Dashboard (http://www.google.com/dashboard) and find out. You will be amazed at how much information is stored on their serve about YOU of which you have very little control until recently. We shall see if the Cloud will die or survive

Security is probably the bigger concern. and as security protocols improve and trust improves more applciations will use the cloud to process and store data.
BUT today you can use the cloud for all your non-sensitive processing needs, and when providers arrive on the scene offering you the millitary spec. data isolation required by law, you will be ready to make the leap away from micro-managing your businesses processes... to simply renting cloudspace when you need it, and where you need it at a moments notice.

Conrad -
The world waits for you to stick your neck out, it's not easy. But once you actually stand up, you do get noticed.
http://www.plcsimulator.org/

Can you explain what special benefits it gives to outsourcing industry?
I think whatever the technology - cloud or otherwise; it makes no difference to business opportunities in IT services (whether onshore or offshore).

Cloud computing is another word for outsourcing, but more specifically it's an outsourcing platform. You have a business in Honnolulu, and you want to expand into Canada or India, but you are not sure which country will want to buy your bubble-gum untill you try. Set up your back-office in the cloud, and then when the new satelite call-centre in Delhi starts getting flooded host your cloud in the East not the West.

Conrad -
The world waits for you to stick your neck out, it's not easy. But once you actually stand up, you do get noticed.
http://www.plcsimulator.org/