Tip for Building Green Applications

I just had a conversation with an industry magazine editor and had a good time discussing green IT. One of the topics we talked about was green applications, and how difficult it is to get developers to write greener code.  There are no hard and fast rules as to what code is greener, but after the discussion it hit me there is one way to make a greener app.

Problem: Developers are removed from the production environment and the resources used. As CapEx and OpEx increase for power and cooling infrastructure developers are unaware that their energy use is a dominant cost beyond the cost of the hardware.

Opportunity: How do you get software developers to change their behavior?

Solution: If you use cloud computing services like Amazon Web Services or Google Application Engine, then the costs for compute, storage, and network use are easy to calculate as this is their chargeback model. As the application is developed, tested and put into production, the costs for running the solution is a metered number that has a direct relationship to the code.

Give your developers a cost per unit of work budget. If you are a startup you have limited budget and if you are trying to run a site where advertising is one of your main revenue streams, your profit will be determined by the difference between your revenue and your costs. The last thing you want is a site that costs more to run per click event than an advertising revenue click brings in.

This applies to few of the enterprise developers, but more and more companies are starting up using AWS and GAE, training a set of developers who are learning to be efficient with compute, storage, and network.  Do you think these developers waste storage and network bandwidth needlessly moving data around?

If you could build an internal chargeback system for compute, storage, and network, charging the departments direct costs, then you too can motivate your developers.

If you think it is too much work for you to build your own system, here is a more radical idea, use AWS or GAE as your development environment, and you can roll out the production system in your own environment, but you used AWS/GAE to measure your solution and you outsourced the development environment. The guys at Skytap could support this model if they make changes to their chargeback model.

This is a good opportunity for the management tools companies like CA, HP, and IBM to support as well.