This will be my second post on the Windows Azure and Services Platform or what is really Microsoft’s Web OS in the Cloud (ok cloud really means thousands of virtualized servers running Windows Server 2008). Now let me just say from the start that I am presenting my thoughts and insight based on the CTP. Ok lets dig-in to the details.
What is Windows Azure all about?
After researching and working with Windows Azure I would define Windows Azure as “An operating system for the Web”. So the next question is what is a Web OS? Time for an anology. When you think about operating systems Windows XP, Mac OS, Linux, etc… come to mind. Now all of these operating systems provide a platform for developers to create software. For example, when someone watches a video, there is an application that lets a user view and hear something. Or lets say you want to balance your checkbook. You typically open software like Excel and just do your thing. In these examples, the operating system provides the platform and services so that applications like excel or media player can do what they need to do and the end user doesn’t care. Well Windows Azure is very similar. Windows Azure is a Web OS that provides both a platform with services that will allow developers to develop pluggable applications or services (Live, .NET, Sql, SharePoint and Dynamics are all services that can be leveraged to build out custom applications) and deploy them to Windows Azure. The other huge benefit is that these applications that are deployed to Windows Azure can scale from 1 to thousands of users very quickly since the Web OS is running on Microsofts servers (or in the cloud). The image below paints the Windows Azure picture.
How does it work generally speaking?
I copied and created a couple images to simplify things a bit (basic description will follow each image).
In the above image you can see that the Azure Platform is managed by what they call the Fabric. This controller is responsible for communicating with the agents that are running on all the virtualized servers. The Fabric checks for a heartbeat and if things are not working correctly notifications will be logged and sent. What if a server goes down? No problem there are thousands of virtual servers that can can pick-up the load (i think each server is running three VW’s or so that is what I heard). I will address storage in another post, but there are two types of storage; Simple Data Storage and SQL Server Data Services. Couple side notes 1. There are some folks that think life in the cloud will not affect the way development projects are delivered WRONG. Windows Azure while allowing developers to code in .NET is a different world (more to come on this topic). 2. If you are a development shop and plan to dive, sorry I mean fly into the clouds, be sure to have your developers ramp up on Linq, REST, ADO.NET Data Services, and WCF.
Update: Microsoft will be delivering Sql Relation Data Services and moving away from ACE (Authorities, Containers, and Entities). This will make it even easier to simply move existing applications to the Cloud. You will be able to point your connection string to your cloud instance or to your local database NICE!!!.
The above image illustrates all of the moving parts. As you can see Windows Azure provides a Web OS platform along with Azure Services. What this all really means is that I can develop lets say an Applicant tracking system deploy it to Windows Azure (Web OS) and the application can use services from Windows Live, Sql and SharePoint ( In a future post I will take this applicant tracking system example to the next level).
One final thought
I will end this post with a final thought. Today’s operating systems are proprietary (for the most part) by proprietary I mean that I cant just install the same office suite software and it works on Windows XP, linux or Mac. With Web OS that limitation is relatively gone. I could theoretically develop an application on Windows Azure that pulls data from some service on Google’s Web OS. The possibilities are endless.
In my next post I will walk through what I did to create and deploy a web application to Windows Azure. Feel free to ask any questions and I will do my best to get an answer.