Original URL: http://www.theregister.co.uk/2008/11/03/dziuba_azure/
What Ray Ozzie didn't tell you about Microsoft Azure
Behind the whiteboard of confusion
Fail and You Unveiled earlier this month at Microsoft's Professional Developer Conference by Chief Whiteboard Operator Ray Ozzie, the Azure Services Platform confused damn near everyone. But after days of collaboration with the top minds in both industry and academia, El Reg is proud to announce that we have finally figured out what Microsoft Azure is.
The Azure Services Platform is a clusterfuck of software that can be broken down into four basic parts: Windows Azure, .NET Services, SQL Services, and Live Services. To get a general idea of what each is, you should probably read the sixteen-page white paper. It is designed to compete with Amazon's Web Services and Google's App Engine - that is, once it gets over one slight hitch: tl;dr.
The Four Letters of the Apocalypse
tl;dr stands for “too long; didn't read,” and it is going to change communication as we know it. Product managers at both Amazon and Google have figured out what tl;dr means to their respective businesses, but the idea is clearly lost on Microsoft. When a developer is evaluating different hosted computing platforms for his next application, the merits of each one are decided by how well they are explained:
Amazon EC2: We have a lot of servers, and we run Xen on them. You get virtual machines.
Google App Engine: Run your Python code on our machines. You can use our scalable database, too, but you need to learn how it works.
Microsoft Azure: OK, so first there's this operating system called Windows Azure that your apps are going to run on and will also be your development environment. There's some data storage that goes along with that, but it's not very useful, so we have the SQL Service. That doesn't really give you SQL, but something sorta similar. Ignore it for now. Still with me? There's also .NET Services that lets you connect applications together somehow, and Live Services because we needed something to keep Ray Ozzie busy. Wrap that all up, tape it together with some C# programming, and that's the platform.
Fortunately for Microsoft, decision makers don't choose a hosted application platform based on specifications. They choose based on the number of stock photos of clouds and the amount of sans-serif blue typeface you have on your webpage. In that regard, Redmond is the clear winner.
More Components Means More Whiteboard Action
Documentation issues aside, it seems that Microsoft has actually produced something useful - once you separate the signal from the noise. Here's how it breaks down:
- Windows Azure is the operating system on which your applications will run, sort of. It's more of a manager for virtual machines. It can run on your developer workstation and in Microsoft's data center. Programming for Windows Azure is done in .NET, but Ruby, PHP, and Python will soon be supported. For the time being, tour coding should be done in Visual Studio, but Eclipse support is also on the way.
- Windows Azure protects you from scary shit like managing operating systems. You deploy your application straight to the data center, and it's all run in virtual instances of Windows Server 2008. Marshalling that virtualization is Windows Azure's job. Microsoft has understood that every time a developer needs to configure services on a machine, they fuck it up and need to page the ops people. To make matters easier on everyone, they've only provided two roles for Windows Azure machines: one to handle HTTP requests and one to do everything else. With these two roles, you can do both web applications and asynchronous background processes.
- Windows Azure also provides you with some neutered data storage. You can store both structured and unstructured data, but nowhere do you get relational semantics. If you want to do anything remotely practical with this platform, you'll need to use the SQL Service.
- Giving you access to a straight-up hosted Microsoft SQL Server would be too useful, so in the Azure platform, you get a weak abstraction over it. You can query this data store with a LINQ-like language over REST or SOAP. Why not provide you with just an SQL server? Because scaling an SQL server arbitrarily is a real pain in the nuts, and you can scrape by with this abstraction. I hope you're not too dependent on stored procedures. That will learn you to tightly couple your data and your business logic, fucker.
- The engineers should have just stopped there, but there are more components to the Azure platform that are just there for show. First, the .NET Services part, which is more of a marketing tool than a useful piece of software. .NET Services let you expose web endpoints for your services so that you can connect your application to other applications out there. The idea is that businesses can easily interoperate with one another with this “service bus.” Good theory, but probably not worthy of an abstraction. .NET Services also provides a fairly convoluted federated identity system based on SAML. The path to a generalized authentication scheme is always watered with tears.
- Ray Ozzie has been rewriting the same data-synchronization application for years, and over that time, he's become very good at re-branding it as something that people need. The last time we heard, it was called Hailstorm, and now it's Windows Live Mesh. In the Azure platform, it's called Live Services, and it was likely thrown into the mix because Ozzie needed something to do. It serves no practical purpose in the greater scheme of the system and can be safely ignored.
A Thunderhead Is A Cloud, Too
This is all within one standard deviation of the average amount of fail in any given Microsoft product. In fact, I think it stands a better chance than Google's or Amazon's offering.
Let's say you're a business decision maker, and you got yourself on this cloud computing kick. Who would you rather buy your cloud resources from?
Or maybe you should just stick with the one that has the best cloud graphics. ®
Ted Dziuba is a co-founder at Milo.com You can read his regular Reg column, Fail and You, every other Monday.