My PDC09 Talk, and Takeaways about Cloud-Enhancing Your Apps
Hosted Software, Windows Azure November 20th, 2009
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:
- Easily get started with these (PHP and memcached/MySQL) and a variety of Windows Server-compatible technologies on Windows Azure.
- 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:
- 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.
- 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.
- 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.
November 21st, 2009 at 8:15 pm
How much does it cost relative to self hosting? i.e. how should startups think about the breakeven point?
November 22nd, 2009 at 9:39 am
Hey Ian,
Windows Azure pricing is detailed here: http://www.microsoft.com/windowsazure/pricing/
There is a TCO calculation tool here: http://www.microsoft.com/windowsazure/tco/.
Some of the key cost differentiators, beyond just the hosting cost, include
- IT administration and support (including personnel)
- Licensing
It is also worth noting that moving to the cloud is often about more than cost. Examples:
1) Shifting CAPEX to OPEX.
2) Elasticity: Creating new business opportunities that would not have been possible without the elasticity of the cloud (e.g. products that need massive computation for short periods of time)
3) Geo-distribution: Many companies don’t have the means to do datacenter buildouts in all the parts of the world they would like to do business.
4) Time-to-market
5) Ecosystem benefits. E.g. Marketplace of standalone and buildling block services.