Mostly Cloudy: Software should be more energy-efficient, and cloud providers can help
SORRY ABOUT THE NEW OKR
|Oct 11, 2019|
A Microsoft data center. (Microsoft Photo)
If cloud computing providers really want to take action in the face of looming climate change, they should make it much easier for their customers to understand the amount of energy that is required to run their applications, and offer incentives to create more efficient software.
A modern cloud computing data center is a staggering sight, and a generation of software developers have grown up in a world where they rarely have to consider the equipment used to power their apps. For the most part, these enormous, windowless buildings are tucked away in suburban or rural communities, far from the cities where they create applications that rely on the steady, seemingly limitless supply of electrical power to those buildings.
Estimates vary on the amount of electrical power consumed by the cloud computing industry, but it’s a lot (and that’s not even counting the bitcoin people). To their credit, big data center operators like Google, Facebook, Microsoft, and Amazon Web Services have gotten better (with varying degrees of effort) at sourcing that power from clean-energy sources like the hydropower plants of the Pacific Northwest, wind farms in the Midwest, and even geothermal plants in Iceland.
Google’s data center in The Dalles, Oregon. (Photo courtesy Flickr user Tony Webster/cc 2.0)
Amazon, the driving force behind the cloud computing movement, affirmed Thursday that it believes “human-induced climate change is real,” pledging to be “net zero carbon” by 2040. Amazon has been criticized for lagging the competition in its efforts to move toward clean energy sources for its sprawling operation; it expects to source around 40 percent of its energy needs from clean sources by the end of this year, and 80 percent by 2024.
But if you believe climate change is an imminent threat, you might not want to wait that long. Former AWS engineer and Roundabout Labs CTO Paul Johnston suggested on Corey Quinn’s Screaming in the Cloud podcast this week that AWS’s US-East 1, the company’s original data center complex and the home of a lot of customer applications, should not be used by companies that want to run their applications using energy obtained from clean sources.
Cloud customers deserve more information about how their applications use energy, and where that energy is coming from. They need better tools and incentives to create applications that make more efficient use of that hardware.
Here’s the “this is not a new idea” sentence: a lot of research has already been done that establishes the benefits of efficient software design, and mobile app developers can get a sense of how much power their applications will use with battery-life simulators. One 2015 study estimated that developers could reduce the energy consumption of their applications by up to 90 percent with better design.
The average corporate software developer cranking out an internal application, however, is generally more concerned with getting their part of that app up and working before their boss gets mad than making energy-efficient design choices. During lunch this week on the eve of Puppet’s annual user conference in Portland, CEO Yvonne Wassenaar suggested that cloud providers like AWS could include information on its monitoring dashboards and management console about the carbon emissions required to produce the computing power used by customer applications.
Puppet CEO Yvonne Wassenaar (Puppet Photo)
AWS is keeping track of this data to some extent already, although probably not at the level of individual customers. In 2015 it shared some stats about the power consumption and carbon usage of cloud computing in general, but as a comparison against companies that were running their own data centers. To be sure, cloud computing is definitely a better option for climate-conscious companies than operating a data center, which is a far less efficient use of space and often relies on dirtier power sources.
Developers can do some back-of-the-envelope math to guess their energy usage, given that Intel publishes the power consumption stats for its server processors. But there’s a lot more that goes into a modern application than compute, especially as more and more companies adopt microservices architectures that mix and match lots of small distinct components. These measurements could be far more granular; some of those components might use way more energy than one might think.
There’s an entire sector of enterprise tech devoted to tracking and logging reams of data about how applications are performing, and users of those tools should also be able to understand how much carbon their application requires. Given the threat posed to everyone on the planet by climate change, however, will require more than understanding, as those beyond frustrated by the inaction of governments and big businesses in the face of this crisis are well aware.
True change requires incentive. Imagine if cloud providers offered discounts for energy-efficient applications, or added fees for applications that consume more than a given amount of energy. Those incentives could be offered for individual applications or across a corporate account, and could even turn into a higher-margin service for cloud architects to advise customers on proper energy-saving development techniques.
Either way, forward-thinking software development teams worried about climate change should have their own internal incentives to design efficient applications. Naturally, this is easier said than done for some types of applications, just as some offline jobs will always require a pickup truck instead of a Prius.
But one hallmark of Our Current Moment is how powerless individuals and small groups tend to feel when it comes to averting the horrors of a global problem like climate change, which is how you get things like bans on plastic straws while the commercial fishing industry dumps tons of plastic into the oceans every year.
So here’s one way that the tech community can make an impact. As software becomes more efficient, the pace of data center expansion could slow and the energy required by existing facilities could level off, or even decline.
Software has a carbon footprint, too. If every company is becoming a software company, every company should be thinking about how much energy is required to run their applications.