Welcome to EMC Consulting Blogs Sign in | Join | Help

Simon Munro

Environmentally Unfriendly Side Effects of Cloud Computing

Cloud computing is obviously green and good for the environment.  For example,

  • Computing power located near green resources – hydroelectric power or other renewable resources like they have in Iceland. 
  • Elasticity - resources don’t have to sit around consuming power when underutilised and can be (virtually) spun up when required. 
  • Cloud Computing makes use of commodity resources, reducing wastage and helping ensure that hardware components are used as long as possible.

So when vendors pitch cloud computing today, it seems a good idea to ride the one thing that may be hyped more than cloud computing – climate change, green energy and related topics.  An environmentally responsible organization may want to do as much as they can to be more energy efficient (or at least make use of renewable energy resources) and cloud computing looks, on the surface, to be a good candidate.

In assessing the viability of cloud computing, running the numbers about how green it actually is for a particular usage scenario becomes a little bit more complicated than ticking off the green credentials.  That is because cloud computing encourages behaviour that may not be very green.  Like a Prius driver that commutes 2 miles a day instead of walking – just because the Prius is green technology, how it is used and applied is more important.

I thought I would make up some potential non green side effects of cloud computing…

  • Availability of cheap resources encourages poor optimisation – it is easier and cheaper to throw another cheap server at a process than to code and debug a highly optimised solution.
  • Processing during peak times – because processors are available on demand, jobs that may have run at night can now be run any time, meaning that the energy required for processing is the most expensive and environmentally unfriendly.
  • Over processing – Cloud Computing allows things that may never have been processed before to be processed without an impact on performance, for example, selecting a very large set of data for analysis because you can literally process the data in an hour where previously it could have taken days.
  • Providing low value products and services – If cloud computing lowers the cost to provide services, it is possible to provide services that only generate a few pennies per transaction.  While generally considered a benefit of the cloud, one has to question whether the value of the end product is worth its environmental cost.
  • Insisting on low latency – A big part of the greenness of cloud computing is the availability of resources where energy is cheaper (and more sustainable), but an overzealous demand for low latency may mean that large data centres still need to be located in metropolitan areas where the environmental impact is high.

As we move from the ‘why’ in cloud computing to the ‘how’, claims about the green credentials of cloud computing need to to be clearly answered, motivated and calculated in order to substantiate the claims for a particular proposal.  Reuven Cohen from Enomaly has recently started asking these sorts of questions and makes a call for supporting data of the environmental friendliness of cloud computing – and seemingly finding very little. 

There is little doubt that some organizations can pull off very efficient (cloud) computing but I imagine that it is tough.  The efficient use of computing resources goes beyond the physical data centre and extends to the application architectures and usage scenarios around a potentially limitless and cheap supply of computing resources.  My interest is to try and understand the influence of environmentally friendly approaches to application architectures and whether or not it is relevant.  We could, for example, look at our application architecture and structure it to offload some processing (where latency is acceptable) to the most environmentally efficient data centre at that moment in time – say on the other side of the world where the data centre is making use of off-peak overcapacity.  Of course, in the spirit of cloud computing, this should be done transparently and in a zero touch manner.

As Google found out a year ago with the furore that erupted over the estimated carbon footprint of a Google search, people are concerned about their energy consumption (or at least aware).  Perhaps, with ever increasing public awareness of climate change, those same concerns will be directed at organizations, where responsible use of energy will become expected.  It is possible that a few years down the line that regulators will jump in and require audits and aggressive increase in data centre efficiencies.  With the current initiatives in building out new cloud computing oriented platforms, it would be prudent to spare a thought for the environment – if not in the implementation of energy efficient processing, then at least in the ability to measure whether or not we are successful.

Then can we use cloud computing as a platform to bring about the radical change in energy usage that is required to protect future generations from our insatiable appetite for computing resources.

Simon Munro

@simonmunro

Published 12 January 2010 13:09 by simon.munro

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

*** Sullivan said:

Simon,

I have also suggested that cloud computing makes a positive contribution to sustainability.  It's essentially a continuation of the consolidation, tiering, increased server virtualization we have been advocating for some time.  But I also agree that we need more empirical evidence.

Since you are in the UK, you may be familiar with Jevons' Paradox.    In his book "The Coal Question",  published in 1865,  W. Stanley Jevons  wrote "…greater energy efficiency, while in the short-run producing energy savings, may in the long-run result in higher energy use."   Basically, an increased efficiency in coal powered steam engines led to more coal use, not less.

As you suggest, the evidence on virtual machines is that the same applies here.  So the question becomes, what are the broader implications and what, if anything can be done about it?

January 12, 2010 20:39
 

simon.munro said:

Sullivan,

Thanks for the reference to Jevons' Paradox.  I suggest that the difference between 1865 and now is that there is (or will be) a greater worldwide imperative to address the energy consumption that results from the increase in efficiency and the Khazzoom-Brookes postulate will come into effect - where the efficiency gains are offset by environmental policy (carbon tax?) in order to reduce demand.

