Energy Efficient Cloud Computing for Developers

Description

Datacenter energy efficiency is a hot topic these days (how to keep thousands of machines cool without consuming too many electrons, etc.), but something that doesn't get quite as much attention in terms of datacenter energy efficiency is the code running on the servers that make up the cloud datacenter—i.e., the cloud applications written by developers.

As developers, you have the power to save power! This is important to realize as we enter the cloud era. Your bosses will be quite pleased if you do your best to not only make sure your code is as efficient as possible, but that the monthly bills from your company's cloud providers are as low as possible. We live in a new age. This is a very important topic.

In this developer-focused discussion, Mark Aggar,Senior Director of IT Environmental Sustainability at Microsoft (You've met him before), and Grigori Melnik, Program Manager in the Patterns and Practices group, share insights and recommendations about building energy efficient applications for the cloud.

The Discussion

I recently signed up with Azure for a new project of mine. It's a software as a service model where other website owners will install a snippet on their website to gain specialized insights and uncover problems.

So of course its popularity is unpredictable at this point, but it has the potential to see an enormous number of requests every day and may even see drastic bursts of traffic. So scaling has always been at the back of my mind as I'm building it.

Furthermore, it's absolutely true that Azure makes you think about efficiency. Since you're essentially paying for usage, it encourages you to make your application as efficient as possible. I'm always thinking about this as I'm writing the code, designing the database, etc.

I recently incorporated an optimization technique where I'm storing a temporary list of updates in-memory (I'll move this over to Azure Cache soon for better reliability). Then I send these updates to SQL Azure and Azure Table Storage once every minute. Due to my schema design, I'm able to greatly reduce the total number of inserts/updates that have to be performed by using this technique.

@Steve Wortham: Excellent, Steve. With a policy-based autoscaling system like WASABI you'll be able to extend your efficient design thinking to the datacenter's virtualized infrasctructure, however you'll need to account for unpredictable surges, which you can - and which you seem to be thinking about already - in your own design and implementation.