Architects challenged with delivering information or technology-related solutions to meet stakeholder expectations spend a meaningful amount of time optimising for often contradictory non-functional requirements. These requirements influence the quality attributes a system exhibits, such as its overall security posture, ability to meet dynamic demands predictably, or the consistency with which it operates.
Efforts to define a perfect outcome lead to the realisation that there isn't one, and usually, the resultant design represents a balance of trade-offs. It's a complex undertaking requiring years of experience and political tact that's about to become more intricate.
An emerging quality criterion
Sustainability is topical, and it must be. The exponential destruction rendered on this world cannot continue unabated. Fortunately, there appears to be a shift in momentum, albeit a small one. Trends reveal that an increasing number of people share these concerns. Take, for example, the capital allocation and deployment patterns observed at the onset of the global pandemic. Trading volumes depict notable flows of funds into thematic investment destinations such as ETFs focused on renewable energy. The theme appears to be 'investing in values replacing value investing', ironically leveraging growth-orientated investment products. Likewise, numerous consumers consider sustainability criteria when evaluating seemingly comparable products. Perhaps like many of us, these investors and customers have grown weary of waiting for our political representatives to 'do the right thing', or maybe their motives are less altruistic. Regardless, the benefits to society remain.
So, sustainability will become yet another dimension vying for architectural reflection, like security, reliability, performance, cost-effectiveness, auditability, and scalability. Consequently, it will not be surprising if it receives the attention it deserves by being adopted as a focal point within popular architectural assessment approaches such as the AWS Well-Architected Framework (WAR).
What design factors do we have at our disposal to optimise solutions for sustainability?
Bias towards 'greener' cloud providers
When selecting a provider to host your cloud solutions, examine total renewal energy usage as a percentage of overall energy consumption. Evaluate each provider's energy mix profile and do so not only locally but across their entire data centre topology both regionally and abroad. Finally, identify a provider's direct consumption capability or indirect usage where Renewable Energy Credits (REC) are acquired to offset reliance on traditional energy sources. A REC is a tradable certificate that is equal to one megawatt-hour of electricity. These tokens, issued by the Clean Energy Regulator, are awarded to renewable energy generators and traded on a secondary market. Another aspect to consider is water stewardship, which relates to efficient water usage, typically for data centre cooling.
AWS, the leading cloud provider by market share, continues to diminish its reliance on traditional energy sources. Their goal is to have a 100% clean energy profile by 2025 (down from an original target of 2030) and reach an effective net-zero carbon usage by 2040 across its entire business.
Reduce data volumes and transversal distances
Regularly review persistent data, whether it be in file storage or within databases. Identify excess data and purge this data where possible or move it to efficient storage services. Go beyond only considering the costs associated with storage. For example, in AWS implementing data life cycle policies in services such as S3 or limiting the number of RDS database backups and snapshots can aid with and automate this objective.
Limit the distance data must travel within a network by optimising network traffic routing. For example, introduce data caching throughout the solution at the front-end application client, back-end service, or database levels, and adopt edge computing techniques. Caching and edge computing reposition data and processing closer to where needed, thus reducing network distances. For example, the AWS CloudFront service is a CDN that supports data caching and localised computing. In addition, consider services like ElastiCache for database query caching to reduce network round trip times.
Leverage an adaptive demand strategy
There are two techniques for manipulating demand to optimise renewable energy availability or reduce overall energy consumption. Demand shaping involves matching the system's resource needs to existing supply or temporarily eliminating requirements by turning off services when they are not required. Demand shifting is the dynamic relocation of demand to alternative infrastructure locations as the renewable energy supply in each location changes. For example, transferring workloads between AWS regions situated in different time zones.
Build mechanically sympathetic applications
Consider the relationship between hardware energy consumption and its utilisation. Efficiency increases with server usage. Therefore, try to minimise the number of servers required to run a workload and raise the allocation percentage of components per individual machine where possible. Use serverless options, delegate resource management to the cloud provider, or adopt containerised applications that provide optimal server allocations, primarily when used with a container orchestrator. Refactor algorithms to remove needless complexity or improve execution efficiently. Limit unnecessary use of resource-intensive architectures such as blockchain, map-reduce or machine learning. And finally, when possible, select energy efficiency-optimised server instance types such as AWS' Graviton 2 series of computers.
Focus on data point observability, consistency, and transparency
One of the primary focus areas to achieve sustainable outcomes is measurement. Assessment of the degree to which effort translates into the attainment of goals is crucial. Results should be comparable and trustworthy. For example, global financial service firms such as MSCI and FTSE publish data points that characterise companies or define index constituent ratios from an Environmental, Social and Governance (ESG) perspective. ESG reporting standards are evolving to introduce uniformity and consistency between reporting entities. However, there is a distinction between reporting to the board versus the active and granular measurement required in systems.
There should be a record of sustainability-related metrics like other measures linked to runtime system behaviour. Leveraging a cloud provider helps introduce an element of trust and consistency, as does the adoption of well-known and established service offerings.
But at what cost?
Many of these suggestions do not come without consequence. For example, shifting demand to alternative regions may jeopardise local data sovereignty constraints. Likewise, reducing the number of server nodes can increase the risk of system failure, and moving tasks to off-peak periods can affect service levels or deferred processing results.
Be prepared and remember there are always trade-offs. Some are just easier to sustain than others.