Christmas in the Clouds
I have been spending the last 2 weeks immersing myself in a number of Windows Azure and SQL Azure technologies. And in setting up a new business (I'll speak more about that in the future), I have also become a customer of Microsoft's BPOS (Business Productivity Online Services). In short, it has been a fortnight of Microsoft cloud computing.
On the Azure side, I've looked, of course, at Web Roles and Worker Roles. But I've also looked at Azure Storage's REST API (including coding to it directly), I've looked at Azure Drive and the new VM Role; I've looked quite a bit at SQL Azure (including the project "Houston" Silverlight UI) and I've looked at SQL Azure labs' OData service too. I've also looked at DataMarket and its integration with both PowerPivot and native Excel. Then there's AppFabric Caching, SQL Azure Reporting (what I could learn of it) and the Visual Studio tooling for Azure, including the storage of certificate-based credentials. And to round it out with some user stuff, on the BPOS side, I've been working with Exchange Online, SharePoint Online and LiveMeeting.
I have to say I like a lot of what I've been seeing. Azure's not perfect, and BPOS certainly isn't either. But there's good stuff in all these products, and there's a lot of value.
Azure Goes Deep
Most people know that Web and Worker roles put the platform in charge of spinning virtual machines up and down, and keeping them up to date. But you can go way beyond that now. The still-in-beta VM Role gives you the power to craft the machine (much as does Amazon's EC2), though it takes away the platform's self-managing attributes. It still spins instances up and down, making drive storage non-durable, but Azure Drive gives you the ability to store VHD files as blobs and mount them as virtual hard drives that are readable and writeable.
Whether with Azure Storage or SQL Azure, Azure does data. And OData is everywhere. Azure Table Storage supports an OData Interface. So does SQL Azure and so does DataMarket (the former project "Dallas"). That means that Azure data repositories aren't just straightforward to provision and configure... they're also easy to program against, from just about any programming environment, in a RESTful manner. And for more .NET-centric implementations, Azure AppFabric caching takes the technology formerly known as "Velocity" and throws it up into the cloud, speeding data access even more.
Snapping in Place
Once you get the hang of it, this stuff just starts to work in a way that becomes natural to understand. I wasn't expecting that, and I was really happy to discover it. In retrospect, I am not surprised, because I think the various Azure teams are the center of gravity for Redmond's innovation right now. The products belie this and so do my observations of the product teams' motivation and high morale. It is really good to see this; Microsoft needs to lead somewhere, and they need to be seen as the underdog while doing so. With Azure, both requirements are in place.
BPOS: Bad Acronym, Easy Setup
BPOS is about products you already know; Exchange, SharePoint, Live Meeting and Office Communications Server. As such, it's hard not to be underwhelmed by BPOS. Until you realize how easy it makes it to get all that stuff set up. I would say that from sign-up to productive use took me about 45 minutes... and that included the time necessary to wrestle with my DNS provider, set up Outlook and my SmartPhone up to talk to the Exchange account, create my SharePoint site collection, and configure the Outlook Conferencing add-in to talk to the provisioned Live Meeting account.
Never before did I think setting up my own Exchange mail could come anywhere close to the simplicity of setting up an SMTP/POP account, and yet BPOS actually made it faster.
What I want from my Azure Christmas Next Year
Not everything about Microsoft's cloud is good. I close this post with a list of things I'd like to see addressed:
- BPOS offerings are still based on the 2007 Wave of Microsoft server technologies. We need to get to 2010, and fast. Arguably, the 2010 products should have been released to the off-premises channel before the on-premises one. Office 365 can't come fast enough.
- Azure's Internet tooling and domain naming is scattered and confusing. Deployed ASP.NET applications go to cloudapp.net; SQL Azure and Azure storage work off windows.net. The Azure portal and Project Houston are at azure.com. Then there's appfabriclabs.com and sqlazurelabs.com. There is a new Silverlight portal that replaces most, but not all of the HTML ones. And Project Houston is Silvelright-based too, though separate from the Silverlight portal tooling.
- Microsoft is the king of tooling. They should not make me keep an entire OneNote notebook full of portal links, account names, access keys, assemblies and namespaces and do so much CTRL-C/CTRL-V work. I'd like to see more project templates, have them automatically reference the appropriate assemblies, generate the right using/Imports statements and prime my config files with the right markup. Then I want a UI that lets me log in with my Live ID and pick the appropriate project, database, namespace and key string to get set up fast.
- Beta programs, if they're open, should onboard me quickly. I know the process is difficult and everyone's going as fast as they can. But I don't know why it's so difficult or why it takes so long. Getting developers up to speed on new features quickly helps popularize the platform. Make this a priority.
- Make Azure accessible from the simplicity platforms, i.e. ASP.NET Web Pages (Razor) and LightSwitch. Support .NET 4 now. Make WebMatrix, IIS Express and SQL Compact work with the Azure development fabric. Have HTML helpers make Azure programming easier. Have LightSwitch work with SQL Azure and not require SQL Express. LightSwitch has some promising Azure integration now. But we need more. WebMatrix has none and that's just silly, now that the Extra Small Instance is being introduced.
- The Windows Azure Platform Training Kit is great. But I want Microsoft to make it even better and I want them to evangelize it much more aggressively. There's a lot of good material on Azure development out there, but it's scattered in the same way that the platform is. The Training Kit ties a lot of disparate stuff together nicely. Make it known.
Should Old Acquaintance Be Forgot
All in all, diving deep into Azure was a good way to end the year. Diving deeper into Azure should be a great way to spend next year, not just for me, but for Microsoft too.
Posted by Andrew J. Brust on 01/03/2011