Windows Azure Logo I, along with Tushar Shanbhag, recently gave a talk @ PDC09 on using PHP, memcached, and MySQL to build applications with Windows Azure. The video and slides are now available.  We used the technologies in the talk to reinforce some key Windows Azure benefits, specifically how to:

  1. Easily get started with these (PHP and memcached/MySQL) and a variety of Windows Server-compatible technologies on Windows Azure.
  2. Maintain, scale, and more broadly cloud-enhance these technologies by leveraging platform primitives in Windows Azure.

Ray Ozzie, Microsoft’s Chief Software Architect, talked to similar points at a recent Financial Analyst and Investor Briefing this past Wednesday:

The way that we kind of think about it is, most people will do a move, extend, and then transform. They’ll move something to the cloud, then they’ll start to mess around with it, and understand what it’s like to be in the cloud. And then they’ll extend it by starting to take some aspect of it and take advantage of the cloud.

Having served as CTO of a startup where we leased our own rack and burned lots of time on both software- and hardware-related “I.T. stuff”, I get especially excited about the extend/cloud-enhance point. In addition, it reinforces that Windows Azure is much more than a hosting provider.

Here are just some of the ways you can cloud-enhance your applications with Windows Azure with minimal incremental code:

  1. Elasticity (Even for Client-Server Apps): As we demonstrated in our talk, you can continue to use client-server apps (i.e. memcached) as you do today. However, by leveraging Windows Azure’s new topology discovery API’s, you can add elasticity with just a few lines of code to automatically update your clients’ connection tables when server nodes are added or removed.
  2. Diagnostics: You continue to log and trace as you do today. However, with Windows Azure Diagnostics, you can choose to direct the output (from potentially multiple nodes) to a centralized location in Windows Azure Tables. By doing so, you get a durable and queryable way to detect & troubleshoot problems, measure performance, etc.
  3. Automation: You continue to use the configuration mechanisms (e.g. .ini file) you use today. However, by writing incremental code, you can have the ini file populated from a Windows Azure configuration setting. In doing so, this configuration, which could be living on 1000s of your nodes, is now updateable via a single change in the Windows Azure management portal.