Azure Well-Architected Framework - Sustainable workload documentation

Status::
Links:: Microsoft Azure - Sustainability

Metadata

Authors:: Microsoft
Title:: Azure Well-Architected Framework - Sustainable workload documentation
Date:: 2023
Publisher:: Microsoft
URL:: https://learn.microsoft.com/en-us/azure/well-architected/sustainability/
DOI::

Notes & Annotations

Color-coded highlighting system used for annotations

πŸ“‘ Annotations (imported on 2024-01-25#17:20:09)

microsoft.2023.sustainableworkloadsazure (pg. 1)

In partnership with the Green Software Foundation, we've developed this set of recommendations for optimizing Azure workloads. This documentation helps you plan your path forward, improve your sustainability posture, and create new business value while reducing your operational footprint.

microsoft.2023.sustainableworkloadsazure (pg. 3)

With sustainability, we refer to the environmental impact of our workloads.
A sustainable workload therefore describes the practice of designing solutions that maximize utilization while minimizing waste, ultimately reducing the footprint on the environment.

microsoft.2023.sustainableworkloadsazure (pg. 7)

Microsoft aligns with the Green Software Foundation, responsible for creating the Software Carbon Intensity (SCI) specification.

SCI Specification

microsoft.2023.sustainableworkloadsazure (comment) (pg. 9)

You can link performance to cost and carbon and assume this relationship yields a value

microsoft.2023.sustainableworkloadsazure (pg. 9)

Therefore, building a carbon score dashboard can make use of the following proxies:

  • Cost
  • Performance
  • Carbon emissions of the infrastructure (if known/available)
  • Usage over time (requests, users, API calls, etc.)
  • Any extra measurement that is relevant to the application
microsoft.2023.sustainableworkloadsazure (pg. 9)

Reducing emissions is a shared responsibility between the cloud provider and the customer designing and deploying applications on the platform.

microsoft.2023.sustainableworkloadsazure (pg. 10)

We recommend making applications more efficient to utilize the data center capacity in the best way possible. Sustainability is a shared responsibility goal that must combine the efforts of the cloud provider and the customers in designing and implementing applications.

microsoft.2023.sustainableworkloadsazure (pg. 11)

The Azure Well-Architected Framework workload for sustainability aligns with the Green Software Principles from the Green Software Foundation.

microsoft.2023.sustainableworkloadsazure (pg. 12)

Energy Efficiency

Principle: Use the least amount of energy possible.

The goal of this principle is that you build applications that are energy-efficient. This is a common pattern for mobile applications, since they must rely on a battery powered device and are optimizing its consumption. It's less common, however, for desktop or web applications, since until now, developers have never been asked to optimize the electricity consumption of their software.

microsoft.2023.sustainableworkloadsazure (pg. 15)

Code efficiency

Demands on applications can vary, and it's essential to consider ways to stabilize the utilization to prevent over- or underutilization of resources, which can lead to unnecessary energy spills.

microsoft.2023.sustainableworkloadsazure (pg. 15)

Evaluate moving monoliths to a microservice architecture

Monolithic applications usually scale as a unit, leaving little room to scale only the individual components that may need it.

Recommendation:

  • Evaluate the microservice architecture guidance.
  • A microservice architecture allows for scaling of only the necessary components during peak load; ensuring idle components are scaled down or in. Additionally, it may reduce the overhead and resources required for deploying monolithic applications.
  • Consider this tradeoff: While reducing the compute resources required, you may increase the amount of traffic on the network, and the complexity of the application may increase significantly.
  • Consider this other tradeoff: Moving to microservices can result in extra deployment overhead with numerous similarities in deployment pipelines. Carefully consider the required deployment resources for monolithic versus microservice architectures.
  • Additionally, read about containerizing monolithic applications.
microsoft.2023.sustainableworkloadsazure (pg. 16)

Improve API efficiency

Many modern cloud applications are designed to transact many messages between services and components asynchronously. Consider the format used to encode the payload data. How much information does your application need to communicate, and is there room to reduce the chattiness?

microsoft.2023.sustainableworkloadsazure (pg. 18)

Optimize for async access patterns

Demands on applications can vary, and it's essential to consider ways to stabilize the utilization to prevent over- or underutilization of resources, which can lead to unnecessary energy spills.

Green Software Foundation alignment: Energy efficiency

Recommendation:

  • Queue and buffer requests that don't require immediate processing, then process in batch.
  • Designing your applications in this way helps achieve a stable utilization and helps flatten consumption to avoid spiky requests.
  • Read about optimizing for async access patterns.

microsoft.2023.sustainableworkloadsazure (pg. 25)

Turn off workloads outside of business hours

Operating idle workloads wastes energy and contributes to added carbon emissions.

Green Software Foundation alignment: Energy efficiency, Hardware efficiency

Recommendation:

  • Dev and testing workloads should be turned off or downsized when not used.
  • Instead of leaving them running, consider shutting them off outside regular business hours.
  • Learn more about starting/stopping VMs during off-hours.
microsoft.2023.sustainableworkloadsazure (pg. 34)

Cost optimization as a proxy

Sometimes the ease of deploying cloud resources makes us forget what is useful and what is simply a waste of resources, money, and carbon. The message here's that experiments in the cloud can sometimes be costly in terms of overall cloud efficiency, not purely cost, while bringing no innovation.

Use cloud resources wisely, considering any extra workload's carbon footprint.

When defining your SCI, you can use carbon proxies to compensate for the lack of specific standards and measurements. One of the safest and most potent proxies for carbon emissions are your application(s) cost. Reducing unnecessary spending lowers the number of excessive emissions from deployed workloads as you're using fewer cloud resources.

Linking cost performance metrics to carbon efficiency can be a sound strategy because you won't necessarily need to compromise on your defined workload Key Performance Indicators (KPI) by optimizing cost and reducing carbon emissions. However, you might decide that you're prepared to sacrifice a KPI towards your carbon goal, which can also be part of your strategy.

microsoft.2023.sustainableworkloadsazure (pg. 38)

Networking considerations for sustainable workloads on Azure

Most workloads in the cloud rely heavily on networking to operate. Whether internal networking or public-facing workloads, the components and services used in provisioned solutions must consider the impact of carbon emissions. Consider that network equipment consumes electricity, including traffic between the data centers and end consumers. Learn about considerations and recommendations to enhance and optimize network efficiency to reduce unnecessary carbon emissions.