Introducing Windows Azure - Cloud Services Platform!
Today at PDC, Microsoft unveiled a major initiative: Windows Azure. Azure is a "cloud services operating system". Specifically, it is intended to be a
single platform providing complete cloud-based development, hosting, and management services.
The Azure site contains the following platform diagram:
Ray Ozzie, Software Architect, opened the PDC with an emphasis on services and the "cloud". His main argument was that the needs of servers that are used by people all over the world are fundamentally different than the needs of servers used within a company. With servers been scattered in data centers worldwide and demand varying wildly due to news and blog coverage, product releases, and even the shopping season, a lot specialized knowledge is needed. Microsoft started working on their own cloud platform only a few months before Amazon announced EC2.
Windows Azure, or "Windows in the Cloud", represents the knowledge Microsoft has gained from years of working on high availability, high use systems like Windows Update. A major goal of this cloud framework is to offer a way to program in this new style using existing Native and .NET skills.
Something to keep in mind is that Azure is merely lowest level of Microsoft's cloud computing framework. On top of Azure will be components such as SQL Services, Live Services, .NET Services (Workflow and Identity), SharePoint, and Dynamics CRM.
Amitabh Srivastava, Senior Vice President, Microsoft Research, handled the first two demos.
Azure abstracts the underling hardware away from the application using what they call the "Fabric Controller". The Fabric Controller, which works at the service level, relies heavily on Service Models. These XML fragments describe each service in terms of permissions, endpoint, and configuration. Azure supports low-level concepts such as blobs, tables, queues, and locks, all of which are virtualized by Azure and the Fabric Controller.
The first demo was a standard ASP.NET website. The only difference was a second project in the solution that handled the Azure-specific settings. This allows debugging applications locally before they are deployed to the Web. In addition, a complete simulation of Azure is available on the developer's machine with all the services the application will have in production. Deployment was ridiculously easy. Basically all you need to do is just compile and upload it to either your staging or production environment through Azure's configuration site.
Their second example, Bluehoo, demonstrated how easy it is to scale-up applications. By designing systems to place incoming updates in a queue, production support teams can increase capacity simply adjusting the number of worker processes.
Bob Muglia, Senior Vice President of the Server and Tools Business, argues we are in the 5th Generation of Computing. The first four were Monolithic, Client-Server, Web, and SOA. He is making the case the next generation is Services. The difference between the SOA and Services generation is that SOA does not inherently scale well. It can be scaled up, but it has to be done manually for each company and project. With Services and Cloud Computing, the ability to scale out is fundamental to the platform. A major benefit touted by Bob was Azure is 24/7 uptime and reliability without the upfront costs associated with building your own data center.
.NET Services and SQL Services
Since security is important, they are developing a Service Bus that will create a secure connection between a company's internal systems and their cloud-based services. This is an essential component if companies are going to be willing to trust Azure for data storage. To handle identity, .NET Services will allow federating a company's Active Directory structure to Azure. Finally, Workflow services already being used in-house can be modified to work with Azure.
SQL Services is essentially the cloud version of SQL Server. Databases, reporting, data mining, and synchronization are all going to be offered.
Microsoft Online Services
David Thompson, a Microsoft veteran from the days if NT, covered the final part of the keynote, Microsoft Online Services. Microsoft is planning on offering literally all of their enterprise-class applications such as SharePoint and Exchange Server as a hosted service. While in-house versions will still be available for companies wanting tight controls, this new offering will satisfy the needs of companies needing quick deployment and easy management. It will be sold via partner companies, suggesting that the partners will handle high level configuration and support on behalf of Microsoft.
This will not be an all or nothing proposition. Access to Microsoft Online Services systems will be authenticated through the company's own Active Directory server. The users will literally be unable to tell if they are accessing the company's in-house server or the one hosted by Microsoft.
Pricing will be based on two components, the level of service guarantee and the resources consumed by the application. These will be determined by market conditions and will be competitive with other Cloud offerings. For the preview period there will be no charge, but there also won't be any reliability guarantees and breaking changes are possible.