Reduce your Google Cloud carbon footprint

Status::
Links:: Google Cloud - Sustainability Google Cloud Architecture Center

Metadata

Authors:: Google
Title:: Reduce your Google Cloud carbon footprint
Date:: 2021
URL:: https://cloud.google.com/architecture/reduce-carbon-footprint
DOI::

Notes & Annotations

Color-coded highlighting system used for annotations

📑 Annotations (imported on 2024-01-25#18:16:34)

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 1)

Google Cloud provides Carbon Footprint, a tool to help you understand the carbon footprint from your Google Cloud usage. Carbon Footprint provides the total emissions based on the grid carbon intensity of the local electricity grid.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 2)

The Google Cloud customer-specific gross greenhouse gas emissions data provided by the Carbon Footprint report has not been third-party verified or assured.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 2)

Many workloads don't require VMs, and you can instead deploy them to other fully managed services that are intended for different workload types. These services often have built-in automatic scaling and rightsizing features that help to optimize performance and resource usage for you. For example, Cloud Run is a fully serverless environment that scales containerized applications faster and with fewer idle resources compared to running a comparable application stack on VMs. Having fewer idle resources results in optimized costs and reduced carbon footprint.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 3)

Unused and over-provisioned VM resources usually have the most significant impact on unnecessary cost and increased carbon footprint. To minimize carbon footprint, consider how you can minimize idle VM capacity and other unused cloud resources through your workload automation, monitoring, and optimization processes.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 3)

Non-optimal architecture leads to less efficient use of cloud resources. Although architectural issues can occur with applications that are built for the cloud, these issues most commonly occur with on-premises workloads. For example monolithic applications that were migrated to Google Cloud, with no or minimal optimization (commonly referred to as lift-and-shift).

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 4)

Refactor monolithic applications into microservices: Monolithic applications combine all of their modules into a single program, which makes it difficult to allocate resources to run specific modules. Monolithic applications can therefore be challenging to run and scale efficiently, and might therefore have a larger carbon footprint as compared to a microservicesbased implementation.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 4)

Consider a monolithic ecommerce website that has a shopping cart service and a payment service. Users might interact with the shopping cart service multiple times in a session, and interact with the payment service only at the end of a session. The two services have different resourcing requirements due to different traffic and load characteristics, but they cannot be run separately because they're both part of the same monolithic application. If the monolith runs on VMs, each additional VM adds compute resources to run both services, even if only one service needs to increase serving capacity.

google.2021.reduceyourgooglecloudcarbonfootprint (pg. 4)

In contrast to monoliths, microservices separate application modules into their own lightweight programs that are integrated using network calls. Microservices can be scaled independently of each other, and they use different resource shapes (for example, VM machine types, Cloud Run vCPU and memory allocations, or App Engine instance types) that are suitable for running that service. Microservice scaling results in more efficient use of cloud resources through granular scaling and decreased over-provisioning, which results in lower costs and emissions. For more information, see Refactoring a monolith into microservices.