By Janus Boye
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.
#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:
The systems we design have an impact on the environment and the time to act is now
HTTPS requests and processing results in carbon emissions
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:
Launched a Guide for Sustainability Best Practices
Conducted a Sustainable Challenge; for company to enter sites to be assessed against the guidelines and the winner gets an Umbraco branded bike
Built a Sustainability package, which is currently in alpha enabling you to to measure carbon emissions for Umbraco pages
Delivered numerous events, webinars, contributed to articles and thought pieces
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.