6a. Design for efficient application architecture

An application architecture describes the patterns and techniques used to design and build an application.

Lifecycle phases

Alpha Beta Live

Actions

(i) Right-size services

'Right-sizing' means adjusting the type and amount of computing resources so these match the needs of workloads, without either overprovisoning. This will help ensure that energy consumption is no higher than it needs to be.

(ii) Reuse common components where possible

Adoption of common architectural components and their re-use can bring benefits include increased speed, efficiency and reduced costs.

(iii) If in the cloud, then leverage 'cloud native' design patterns

If application architecture is in the cloud, then a 'cloud native' approach can be taken. This means that applications or services are specifically designed for and deployed on cloud infrastructure, and can make the most of all the advantages of a modern cloud environment. This can mean scalability, elasticity, reliability and energy efficiency.

This may mean:

  • Moving from 'monoliths' to microservices architecture

  • Containerization like Kubernetes or Docker

More detailed guidance on cloud architecture & sustainability

There is guidance relating specifically to the sustainable design of cloud architecture available from the following sources:

'Well-Architected Frameworks' from major public cloud providers

Public cloud providers Amazon, Microsoft and Google all have their own ‘Well-architected frameworks’ (WAF) which cover cover guidelines for general best practice when it comes to building and maintaining cloud architecture. There are many commonalities as well as differences between the respective frameworks.

Measurement

Cloud hosting providers may provide reporting dashboards, but caution is required as in many cases there may be a substantial difference between reported emissions and actual consumption at data centres.

There are a range of questions that we can ask when we view reporting cloud providers:

  • Are energy usage figures provided or are spend-based proxies used to estimate carbon emissions?

  • For Scope 2, are location-based electricity figures provided or are market-based emissions provided (that may rely on the purchase of green electricity through ‘Power Purchasing Agreements (PPAs))?

  • Do figures follow the GHG protocol and include Scope 3 emissions alongside Scopes 1 and 2? (The embodied emissions may include up to half the carbon caused by cloud computing)

  • Is reporting using offsets to claim that there is zero or extremely low carbon associated with cloud activities?

Using a tool to estimate cloud carbon footprint

Cloud Carbon Footprint is an open-source tool to help decipher public cloud. It helps look at billing statements from a provider line by line (the log of activities, if tags are assigned to services to provide meaningful data that can interpret). For storage, compute, hardware etc it estimates how much electricity use and also carbon based around location.

If you are able to get energy usage data, you can use services like Electricity Maps to then calculate the emissions emitted in relevant region of the world.

Further Reading

Creating and Implementing a Cloud Hosting Strategy, GOV.UK

Cloud Guide for the Public Sector, GOV.UK

Five Things to Know About Cloud Computing GHG Emissions, Carbometrix

Building Green Software, Currie, Anne; Hsu, Sarah; Bergman, Sara

6b. Design for efficient data

Have a strategy to manage data efficiently. Reducing the volume of data that is captured, stored and accessed means reduced use of computing resources, energy and associated carbon emissions.

Actions

(i) Avoid collecting information you do not need or has been collected elsewhere, and identify opportunities for data sharing

This will help to avoid unnecessary storage of data that may not be useful or valuable, which will in turn reduce required infrastructure, power, and data transfer. Better sharing of data may mean it only needs to be collected once, saving upon storage usage.

(ii) Consider data storage

Data should only be stored when absolutely necessary, and when it is stored it should be compressed before storage, especially when it is for long term. Use the right data format, for example Parquet as opposed to CSV, which can have big savings for large data sets.

(iii) Conduct data audits

Review data regularly and ensure unneeded/duplicate data is deleted/compressed/archived. Unneeded or duplicate data takes up space on servers and consumes energy for storage.

6c. Design for efficient infrastructure

Infrastructure architecture focuses on hardware such as servers, network components and storage devices as well as the virtual resources that are used to monitor these physical assets.

Actions

(i) Implement serverless architectures to optimise resource usage and reduce overhead

Serverless architecture is a software design approach that allows developers to build and run applications without managing the underlying infrastructure. In many contexts, serverless architectures allow flexibility, scalability and higher efficiency.

(ii) Select cloud regions that leverage renewable energy for a lower environmental impact

Cloud data centres are located in many countries with highly varied electricity grids. If available, move workloads to a hosting provider that uses electricity from low carbon sources like wind, solar, geothermal, hydro, or nuclear.