Microsoft intends its new Windows Azure Services Platform to be a serious cloud computing platform for a broad range of developers and scenarios, from lone developers starting up a new Web-based company on a shoestring to large teams of enterprise developers looking for high-performance, highly available, and scalable Web sites, computing, and storage. A few years out, Microsoft wants Azure to be seen as the preferred location for enterprise data, not as a business risk. It's off to a good start.
There's a tremendous amount of capability being presented in the Azure CTP (Community Technology Preview), and there's more to come. It goes beyond simple Web hosting to a flexible architecture designed to automatically enlist additional resources in response to demand. There are capabilities here that I haven't seen in competing cloud offerings -- for example, workflows. The Azure team has picked and chosen existing Microsoft technologies -- virtual servers, the .Net Framework, IIS, worker processes, databases, queues, enterprise service bus, workflows, authentication, and so on -- and adapted them to the cloud.
One very promising note is how these services are tied together. The Microsoft of 10 years ago would have created proprietary interfaces to exclude its competitors from taking advantage of its technologies. The Azure team used open standards: REST, SOAP, Atom, and the like. This inclusive choice opens the Azure services to easy integration with almost any programming language and operating system.
Another promising note is how, while breaking new ground, the Azure team made the programming model familiar to developers who have worked with the .Net Framework. You don't have to learn a new programming language or IDE to work with Azure. If you know Visual Studio and C# or Visual Basic .Net, you're good to go, now with relatively little effort. Using other .Net languages and tools is possible but not as well documented. Although using unmanaged code is not yet allowed, it will be in the future.
It took me a couple of weeks of dabbling with Azure an hour at a time to "get it." Part of my problem was that I was overwhelmed by the amount of seemingly independent functionality available. Once I realized that what I was learning was a carefully designed, scalable SOA tied together with RESTful APIs, it began to gel for me. I would expect that any moderately experienced .Net developer with some SOA experience could be somewhat productive with Azure after a few days of concentrated work and fluent in a few weeks.
The Microsoft Azure Services Platform is a Windows-like cloud computing architecture with four major parts: Windows Azure, which is a Windows-based environment for running applications and storing data on servers in Microsoft datacenters; Microsoft .Net Services, which are distributed infrastructure services; Microsoft SQL Services, which are data services in the cloud based on SQL Server; and Live Services, which access data from Microsoft's Live applications and others and allow synchronizing this data through Live Mesh.