Building Sustainability Into your Cloud Architecture
According to the World Economic Forum, we are going through the Fourth Industrial Revolution (4IR). 4IR will feature major technological advances in artificial intelligence, robotics, genomics, materials sciences, 3D printing, and more resulting in businesses, governments and civic institutions to collect, store and analyze data at an unprecedented scale, speed and depth. Public cloud computing is the engine that powers and enables the realization of these technological advancements and its adoption. With new rules/directives like the EU Corporate Sustainability Reporting Directive (CSRD) requiring all large companies to disclose their impact on people and the planet, it is only imperative that we don’t stop at only using cloud solutions to track emissions but also look at how to measure and reduce carbon emissions from our software and data footprint in the cloud.
"It’s
time to start seeing software as part of the climate solution and not as part
of the climate problem."
Let us start by looking at the definition of the word “sustainability” – The UN Bruntland Commission in 1987 gave a go-to definition for discussing sustainability as “meeting the needs of the present without compromising the ability of future generations to meet their own needs”.
How are Software Architecture and Sustainability related?
Every aspect of running software involves energy consumption – from running infrastructure where your software runs, to storing data and transfer of data over the network. Energy that is used to manufacture and power hardware is still mainly produced largely from burning fossil fuels, resulting in CO2 emissions. However, there has also been rapid improvements in the efficiency of servers, storage devices and data center infrastructure. A shift away from small, inefficient data centers to larger and more efficient cloud and hyperscale data centers has helped to limit electricity demand growth in the last decade.
IEA, Global trends in internet traffic, data centres workloads and data centre energy use, 2010-2020, IEA, Paris https://www.iea.org/data-and-statistics/charts/global-trends-in-internet-traffic-data-centres-workloads-and-data-centre-energy-use-2010-2020, IEA. Licence: CC BY 4.0
However, hardware improvements will very soon not keep up with growing software complexity and data volumes. Current software and data footprint can only been seen as a fraction of what to expect in the coming decade. This will lead to an inevitable growth in energy consumption unless there are measure taken to make applications and data handling more efficient to mitigate the rise in energy consumption.
“Sustainability is a shared responsibility.”
Hyperscalers like Microsoft Azure, AWS and Google Cloud have set targets of reaching net-zero or even negative carbon emissions withing the next decade or so in their public cloud datacenters. However, customers are still responsible for their application and data footprint on the cloud which in turn make them responsible to make these workloads more sustainable.
What is a Sustainable Workload?
“A sustainable workload describes the practice of designing solutions that maximize utilization while minimizing waste, ultimately reducing the footprint on the environment.” - Microsoft
When designing for the cloud, the impact and benefits of a cloud hosted applications have always been traditionally measured with financial and efficiency metrics. The Well Architected Frameworks (WAF) from hyperscalers like Azure and AWS have been no different. New outlooks indicate that it is time to measure another metric – sustainability. Azure and AWS have already adjusted their WAFs to include a new pillar for sustainability and offer guidelines on designing sustainable workload following the “Green Software Principles”.
This design methodology aims to help establish an understanding about producing more carbon efficient solutions, measuring your carbon impact, and ultimately reducing unnecessary energy usage and emissions.
What
is Green Software?
Green
software is software that is responsible for emitting fewer greenhouse gases. The
Green Software Foundation has emerged as a trusted ecosystem of people,
standards, tooling and best practices to build Green Software at scale and with
a focus on reduction and not neutralization.
Moving to serverless, microservices, or container architectures can prevent over-or-underutilization of resources allowing applications to only utilize resource it needs. Apply auto-scaling to automatically adjust compute requirements based on smart metrics to save on costs and optimize utilization. Reduce chattiness of APIs and amount of information the application returns by being selective. Jobs that are not time critical should employ async access patterns to achieve a stable utilization. Leverage cloud-native design patterns to optimize performance and cost.
2. Application Platform
Cloud providers offer the latest functionality and features to increase efficiency. Wherever possible, deploy your application and data stores in data centers closer to the customers to reduce network traversal and avoiding load on one instance alone. Complying with business requirements, schedule large jobs large jobs during low-carbon intensity periods in the day (demand shifting) or even in another region where carbon-intensity is lower (demand shaping). Use managed services for higher efficiency and for flexible workloads choose spot instances. Identity and remove any unutilized resources. Right-size your workloads.
3. Storage
Only store what is relevant. Create clear data classification and retention policies. Delete any unused or excess data unless they are tied to compliance or audit requirements. Choose the storage access tier of your data based on data access patterns. Make sure your most frequent data is stored in hot storage, making it easy to retrieve and doesn't require more processing to access. Use compression to reduce storage requirements. Optimize database query performance by optimized use of indexes and data partitioning. Use storage services that support location-aware data retrieval for global applications.
4. Networking and Connectivity
Unnecessary traffic on the network should be avoided. Use CDNs to store frequently read static data closer to the consumers. Apply well known caching techniques (CDN or Application layer) to reduce network traversals. Enable network file compression. Design for data movement within network boundaries as much as possible - maximize network utilization within the same cloud, and if possible, within the same region.
5. Operational Procedures
“What you can’t measure, you can’t improve.”
The ultimate design of a sustainable cloud computing workload is the perfect harmony of cost optimizations, reduced carbon emissions and optimized energy consumption. At the onset, organizations need to set specific goals, identify metrics that they would measure for success and ensure that these are achievable.
Cost is one of the most used carbon proxies. This means that optimizing the workload’s cost is a step towards a more sustainable workload.
Embedding
sustainability into the core of software and data design will be one of the key
objectives for CIOs and Architects within the coming few years. Green software
and green data handling alone cannot make a massive impact on the world’s
global climate however it will definitely do its share of reducing carbon
emissions worldwide.
Comments
Post a Comment