We knew it was coming, the leafs were rustling and the wind was blowing. Yesterday Microsoft finally released their vision for their offering into the cloud space.
They have published a whitepaper on Azure so with that, here are the highlights from that whitepaper.
- High level view: "a platform for running Windows applications and storing their data in the cloud"
- Four main areas; Windows Azure base, .NET services, SQL services and Live services
- All Azure applications run within Microsoft's data centers accessible via the Internet
- Applications built on .NET will only be able to run in Azure (non .NET apps possibly in 2009)
- Developers will use Visual Studio 2008
- Azure supports background processes that run independent from the web app
- Access to the Azure Storage service is via REST API (which isn't MS SQL Server)
- Storage is not strictly SQL (Relational) but provides a table like structure with a query language
- Each Azure app has its own configuration file that dictates how much resources it should consume within the platform
- Azure has a complete online browser portal to control all aspects of their Azure app
- Microsoft's BizTalk services, now known as .NET services, controls the infrastructure for distributed applications
- Role of this service: "Access Control" who can do what
- Role of this service: "Service Bus" allow an application to expose functionality through a web services end points. Handles all the logistics of this, including registering, lookup and firewall issues
- Role of this service: "Workflow" how do all the parts of the application work together, built on Windows Workflow Foundation
- SQL Services will include reporting and data analytics
- The first to appear in SQL Services will be what was known as "SQL Server Data Services" called "SQL Data Services"
- Permits Azure apps and NON (remote) Azure apps to store data on Microsoft's servers
- Microsoft will only charge on what you use (storage and bandwidth)
- SOAP and REST API's will be available for accessing data within this area
- SQL Data Services does not require a pre-determined schema
- Effectively roles up Amazon's SimpleDB / S3 into one service
- Live Services is a wrapper to hook into the existing online Microsoft Live family of applications
- The "Live Framework" introduces the "Live Operating Environment" that can run on desktops (including Mac) and mobile devices, and will synchronize the users data automatically
- Azure apps can hook into this synchronization/layer if the user gives permission to that application
- Users can expose data to other users within within the "Live Framework"
- A "mesh enabled" application is one that can run on any device/platform and have access to the same data. In other words your Azure app comes out of the clouds and onto the device/desktop Think Google Gears on steroids
- To aid startups monetize this, Microsoft plans to build in support for displaying ads in this applications
- Because the API to this is REST/SOAP non Microsoft platforms/technologies can hook into this world too
- Azure applications run within their own "instance" which is currently on a 1-to-1 mapping with a single processor
- An Azure application can determine how many instances they want to run on, and the platform will automatically load balance between the two
- Each "instance" is effectively a Windows 64bit Server 2008 running .NET 3.5
- Users won't be able to customize, or upload their own 'instances'
- Automatic detection of a failed "instance" will run up a new one
- Naturally all Azure apps must be stateless; client data written SQL Data Services, or pushed back in a web cookie
- Access to Windows Azure Storage is via ADO.NET web services; therefore it may not be possible to drop existing .NET applications unmodified into Azure
- Developers can run a "Azure-in-a-box" that runs locally for them to test against all the Azure services on offer
- Azure has built in hooks for alerting of impending doom
- Storage can be as simple as a single BLOB of up to 50GB in size
- BLOB's can have metadata associated with each one as well as the data itself
- Other data is stored in a key/pair/type that can be queried
- All data is replicated 3 times for fault tolerance
- All data can be accessed via a simple URL:
- This permits non-Azure applications to hook into data
Microsoft have done far more than simply follow others. They have created a complete new platform that leverages much of what the likes of Amazon, Google, Sales Force, Open Social API, all are doing in their own spaces but bringing them together.
While sign-ups are being accepted to test this new platform, details on pricing are not available, so we have no real way to compare how more expensive or cheaper it is going to say switch storing our data in Microsoft's Azure platform compared to say Amazon's S3 or Nirvanix.
But this announcement will definitely appease the .NET developers and have them all breath a sign of relief that their favourite big brother hasn't let them down and forced them to learn python to utilise Googles App Engine.
More information available here http://www.microsoft.com/azure/webdev.mspx