At AWS re:Invent in late November 2021, something surprisingly pleasing and yet completely inevitable happened. AWS added sustainability to the well-architected pillars that define their “key concepts, design principles, and architectural best practices for designing and running workloads in the cloud.” In effect, AWS has just stated that sustainability is central to how everyone needs to think about engineering from now on. It’s about time.
Throughout 2021, we have been predicting a statement like that would be coming from all of the major hypercloud providers. It was the unavoidable result of the commitments AWS, Google Cloud, and Azure made in 2020 to carbon zero hosting by 2030. These promises are great, but they won’t be trivial to deliver on.
It appears that transitioning to systems that must run on top of renewably generated (and therefore variably available) power cannot be achieved by hosting vendors acting alone. It will also require considerable effort by software architects and operations teams within enterprises.
The Coed:Ethics community, working together with CS, have therefore pulled together an open source, vendor-neutral reference paper on the current best practices in sustainable architecture for enterprises. It launches this week.
Drawing on wide expertise, this whitepaper sets out what sustainable architecture looks like. Debating and understanding these new approaches is needed because enterprises must update their systems to handle a world of variably available power. It won’t be easy, but it will help save the planet, reduce hosting costs, and mean companies won’t be blindsided by the next inevitable move by governments worldwide—carbon tax legislation.
Green Is the New Black
Since 2020, it has become increasingly clear to us that the excellent carbon zero vows made by Amazon, Google, and Microsoft can’t be kept without our help. As AWS itself points out, it can handle sustainability of the cloud. However, when it comes to sustainability in the cloud, if it wants to continue to meet contractual SLAs, it is somewhat at the mercy of its customers. For most, that will mean rearchitecting their systems.
Enterprises have several years to act, but they need to start planning their transition now. Hopefully, the whitepaper will point them in the right direction because, in our judgment, every enterprise needs to have a carbon minimization strategy for their technology products and services in place by 2024, for completion by 2030.
A high-level view of the changes that businesses need to adopt is outlined in the paper. The good news is they are mostly just an extension of the other cloud native trends we talk about in this WTF blog: microservices, managed services, serverless and cost optimization. However, enterprises will need to put their foot down and accelerate their progress in these areas.
The paper’s key takeaways are:
- Make sure your hosting provider has a solid commitment to sustainable hosting (ie a committed date for sustainable power and clear progress towards it) and push them to move faster. The big three hyperclouds do, although they need to be held to their promises.
- Host in regions that provide excellent options for sustainable electricity (your hosting provider will probably have to tell you which ones these are).
- Be hardware and power efficient. Check if your machine utilisation is good enough (are you using an orchestrator and a good scheduler?) and use managed services where possible. As Holly Cummins pointed out in her recent WTF article, turn off defunct (a.k.a. zombie) workloads. Also, ditch your overprovisioning. Introduce autoscaling and rightsize your machines.
- Review your architecture for expensive (in terms of processing, but this often corresponds to $$$) tasks that are on demand or always on but do not need to be. Separate them and use spot (AWS/Azure) or preemptible (GCP) instances to run them or flexible (eg burstable) instance types wherever possible.
- For costly tasks that must be executed on demand, reduce their carbon impact by, for example, using more lightweight languages, frameworks or services, or by moving more work to the client or edge. Take a look at your service mesh, that’s a common always-on and power-draining culprit.
- Have a ten-year policy on user device longevity and don’t let apps you create be a nail in the coffin of working hardware.
Most importantly, measure carbon emissions (or their rough proxy of hosting cost where appropriate) and pick your battles. There is considerable work to do. Don’t waste precious time and resources optimizing software that has little impact.
According to the ex-AWS, green tech evangelist Paul Johnston, “Always on is unsustainable.” That sounds like the final death knell for that legacy monolith you haven’t quite gotten rid of yet.
This is a lot of work, but it’s not all bad news:
- It’s not new work. It’s just putting additional impetus around existing cloud native plans.
- A sustainable architecture will be much cheaper to operate and, as time goes on, the cost differential between running sustainable and unsustainable systems is likely to become eye-wateringly high. In his new book on climate change, (one of our recommended reads for 2021), Bill Gates talks about a “green premium”—the additional cost required to operate sustainably. If we get our system designs right, there should be no green premium for tech—running sustainably will be cheaper from day one and get even less expensive as time goes on.
- Let’s face it, we all know this is coming. Better to get out in front of it than get left behind. Moving soon is a marketing advantage. Leaving it until later could prove to be a costly PR disaster.
Another advantage is that sustainable software is smaller and quicker to write. As Adrian Cockcroft, VP of Sustainable Architecture at AWS, points out, “The biggest win is often changing requirements or SLAs. Reduce retention time for log files. Relax overspecified goals.”
Sometimes overspecified goals are unavoidable, but often they are internally driven rather than in response to genuine external needs. If that is the case then drop them until you know you require them. That’s best practice anyway—it means your products get to market faster, with fewer things to go wrong. Sustainability is a top excuse to cut back on that gold plating.
AWS is the first hypercloud to explicitly spell out that, as tech producers, we have work to do too, but they won’t be the last. We need to get planning.