Go Green Software Guide

Status:: 🟩
Links:: Google Cloud - Sustainability

Metadata

Authors:: Google Cloud,
Title:: Go Green Software Guide
Date:: 2024
Publisher:: Google Cloud
URL:: https://inthecloud.withgoogle.com/go-green-engineering/guide.html
DOI::

Notes & Annotations

Color-coded highlighting system used for annotations

πŸ“‘ Annotations (imported on 2024-02-15#12:54:16)

googlecloud.2024.gogreensoftware (pg. 5)

Is a microservice or monolith design pattern more wasteful? Typically microservices can be automatically scaled in isolation, individually configurable and should create less waste of resources.

googlecloud.2024.gogreensoftware (pg. 5)

Using serverless or container solutions it is possible to to reduce the size of the footprint to consume less energy. However, one side effect of the microservice pattern is the introduction of the need for multiple services to communicate with each other over various networks. Microservices can therefore become highly distributed and it is possible to see an increase in network traffic. With this in mind the architect should ensure they consider the payloads being returned, the proximity of each service to each other and also whether the correct transfer protocol is being consumed. It is possible a β€˜chatty’ microservice can end up more wasteful than a monolith.

googlecloud.2024.gogreensoftware (pg. 31)

K8s experts or software engineers typically specify the resource needs of a container in the K8s YAML configuration. Two data points must be provided: resource requests and limits. The first one specifies the lower limit, or the minimum amount of resources while the second specifies the upper limit8. Both can be specified for CPU and memory. If this specification is inaccurate, missing, or too high, then resources will again be used inefficiently.

googlecloud.2024.gogreensoftware (pg. 43)

Consideration for API: One concept to consider is putting the CO2 emissions of an API call in the invoking function return. In a DevOps ecosystem, API discoverability and addressability are essential, so why not also provide CO2 emissions on execution?