Can serverless really save polar bears?
If we were to make better choices in the cloud, could we actually reduce our impact on the environment and save the polar bears?
JV Roig wrote a great article recently about polar bears, serverless and sustainability. The premise is quite simple: if we make better choices in the cloud, we can reduce our impact on the environment, and thus, save the polar bears. The sentiment is nice, but it is, of course, much more complicated than that. This begs the question, how much impact can our cloud choices really have?
Like with anything, your (or your company's) cloud usage pales in comparison to the 90 billion kilowatt-hours (or roughly 3% of total global electricity consumption) used by data centers each year. So even though my family switched to cloth napkins and compostable coffee pods, these choices (although no doubt selfless, and might I even say, bordering on heroic 🙄) have a net zero impact on the environment. Why? Because these choices don't have any systemic change.
I don't mean to come across as cynical here (although I definitely am). And I'm not going to say that these choices aren't noble in their own right, because, of course, everyone has to "do their part." But I truly believe that the only way to have any real, meaningful impact is to change the system, not simply ration its outputs. Turning down my thermostat by a couple of degrees may save a few gallons of oil, and switching to energy efficient bulbs and appliances might shave a few kilowatt hours off my electric consumption, but those are quickly offset by the world's ever increasing need for more and more energy. I wish I had more faith in humanity, but let's face it, not everyone cares about polar bears.
A foundation for systemic change
So let's go back to the question about the impact we can have with our cloud choices. The two sustainability "moves" that JV focuses on are "Region Selection" and the use of "Serverless." While I love the idea that these choices are available to you, my cynical brain wants to say that right now neither of them will have much more of an impact than choosing cloth napkins. However, my more altruistic side says these choices actually lay the foundation for much needed systemic change.
Let's start with regions. First of all, I appreciate the major cloud providers' efforts to invest in sustainable energy projects and carbon-neutral data centers. I have a lot of questions, especially about the use of carbon offsets, but at least the effort is there. And part of the reason why they can do this is because of their massive scale. Companies that build their own data centers generally don't have the same incentives to be constantly upgrading hardware or investing in sustainable energy. For an individual company, the benefits likely don't outweigh the costs, leading to an incredible amount of inefficiency as the technology ages.
Simply moving workloads into the cloud means you should be getting continuous improvements and upgrades without needing to do (or spend) anything. Choosing a region that is more sustainable than another is a nice gesture, but even if you don't, just choosing "the cloud" will eventually get you there, assuming the cloud providers continue to do the right thing.
What about serverless?
I remember when Werner announced the AWS Well-Architected Sustainability Pillar at last year's re:Invent, my first thought was that he was basically saying, "You should go serverless!" But does choosing serverless actually have an impact? Right now, no, I don't think it offsets that much given all those EC2 instances are still relatively efficient VMs. Sure, they pack quite a few Lambda functions onto a single machine, and you can certainly save CPU cycles if your apps sit idle most of the time, but I'm definitely getting compostable coffee pod vibes.
However, building your applications serverlessly hands over future efficiency decisions to the cloud provider. Not only can they upgrade the infrastructure that your serverless services run on, but they can update the runtimes, the chip architectures, and even how they provision certain components of your application. It's amazing when a serverless service just gets better without any effort from you. It's also amazing when they become more efficient and sustainable.
Go save some polar bears!
So, yes, use the cloud, pick a sustainable region if you can, and most definitely build your applications serverlessly. It might only save a few paper napkins today, but it also unlocks a path for cloud providers to implement true systemic changes that might just save a polar bear or two.