30_Knowledge/Green Architectural Tactics

Info

Green Architectural Tactics are Software Architectural Tactics that improve the energy-efficiency or another environment-related quality attribute of a software.

See also Energy Efficiency of Different Software Architecture Styles.

Motivation

jagroep.etal.2017.extendingsoftwarearchitecture (pg. 6)

An advantage of using the SA is to address concerns related to EC in an early stage of the software life cycle, namely during its design. Through the architecture, a product manager, that determines the strategic direction (including green goals) for a product [8], has a means to address his concerns in the product design [31] and determine whether the desired quality of service is achieved [19]. From an organizational perspective such an approach emphasizes the role that green software can play in reaching sustainability goals. On this level, green software has the potential to reduce the operational costs related to a software product, enabling sustainability on the economical dimension [7].

jagroep.etal.2017.extendingsoftwarearchitecture (pg. 14)

To address concerns for a software product on the level of the SA, tactics are applied. A tactic is a decision that influences the control of a QA [2] and is a design option that helps the architect in realizing a desired property for a system.

Carbon efficiency (Technology Radar (ThoughtWorks))

Carbon efficiency as an architectural characteristic | Technology Radar | Thoughtworks

Assess as of October 2022

An architecture that takes into consideration carbon efficiency is one where design and infrastructure choices have been made in order to to minimize energy consumption and therefore carbon emissions. The measurement tooling and advice in this space is maturing, making it feasible for teams to consider carbon efficiency alongside other factors such as performance, scalability, financial cost and security. Like almost everything in software architecture, this should be considered a trade-off; our advice is to think about this as one additional characteristic in a whole set of relevant quality attributes that are driven and prioritized by organizational goals and not left to a small cadre of experts to ponder in a siloed manner.

Overview

jagroep.etal.2017.extendingsoftwarearchitecture (comment) (pg. 15)

Green architectural tactics:

  • Increase modularity
  • Network load optimization
  • Increase hardware utilization
  • Concurrency architecture variation

Modularity

Impacts of Software Modularity on Energy Efficiency

Tactics in the Cloud

Open: 1 3tsDhvjq78MbpMxV71FDQA.webp
_attachments/e5c27bbbbb71b75e4bbfb5a6c2ed8c3f_MD5.webp

Source of diagram: https://medium.com/@maxmeinhardt/software-energy-efficiency-architecture-and-implementation-tactics-595f084b717c

Based on the study @Vos.etal.2022.ArchitecturalTacticsOptimize

Resource Allocation

Software energy-efficiency resource allocation tactics encompass strategies that involve allocating and de-allocating resources to distribute processing time effectively and minimize overhead.

Software Energy-Efficiency: Resource Allocation | by Max Meinhardt | Medium

Right-sizing of Nodes in the Cloud

Resource Adaptation

Software energy-efficiency resource adaptation strategies focus on optimizing hardware and software resource architectures to improve software efficiency.

Software Energy-Efficiency: Resource Adaptation | by Max Meinhardt | Medium

Resource Monitoring

In the software energy-efficiency context, Resource Monitoring involves the monitoring and classification of workloads in order to optimize energy performance.

Software Energy-Efficiency: Resource Monitoring | by Max Meinhardt | Medium

Communication Styles

REST vs. GraphQL

@Lawi.etal.2021.EvaluatingGraphQLREST

🔗 References

@Bass.etal.2021.SoftwareArchitecturePractice

Research Studies