NorthCode logo

Be Green: How to get started easily

In the quest to build a more sustainable and efficient IT infrastructure, adopting green ICT practices is essential. Read how Niklas Siltakorpi, a Northcode expert did this for our customer a while back and what he thinks is important in Green ICT
Photo by Luis Miguel P. Bonilla

Green ICT is in CIOs lips these days. In this article, I wanted to share a couple of tips on how to concretely get started to be more green. It might surprise you how little actually is needed to be more green.

One effective approach is to leverage ARM-based architectures over traditional x86 architectures. ARM processors are known for their energy efficiency, consuming significantly less power while maintaining comparable performance levels. This efficiency translates to lower energy costs and a reduced carbon footprint, making ARM a greener choice for many computing tasks. ARM based processors are also Apple's choice for their new Macbooks and have been around for a while now.

To illustrate how to start integrating ARM into your ICT infrastructure, let's consider containerization. Whenever using Podman or Docker to build your containers, the cross-building process can be as simple as doing:

podman build --platform linux/amd64,linux/arm64 -t my-application .

Most of the container registries already can handle multiple architectures seamlessly. Amazon ECS already supports running containers both in ARM and in x86 architectures and I was able to execute this migration to ARM in a half day's time for one application. 

When it comes to databases, AWS RDS on Graviton processors provide compelling options. These services are not only more cost-effective but also deliver equivalent performance to their x86 counterparts. Switching to these ARM-based resources can often be done with minimal downtime, thanks to seamless migration tools provided by AWS. This transition allows you to benefit from lower operational costs and a smaller environmental footprint without sacrificing performance.

For Azure and Google, the support for ARM in managed container or database services is still yet to come. They do support ARM processors in computing though. And they do support filtering traffic already at the edge using Web Application Firewalls, which will reduce the load on your applications. By filtering traffic at the edge, CPU resources are saved and unnecessary data transmission is minimized, leading to lower energy consumption. Additionally, blocking potentially malicious traffic at the edge enhances your security posture, preventing threats from reaching your applications. 

The applications themselves can also be made more green, usually just by updating the version of the language used. For example, Java applications can be compiled into native applications using GraalVM JDK, greatly reducing the need for memory and CPU footprint, again saving resources with low effort. This is a major talking point for keeping your applications always up to date with latest versions in dependencies and in the language itself.

Finally, a well-designed internal development platform should not only track traditional performance metrics but also measure the environmental impact of your applications. At NorthCode, we have developed a method utilizing the Robot Framework to assess how green applications are. This approach enables continuous improvement in sustainability practices, ensuring that your applications evolve to become more eco-friendly over time. Check out this excellent article by our CTO Ismo Aro where he explains how this happens in practice.

Only by doing so can we be more green and save precious resources, instead of wasting them for nothing. NorthCode experts are here to help you get started.