Saturday, January 7, 2012

How A-Trak Increases Developer Productivity on Windows Azure

I've recently been working on non-.NET technologies on Windows Azure platform and I'm finding it amazingly fun and easy. From NodeJS to PHP, I'm finding it easier and easier as time goes on that the tooling Microsoft is releasing makes developers lives easier.

That said, at Agile Business Cloud, we're also in alignment with Microsoft's shared vision of making developers' lives easier on Windows Azure. I'd like to announce A-Trak, A Windows Azure Blob Synchronizer and Windows Azure Asset Pipeline (WAZAP).

A-Trak allows developers to easily push files from your machine into Microsoft's public Cloud within 1 easy step (command-line invocation). Additionally, it allows you do synchronization between more blob storage accounts in the following use cases:

Blob → Blob
Blob → Folder
Folder → Blob
Folder → Folder


When quickly spinning up a Wordpress hosted service on Azure, we didn't want to deal with the insanity of a bug when redeploying packages to Azure -- It's in line with this issue. We wanted to extract all resources on our Wordpress theme and pull them in from Windows Azure Blob Storage. Incidentally, our older workflow relied on changes to code in our source tree, then repackaging the PHP WebRole, then shipping it off to Azure.

This triggers a serious issue in Wordpress where you lose auto_increment on all posts in wp_posts table. As a consequence, your administrators lose all abilities to add or update posts/pages; however, you are able to "Quick Publish" a page through the Wordpress Dashboard user interface.

This needed to change.

As front-end engineer, you end up building up your "assets" directory, which contains JS/CSS/images as the front-end begins to evolve into something that a user can easily interact with. A packaging process where you do upgrades or VIP swap after a staging deploy seemed way too disconnected in terms of programming paradigms. Instead, we've taken an approach where a Front-End Engineer can have a command prompt and invoke A-Trak to push their "assets" directory straight to the cloud.

In the end, we have a very simple setup: Wordpress on Azure (no customizations), our own RESAAS theme to avoid any theme-clobbering (overwrites), content changes from administrators, and the presentation layer (CSS/JavaScript/Images) being hosted on Windows Azure Blob Storage.

Thanks Jef King!

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software engineer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Bacardi, Nike, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's writing open source software and helping developers in the Windows Azure NodeJS community.