I'm sitting here with a beer and listening to some nice rock music, the family is sound asleep and I figure I'd might as well start writing abit about my thoughts on what was the major theme of the PDC08 last week ... namely Azure Services Platform ... This post is probably gonna end up being a multipart posting since there is simple so much exciting new stuff to talk about in the and how it will change the way we write software on the microsoft platform.
The last couple of years there has been alot of discussion about delivering "Software as a Service" (SaaS), we have seen some successful attempts at this the most noteworthy is surely SalesForce delivering CRM software as a service in the cloud. More recently we have seen an evolvment of this into "Platform as a Service" (PaaS) being pioneered by Amazon with their EC2 (Elastic Cloud Cloud) and S3 (Simple Storage Service).
Well anyway last monday (October 27th 2008) Ray Ozzie announced the Azure Services Platform which is Microsofts step into the cloud computing arena.
It's an operating system for the cloud. Normally when talking about the could we are talking about the internet but really Windows Azure is not limited to that, we could just as easily apply the technology behind Azure on any larger datacenter. It's all about efficient management of resouces and global scalability and reach. Apart from a hosting environment for our applications we get a new highly scalable storage system and a set of building block services:
.NET Services (previously known as BizTalk Services), will provide us which things such as federated acces control, an hosting environment for our windows workflows and last but not least a servicebus for the internet which will play an important role in what we can do in regards to integration between companies.
SQL Services (previously known as SQL Server Data Services), will provide us with a database in the cloud. Initially the offerings are rather limited and not that different from whats offered via the Azure storage system but we will get more and more capabilities here.
Live Services, these are no newcommers you get your basic stuff such as Live ID and Live Contacts. The really intressteing piece here though apart from Live ID is probably the newcommer Live Mesh which will provide a syncronization platform for syncronizing data between all your devices.
The platform also contains more traditional SaaS offerings such as Sharepoint Services and Dynamic Services. Well enough with the details (there will be plenty more of those in furture pats of this posting) and lets get down to what this can mean for people developing software. As I see it there a atleast three different users of this platform:
This is probably when a platform such as this really shines. Imagine all the creative people that can realize their ideas with just having to invest the time for realizing the code. We can skip the part where we have to build our own datacenter and staff it with expensive and hard to find people. Or once your in business you do that really expensive superbowl ad and get swamped with customer the next day, instead of building a datacenter for the worst case scenario we can just turn a knob and get some more juice ... you just gotta love it!
Small to Midsize companies
Similar to the upstar company we do not have to build up an huge it department for getting our it infrastructure in place we will just pay as we go. The main difference here is that we are most likely not going to have the need for the huge scale that the next facebook would need, in this segment it's all about TCO and operational cost as opposed to expenditure costs.
All the stuff we see for the midsize company applies here as well but I think there are some intressting scenarios here for producing hybrid solutions not only just putting parts of the application in the cloud. But maybe there are some possiblities for put load into the cloud based on expected flash load but still mantaining control of the application on premise (there will be several challenges with this and I will post more as I try this in real life).
Another really intressting idea is the fact that we will have more oppertunety to actually try out ideas since they will not incur the heavy expenditure costs for setting up an operational environment and thus we will be able to produce a real working application as a prof of concept which we then can bring inhouse if needed.
So when should we expect all these goodies? Microsoft are talking about a comercial release some time during 2009 which will include multiple datacenter with global distribution.
For more detailed information regarding "Azure" check out the following PDC08 sessions:
- A Lap Around Windows Azure
- A Lap Around the Azure Services Platform
- Architecture of the .NET Services
- Developing and Deploying Your First Cloud Service
- Architecting & Managing Cloud Services
- .NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus
- .NET Services: Orchestrating Services and Business Processes Using Cloud-Based Workflow
- .NET Services: Access Control In Microsoft .NET Services
- Identity Roadmap for Software + Services
- SQL Server: Database to Data Platform - Road from Server to Devices to the Cloud
Or if you are short on time read the following articles to get a quick overview of what it's all about:
- Introducing the Azure Services Platform
- A Short Introduction To Cloud Platforms
- Software + Services in the Microsoft World
- Internet Service Bus
Another really cool thing about the whole Azure platform is that microsoft is vigliant about this being a cross platform environment there is plenty of talk about the ability to host other languages than .NET in future version, but we already have accessibility from Ruby (.NET Services for Ruby) and Java (.NET Services for Java).
Finally be sure to check out Googles App Enginge if you are serious about learning more about cloud computing. See you in the next part of this post when I'll talk about my concerns in regards to how this will play out for a corporate application architect.