Even if governments do not enforce policy, consumers that are becoming increasingly aware of their personal effect on the environment may opt, at their own cost, to buy products from a supplier that has better green credentials.  Which goes back to better measuring and emperical evidence.  Consumers seem to want to pay more for fairtrade coffee and products produced from sustianable palm oil farms.

I would admit that as a software person my concerns and knowledge about data centre efficiencies are far more immature than the infrastructure and virtualisation experts that do this for a living.  But I am beginning to think that software architectures can and should play an important role in making optimal use of resources.  Simply virtualizing legacy apps on premise (as is the private cloud proposal) is inflexible in terms of taking advantage of the potential energy benefits of cloud computing because processes are too tightly coupled to a specific (local) instance.

I can imagine a future scenario where regulators force, through carbon tax or some other means, the subsidization of greener data centres which, because the renewable energy source is remote, means that only some of the processing can be done with such high latency.  The idea of an application (lets say Facebook photo thumbnails being generated) determining automatically and at real time the best place to process the data based on a cloud market spot rate is very real and likely to me.  This becomes even more likely with batch processing and computationally intensive BI (building cubes) where a futures market could be established for month or day-end runs.

Our current architectures do not support such models and neither do software developers even care - they are used to adding horsepower cheaply and easily.  I don't have much in the way of answers but one thing I could do is talk more to the application developers in order to begin thinking about architectures that make general sense now and have the fundamental patterns in place to take advantage of the (hopefully) inevitable economic benefits of more sustainable computing.

Thanks for the input, this is an area that I need to give more attention and emphasis.

January 12, 2010 23:06
 

James Saull said:

A CTO you might know also blogged about something similar to Sullivan(http://chucksblog.emc.com/chucks_blog/2009/10/the-paradox-of-positive-elasticity.html). In a world of scarcity (e.g. old mobile devices) we see incredible optimisations being made because the massive labour cost is more than offset by the efficiency gains, but in a world of abundance this is not true and we see big bloated and inefficient software (e.g. desktop operating systems and applications) - "time to market" and Moore's law always being put at the top of the list of reasons.

I think you are right; the ability and ease of acces to a massively abundant cloud computing resource will drive that behaviour on the server. It will be cheaper to add 10 more web servers than to profile, optimise, regression test and deploy the code base - get that expensive 1st world developer adding real business value instead!

Without meaning to dig at PHP, facebook openly admit that PHP is way slower (and therefore more resource hungry to meet the same demand) than C++/Java/C# but they still use it. They clearly favour massive scale out (resource use and environmental impact) and developer productivity etc. With offshore developer rates what would you have to increase the cost of compute to in order to encourage the use of C++ over PHP?

Perhaps future tax systems will encourage environmentally sound decisions to be made although this will be tough to make work globally without counter productive side effects. Perhaps we can build apps that proudly show that the web page was returned to you with a carbon footprint of 1g of CO2!

We must always remember to look at the big picture (a la Prius) and realise that the 2 mile trip to work is the tip of the iceberg. How much power was consumed building the car, the source of the electricity, the impact of reycling the car/batteries etc. So even if the web app is a little inefficient what is the total system efficiency/impact over its lifespan? Does the app genuinely hibernate and release resources quickly when not in use / low use? Was the app developed by an organisation who run an office with all the lights on and leave huge private dataentres running all night idle when they go home?

January 13, 2010 13:18
 

simon.munro said:

James,

A developer sitting in a palm front hut in a temperate climate with a notebook powered by a wind turbine and fed by a subsidence farm in the back garden is, even if they are ten times less productive is always going to produce software more energy efficiently and cheaply.  Fortunately for us trying to make a living in the first world, quality, time to market and other factors mean that such a development environment is not viable.

I am not sure that I am personally ready to tackle the entire energy value chain as it is complex and broad, but I can give attention to pieces of the puzzle that make sense to me.

Energy efficient data centres are top of mind and some clever people are actively working on building better and more efficient data centres - which is great.  But the idea of energy efficient software (or the overall system) is completely lacking - which I see as the real problem.

I see it as inevitable that energy efficiency pressures will come into the software space and developers need to start adjusting their approaches to building software.  The side effect of thinking about software efficiency is better software anyway, so even if the energy consumption turns out to be a non-issue, we will still have a good end result.

In my experience, developers can master new technologies but struggle to adopt new patterns.  The number of developers that actively code with message based architectures is almost insignificant and the number that understand it is also worryingly low.  Say we begin to build applications that

- are less bloated

- are more service oriented (allowing processes to be priortised or sleep)

- have parts of the application decoupled so that they can be moved around

- introduce more message orientation so that processing can be done outside of the primary thread and moved to a more appropriate place and time

- use data more efficiently (e.g. reduce the dependency on SQL, which by design requires (high energy consumption) disk i/o)

Would something like that be a start?  Isn't it a good idea to build better software anyway?

January 13, 2010 14:10

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems