Do’s and Don’ts of Sustainable Systems Design

By Janus Boye

Andy Eva-Dale is Technical Director at Tangent and also an Umbraco MVP and Headless + Sustainability Community Team member.

We all have a responsibility to make sure we are implementing green, responsible systems of the future. 

In a recent member's call, Andy Eva-Dale from UK-based digital agency Tangent shed light on ICT emissions and where we sit as an industry in the global carbon emissions story.

As the Technical Director at Tangent, Andy mentors a 45+ strong department, creating cloud-first, scalable, robust, secure, globally distributed applications. Andy is a champion for sustainable system design, diversity in tech and dyslexia awareness.

In the call he took us through “10 Do’s and Don’ts of Sustainable System Design” with actionable ideas and features of green system implementation and design. He also drew attention to the parallels between performance, scalability, cost saving and carbon with real-world metrics from some of the projects they’ve delivered at Tangent. 

In addition, we looked at what the big hosting platforms are doing to tackle the problem, as well as how best to measure your systems from a carbon and cost perspective.

As a final bonus, Andy provided a brief progress update on the work happening with the Umbraco Sustainability Team.

In the call Andy jumped straight to his actionable list of do’s and don’ts, so without further ado.

10 Do’s and Don’ts of Sustainable Systems Design

#1 Don't think your application doesn’t make a difference
Andy put things in perspective by comparing ICT emission to those from more polluting fields like transport, infrastructure, agriculture. At the moment, ICT makes up about 3 - 4 % of global emissions and while that doesn’t sound like much, the problem is that ICT related emissions is growing, while most other notable pollutants are in decline. With the arrival of tools like Chat GPT, ICT emissions is further growing, so every application does make a difference.

#2 Do take a green approach to systems design as it’s not a mutually exclusive benefit
In other words, don’t just go green because it’s the right thing to do. As Andy pointed out performance increases, cost savings and reduction of of carbon emissions are linked.

#3 Don't assume that your website is carbon neutral
Websites use carbon as well, also if you are hosting it in the cloud. Andy pointed us to the Cloud Carbon Footprint tool, which is a free and open source Cloud Carbon Emissions Measurement and Analysis Tool that reports on carbon emissions for the major cloud providers.

#4 Do optimise the UI and client-side scripts
This one was all about UI & frontend optimisations. From a frontend perspective, Andy recommended these nine tangible actions:

  • Take a mobile-first approach

  • Consider “energy-saving” toggles

  • Use of carbon aware design

  • Optimise images (e.g. WebP or AVIF)

  • Bundle and minimise all assets

  • Optimise JavaScript

  • Limit number of third-party libraries and fonts

  • Turn off auto-play for video assets

  • Evaluate load in dependencies on click events, rather than page load

#5 Don't ignore user data, volume and location
Andy strongly recommended the usage of static site generators and JamStack applications as they reduce the carbon emission compared to a traditional (referred to as monolithic below) application design.

Andy showed this slide to illustrate how each step along the journey from website to CMS and back emits carbon

#6 Do optimise the number of HTTP requests and size of data transferred
Here Andy took us into the world of Rest APIs vs. GraphQL APIs. As he pointed out, using GraphQL you can improve your API efficiency, which again helps both performance and reduces carbon emissions.

#7 Do migrate to SaaS or PaaS
This one was all about sustainable design considerations for infrastructure, including

  • Migration from On-Prem or IaaS to PaaS or SaaS

  • Take a decoupled, service or microservice architecture

  • Right-size resources, using combination of load tests and FinOps tools like Nordcloud

  • Utilise auto-scaling

  • Distribute assets from CDN

  • Block malicious / bad bots

  • Turn off non-production environments out of working hours

  • Adopt cloud-native design patterns to reduce resource utilisation

#8 Don’t forget to patch
A simple message here: Dependency updates are crucial as they often contain critical bug fixes, security patches, and compatibility improvements that address vulnerabilities and ensure seamless operation

#9 Do use design patterns patterns
Introducing the The Circuit Breaker pattern. This is a popular design pattern used in microservices architecture and falls under the Sustainable Design Patterns category. In Microservices architecture, a service usually call other services to retrieve data. Downstream issues like slow network connection, timeouts, or temporal unavailability can be solved retrying calls. However, when a service is unavailable for a longer time it can result in the network resources being exhausted. Enter the Circuit Breaker Design Pattern to overcome this problem.

#10 When and where you process data makes a difference
The main message here is that not all data centres are created equal. Even though Microsoft cloud may be net-zero, it is still important to note that placing your resources in certain regions may decrease the effect on the environment. This is known as carbon aware computing and some regions have a Zero waste certification

Three key takeaways

Summarizing these 10 do’s and don’t Andy highlighted these three key takeaways:

  1. The systems we design have an impact on the environment and the time to act is now

  2. HTTPS requests and processing results in carbon emissions

  3. Optimise your systems to increase performance, save costs save costs and reduce emissions

What’s new with the Umbraco Sustainability Team

Commercial open source CMS vendor Umbraco launched their sustainability team back in 2023 and Andy is a part of the efforts.

Since the launch in May 2023, they’ve:

Learn more about designing sustainable systems

This is a topic near to our heart and we’ve written extensively about this topic. Here’s a few popular posts to continue your learning:

We’ll naturally continue the conversation in our peer groups and conferences. Umbraco is a part of our CMS Experts community, where you can meet Product Owner Lasse Fredslund.

Finally, you can also download the slides (PDF) or lean back and enjoy the entire recording below.