Tuesday, November 11, 2008

Windows Azure an introduction and what will it mean to the corporate developer? (Part 3)

This part of the post will talk a bit more in detail about Windows Azure. The pictures I use in this post comes from the excellent white paper Introducing The Azure Services Platform written by David Chappell.

So what is Windows Azure? Microsoft them self defines it like this:

Windows® Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Azure Services Platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage Web applications on the Internet through Microsoft® data centers.
Or simply put its an operating system for the cloud where the cloud basically a group of server (typically a large number of them). Initially it will be available as a service running in the datacenters of Microsoft, altough there where some hints that this might be made available for others at well to run in their own datacenters as well.
As the picture indicates the central piece in this is the part called the fabric controller which handles the automated service management and makes sure that you applications are provisioned in the way that you have specified.

These specifications are done using models that specify this such as topology information, health contraints, logical resources and so forth. As far I could tell they where not done using the "M" language yet but the intentions are that eventually all this will migrate into a cohesive whole. These models are then used to handle automated deployment and monitoring of your applications.

As you can se in the picture above there are two ways of deployment into Azure namely the Web Role (used for the public endpoints of you applications) and the Worker Role (used for async work normally triggered by either listening to the servicebus or polling a queue in the storage system).

In the current CTP release you can only deploy ASP.NET applications and .NET code, in the release version of Azure Microsoft intends to provide the possiblity to deploy PHP based application and support for unmanaged code as well. It worth to notice that the code is not running with full privelages but is running in a special sandbox mode that is similiar to what you get from todays application hosting environments.

Along with all these goodies we get access to a scalable file system as well, its not to be confused with the SQL Services which intends to provide a database in the cloud. Much in the same fashion though the access APIs are via REST interfaces and are accessible either direct from your code running with in Azure as well as your on-premise application. Very quickly you can decribe the different types of storage available like this:

Service Data provided by blob support much like a regular file in your on premise environment (in future versions we get support for filestreams as well).
Service State provided by tables, which aren't really table :) kinda confusing but it is simply a hierarchical structure consisting of enteties/properties/named and typed value

Service Communication provided by queues which are exactly what it sounds like a regular oldfashioned queue where the web role typically posts something that gets picked up by the backend worker role.

You access everything through a fancy web portal which looks nice in the CTP but leaves you with the impression that it will be a little painfull to deal with a major installation using the portal since it doesn't lend it self to well to large ammounts of data.

Finally one of the coolest things if your a dev like me is the fact that you get a development fabric which is a complete simulation model for Windows Azure and lets you test out your code in a distributed fashion before deploying to the cloud. Simply put you get "The Cloud on your desktop" fully integrated with your favourite IDE Visual Studio.

I'm really looking forward to getting hold of an account to actually trying out the bits for real, unfourtenatly I was one of those poor sods that had to attended the PDC via streaming on channel9 :) which means I have to wait a little longer (if by anychance anyone at Microsoft reads this feel free to help speed ut that process).

No comments:

Post a Comment