In this chapter, you will learn how to optimize your entire application portfolio to a single application to run more sustainably, impacting energy consumption, resource consumption, and utilization, which will result in emitting less carbon.
The main objective of this chapter is to introduce you to achieving sustainability targets with Enterprise Architecture (EA), application portfolio management, and sustainable software development.
First, you will learn how to turn your sustainability strategy into action with EA. Then, you will learn what different considerations are available to optimize your application portfolio to simplify, modernize, and transform your entire application estate, which will result in a lower total cost of ownership (TCO) and Greenhouse Gas (GHG)/carbon emissions emissions. After that, we will introduce you to a single hypothetical application and how it can be optimized. Finally, you will learn how to measure your CO2 derived from cloud services.
In this chapter, we will cover the following topics:
From the sustainable IT reference model perspective, in this chapter, we will primarily cover the top part, which is the responsibility of the sustainable IT enterprise. We will look at how the different capabilities play an integral part in building a sustainable application portfolio, starting with a solid EA for a software engineer optimizing a single application. We will touch on IT hardware life cycle management and the effect on embodied carbon, but primarily, this will be covered in Chapter 6, IT Hardware Management:
Figure 5.1 – Sustainable IT reference model – Chapter 5's focus
By the end of this chapter, you will have learned about application portfolio management and sustainable software development. You will hear from thought leaders such as André Christ, the CEO and cofounder of LeanIX, who has a critical EA role in sustainability enablement; Asim Hussain, Executive Director, Green Software Foundation, on sustainable software development; and Elsa Westin, Sustainability IT Lead at Scania, on their energy and carbon emission tracking tool. You will learn about the application rationalization process, application assessment criteria, and Tolerate, Invest, Migrate, and Eliminate (TIME). Furthermore, you will understand what opportunities exist within sustainable software development for a single application, from choosing an energy-efficient programming language to key considerations during each step of the software development life cycle (SDLC). Finally, you will learn what tools are available from the major cloud providers, including Amazon Web Services (AWS), Microsoft Azure, Google, and other cloud providers, to measure your carbon emissions in the cloud while taking a holistic approach and measuring your entire cloud estate.
In an increasingly digitized world, we have come to rely more and more on software that runs in the background running our social media sites, search engines, news outlets, streaming services, online gaming, and eCommerce. The world runs on software; how these solutions operate can significantly impact the environment regarding energy consumption and carbon emissions. In the drive toward hyper-connectivity, people, places, and things are increasingly connected through next-generation networks such as 5G and the Internet of Things (IoT). Emerging exponential technologies such as artificial intelligence (AI), autonomous vehicles, augmented reality (AR) and virtual reality (VR), drones, 3D printing, digital manufacturing, and robotic process automation (RPA) increasingly require more computing and storage power through cloud computing and quantum computing (Carlsson 2021). All of these emerging technologies run and operate on software, which requires access to high-performance computing (HPC), elaborate storage, and increasingly more rapid data transfer options across the network. For example, AI with machine learning (ML) and deep learning (DL) techniques require large datasets, images, complex algorithms, and vast amounts of computing and storage to be effective.
In today’s rapidly changing business environment, having a flexible IT landscape is a crucial enabler in driving digital business transformation to enable a better customer experience and unlock internal operational efficiency opportunities. An EA insights report conducted by LeanIX, a SaaS-based Enterprise Architecture Tools company, suggests that legacy IT applications and security concerns impede digital transformations (LeanIX 2019). Corporations, organizations, and governments tend to work with hundreds of applications and even thousands for several reasons. The sheer number of applications is usually due to strategic business initiatives, the adoption of new technology, mergers and acquisitions, shadow IT initiatives, and organizational changes. It is not uncommon for organizations to have multiple Enterprise Resource Planning (ERP) systems, Customer Relationship Management (CRM), mainframe applications, integration platforms, and Business Intelligence (BI) platforms. Before we go any further, let us look at the definition of an application.
TechTarget (TechTarget 2021) defines an application as follows:
As these definitions suggest, applications come in many different shapes and forms, so it should come as no surprise that enterprises have an overwhelming amount of them. The LeanIX EA insights report suggests that 36% of billion-dollar enterprises now hold more than 1,000 applications in their portfolios. The following diagram illustrates the breakdown of applications based on company size and revenue:
Figure 5.2 – Breakdown of the number of applications per enterprise size
Not surprisingly, a sizable chunk of the IT budget is directed toward developing, maintaining, and operating applications. Some research suggests that spending in certain sectors such as the Financial Service sector can amount to as much as 75% to 80% of total IT spending (Grotty and Horrocks 2017). There is a huge savings potential in rationalizing your application portfolio from a digital transformation cost perspective, and radically reducing your emissions. A report from Infosys suggests that as much as $2 million can be generated in cost savings due to application rationalization (Infosys 2018).
Managing your application portfolio is a complex endeavor, from prioritizing hundreds or thousands of applications for the solution architecture and managing the efficiency and effectiveness of a single application. There are also significant benefits in introducing sustainable software development practices for a single application to reduce resource consumption, overhaul data architecture and data life cycle management, and optimize chatty interfaces to remove excessive data transfers. In the following subsections of this chapter, we will explore application portfolio management and sustainable software development.
In this section, we will hear from André Christ, CEO and cofounder of LeanIX, on how to achieve sustainability targets with EA.
Over the last 10 years, EAs have increasingly played a role in driving the digital transformation agenda. Their holistic view of the organization, supported by well-developed methodologies and comprehensive access to IT and business portfolio data, puts them in an ideal position to translate a business strategy into execution. Among other things, this perspective allows them to uncover gaps in the required business and IT capabilities and design the roadmaps required to close these gaps.
So far, however, EAs have played a marginal role when it comes to helping companies achieve their sustainability goals. This is the case even though 52% of survey respondents (LeanIX 2022) state that their IT organization is currently pursuing at least one sustainability initiative. The good news is that enterprise architects can have a meaningful impact on these initiatives and they do not need to start from scratch. There are several powerful frameworks they can leverage to define meaningful sustainability targets and plan a course of action to tackle them. These frameworks include, for example, the United Nations Sustainable Development Goals (SDGs), the Amazon Web Services (AWS) Well-Architected Framework, and the Microsoft Azure Well-Architected Framework. AWS has added a sustainability pillar to its Well-Architected framework, which is something that Microsoft is lacking at the time of writing. These frameworks are well suited to driving sustainability initiatives in the areas of business, application, data, and technical architecture.
Over the years, interest in the 17 SDGs established by the UN has grown, along with a sense of urgency around achieving them. This interest goes well beyond government institutions and non-profit organizations. The UN SDGs were established in 2012 to build a blueprint for a more sustainable future for all worldwide by 2030. These SDGs have been adopted by 193 countries. The 17 SDGs are broken down into 169 SDG targets. Two hundred and thirty-two unique indicators are used to track progress toward these targets. Many of these indicators can be explored interactively (https://sdg-tracker.org/) and organizations can use publicly available data to set sustainability targets:
Figure 5.3 – Breakdown of the number of applications per enterprise size
As achieving meaningful results becomes increasingly important not only for shareholders but also for customers and employees, organizations must do more than simply commit to the SDG goals (MSCI 2022). Above all, they need to measure their actual progress toward achieving them.
Unfortunately, this progress has been slow. A recent study conducted of the 8,550 companies in the MSCI All Country World Index showed that roughly 38% were “aligned” while almost 55% were either “misaligned” or “neutral” with the UN SDGs. Only 0.2% of the companies were “strongly aligned” (MSCI 2022). These results show that companies have a long way to go if they want to avoid being accused of greenwashing or rainbow-washing – that is, committing publicly but not delivering on it.
Regardless of industry, EA plays a critical role in executing strategic plans and provides a valuable framework for analysis and decision-making across the enterprise. For this reason, it is an excellent tool for both planning targets and ensuring the achievement of SDGs by tracking organizational execution efforts. EAs can drive this process with the following four steps:
Cloud computing made it possible to scale computing resources and data storage in a disruptive way, giving businesses more flexibility and allowing them to better measure the total cost of ownership of their IT. As we learned in Chapter 4, Data Center and the Cloud, there are significant environmental benefits in leveraging the cloud, from greenhouse gas (GHG) emission reduction, lower energy consumption, choosing locations with access to renewable energy sources, to decreased waste. A joint study by Microsoft Corporation and WSP Global Inc. suggests that cloud computing can contribute to as much as 98% lower GHG emissions and a 93% reduction in energy consumption than traditional on-premises data centers (https://www.microsoft.com/en-us/sustainability/azure). This means organizations can contribute to the UN’s SDGs by shifting workloads running in on-premise data centers to the cloud. Many public cloud providers today also offer tools to analyze the organization’s carbon footprint in the cloud, such as the Emissions Impact Dashboard from Azure (https://www.microsoft.com/en-us/sustainability/emissions-impact-dashboard). We will explore these tools in detail later in this chapter.
However, just as automating inefficient processes doesn’t make them any less inefficient, moving energy-inefficient workloads into the cloud doesn’t make them suddenly energy efficient. That’s why public cloud providers such as AWS have adopted a shared responsibility model in which the cloud provider is responsible for the sustainability of the cloud and the customer is responsible for sustainability in the cloud. Cloud providers also apply similar shared responsibility models to areas such as security. According to this model, companies need to invest in the application, data, and technical architectures that achieve a high level of efficiency in the cloud. Following cloud-native architectures, focusing on the optimal use of offered cloud services provides one proven method for accomplishing this:
Figure 5.4 – Shared responsibility model for sustainable cloud computing
For both new and existing solutions, optimizing application and data architecture depends on the following best practices. Sources for such best practices include the AWS Well-Architected Framework Sustainability Pillar (https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html) and the Microsoft Azure Well-Architected Framework (https://docs.microsoft.com/en-us/azure/architecture/framework/). While these frameworks reference the cloud services and tools unique to each vendor’s platform, the underlying principles are universal. Since they can be applied across public cloud providers, application and data architects should follow them when assessing the current cloud portfolio. The following example questions help assess the different architecture layers:
Now, let us look at how to take a pragmatic approach to sustainability tracking by leveraging EA.
To effectively assess the different architectural layers and achieve sustainability targets, a single source of truth is recommended. The following exemplary EA framework allows you to manage sustainability targets across all the layers, from strategy and transformation to technical architecture. It demonstrates which types of data about the organization’s enterprise architecture are needed to track the improvement of the UN’s SDGs (list items 1 to 3) and which data is needed to apply the cloud Well-Architected Frameworks (list items 4 to 8). EA tools with a focus on ease of use and simplicity facilitate the collaborative work on sustainability targets. Such tools allow leadership and experts from different functions to work together, easily extract insights, and make decisions in a data-driven way.
Figure 5.5 – Tracking sustainability targets in an EA framework
Now that we have the basic framework in place for tracking sustainability targets, let us take a closer look at how application portfolio management (APM) can be leveraged not only to drive sustainability benefits but also to reduce complexity and lower cost.
In today’s complex IT landscapes, several challenges must be managed, such as the following:
Managing your portfolio of applications over its lifetime should be a strategic imperative for any organization with many applications. As we saw in the previous section, if you are working in a company with a revenue of $100 million or more, your enterprise environment most likely consists of hundreds or even thousands of applications. Therefore, APM is an integral part of how an organization responds to measuring business value, cost performance, and managing risk. It is essential to set clear application portfolio optimization objectives to simplify, modernize, and transform:
Figure 5.6 – Application portfolio optimization objectives
Once you have identified your application portfolio objectives, you can make a case to rationalize your application portfolio and unlock several benefits, such as increased business agility, reduced IT costs, reduced IT complexity, and an improved risk profile. It is best practice to include application rationalization within your application portfolio management. Through application rationalization, there are several other vital cost-saving and sustainability opportunities to be uncovered, including the following:
Since APM and application rationalization are well-established practices, it should be no surprise that the cost base could be significantly reduced by embarking on an application rationalization journey. However, let us look at some strategic planning assumptions (LeanIX 2019) that you should have when you build your business case:
The following diagram illustrates how a cost case could be transitioned from a current to a target state, including financing the rationalization efforts:
Figure 5.7 – Application rationalization before and after cost benefits comparison
However, what might be surprising are the environmental effects that can be unlocked by avoiding emissions through retired applications, improved energy efficiency, and asset utilization by moving from on-premise to the cloud, and moving workloads running on fossil fuel to renewable energy sources. Research suggests that carbon emissions can be reduced by between 70% to 90%, depending on different studies (IDC 2021) (Microsoft News Center 2018) (Lacy, et al. 2020). Even though there is a compelling cost case, the environmental benefits are even more significant in carbon emission reduction, as shown in the following diagram:
Figure 5.8 – Application rationalization before and after carbon emission reduction comparison
Application rationalization makes a compelling case from a sustainability perspective, along with the usual benefits. Now that we have learned about both the objectives and benefits from a traditional and sustainability perspective, let us look at the application rationalization process from start to finish.
There are several commercially and publicly available application rationalization frameworks to choose from when you decide to embark on an application rationalization journey. Since this book is centered on how you can build your sustainable IT enterprise and evaluate different methods to get there, I will not go to great lengths to explain all the application rationalization processes. I will stay at a high level and point out some of the critical sustainable IT choices that you can make along the way. However, I will point you in the right direction to explore the topic further since application rationalization is a powerful tool to have in your sustainable IT toolbox.
Most frameworks look the same and follow a five to six-step process. However, the ones that I have reviewed that are publicly available or from large global consulting firms lack sustainability criteria, and those have been embedded into this model.
This six-step, well-proven process, which will be outlined further here, is an iterative approach to application rationalization. It allows you to both unlock traditional and sustainability benefits. Please modify the model as you see fit to align with your business strategy, unique requirements, operating model, and organizational setup. If run efficiently with the right stakeholder engagement, you should be able to run a full process within 4 to 6 weeks, depending on the scope and the size of the organization.
Here, you must determine objective and key results, scope, and governance:
Figure 5.9 – Sustainable IT application rationalization six-step process
The preceding diagram illustrates the sustainable IT application rationalization process, which is an upgrade of the application rationalization playbook to cater to sustainability throughout the process (U.S. Federal CIO Council 2020). It is a six-step process with an infinite loop. Once you have gone through the process and uncovered your objectives and key results, the process should be executed continuously. A recommendation is to start small with a small set of applications with similar characteristics. It is essential to get buy-in for this process and show some early wins early on.
Let us start with the application assessment criteria. As stated earlier, I will not describe the application rationalization process in detail. Still, I would like to introduce you to how you can embed sustainability requirements into application assessment criteria and use the TIME quadrant to illustrate application cost, carbon emissions, and carbon cost.
Your application criteria should be developed in step 2 to assess your application fit. There are six key categories that I recommend that you include in your application assessment criteria. These six categories are strategic value, functional fit, technical fit, costs, data and data protection, and sustainability. The critical attributes for each category are illustrated in the following diagram:
Figure 5.10 – Application assessment criteria
Let us look at each category in more detail:
Based on the functional fit criteria, a sample application registry could look as follows:
Table 5.1 – Application registry – functional fit
Based on the technical fit criteria, a sample application registry could look as follows:
Table 5.2 – Application registry – technical fit
Based on the sustainability criteria, a sample application registry could look like this:
Table 5.3 – Application registry – sustainability
The application assessment criteria outlined earlier should give you a good idea of how you could construct your assessment criteria to be included in your questionnaire to be sent out to key stakeholders. Once the receipts have been collected, they should be documented in an application registry either in an Excel sheet or an EA application. A simple application registry template is available at www.sustainableitplaybook.com, which you can download.
Now that we have outlined the application assessment criteria from several different categories, we need to bring everything together to be able to make decisions on our future state application portfolio. In the next section, we will look more closely at how TIME analysis can be leveraged to enable you to make data-driven decisions based on several different decision criteria.
Once you have your application registry in place, a powerful tool to make your APM analysis come to life is to use TIME analysis. It is a robust methodology to help you identify transformation alternatives and make data-driven decisions regarding TIME applications. There are many alternatives to set on the X and Y axes. Some put the business fit on the X-axis and risk on the Y-axis. I prefer setting business value on the Y-axis and the technical fit on the X-axis. Each quadrant represents a decision criterion to tolerate, invest in, migrate, or eliminate the application:
Figure 5.11 – TIME analysis quadrant
Tolerate systems that deliver business value with acceptable technical risk and cost efficiency and meet the sustainability criteria and quality.
Invest in or innovate applications that increase business processes’ effectiveness and value, deliver sustainability outcomes, or leverage cross-application stovepipes, service levels, or data volumes that preclude conversion.
Migrate system applications that are critical to providing value to the business but at high risk and high cost, including high sustainability-related costs to maintain them.
Eliminate systems that no longer deliver business value with acceptable technical risk, cost efficiency, or risk and don’t meet the sustainability criteria and quality.
For each of the bubbles representing the application, I tend to use a variety of alternatives to evaluate the size of the application cost, carbon intensity, and carbon cost. Figure 5.12, Figure 5.13, and Figure 5.14 show different views with the same hypothetical dataset:
Figure 5.12 – TIME analysis application cost
In the preceding diagram, we can see that four applications end up in the eliminate and migrate quadrant out of the 10 applications. Four applications have been deemed to continue investing in, while two applications are being tolerated for the time being. The bubbles in the following diagram illustrate the size of the application cost. High cost does not necessarily mean that it should be migrated or eliminated. The application might be of high strategic value, perfect functional fit, and good technical fit and may justify the high cost:
Figure 5.13 – TIME analysis of carbon emissions
We have now replaced the application costs in our hypothetical dataset with carbon emissions. The business value and the technical fit are the same. We can see that six out of the 10 applications emit more than five metric tons of CO2 annually. Three applications emit less than five metric tons of CO2 emissions. Only one application emits less than one metric ton per year, which can be considered acceptable in the green or sustainable zone. Since nine bubbles are in the tolerate or invest quadrant, we should reassess the hosting options to ensure that the carbon emissions are substantially lowered. The four applications that sit within the migrate or eliminate quadrant should be taken care of. Once they have been retired or migrated, they should positively impact your carbon emission baseline:
Figure 5.14 – TIME analysis of carbon costs
In the preceding diagram, we have replaced the application costs with carbon emission costs. The business value and the technical fit are the same. For simplicity’s sake, we have set the carbon emission cost to €100 per metric ton of carbon dioxide emission in this example. Hence, carbon emissions per application are multiplied by the carbon emission tax.
Just like in Figure 5.12, we can see that six out of the 10 applications have a carbon emission cost greater than €500 per year per application. Three applications have a carbon emission cost of less than €500 but more than €100 per year per application. Only one application has a carbon emission cost of less than €100. Ten applications in this example may not look like as much cost. Still, if you are a large organization with hundreds or even thousands of applications, this will add to accumulated costs due to your carbon dioxide emissions. If your company has put a policy in place that your carbon emission tax will increase year over year, this will cost a lot of money. In Chapter 10, Get Started Today, we will cover how you calculate your emission baseline for your full IT environment. .
What is a carbon fee?
You should think of a carbon fee as a form of a carbon tax. For every metric ton of carbon dioxide emitted, you must pay a fixed fee that gradually increases year on year. Carbon dioxide tax can be applied to anyone – individuals, enterprises, organizations, and even countries. More and more companies are starting to charge an internal carbon fee to accelerate emissions reduction and match the underlying costs of carbon abatement. In 2022, Microsoft raised its internal carbon fee from $15 to $100 (Willmott 2022).
Now that you have learned how you can work with your application portfolio to identify different transformative alternatives, both from a strategic value and from a sustainable IT perspective, let us take a look at how you can calculate the carbon emission and carbon intensity for a single application. We will also dig into some of the concepts that you can apply to make your software development more sustainable.
In the early days of software development, memory resources and processing power was scarce, and each line of code had to be carefully considered. This changed rapidly, though. As we saw in Chapter 1, Our Most Significant Challenge Ahead, based on Moore’s law principle, the number of transistors in a dense integrated circuit (IC) has doubled roughly every 2 years since the 1970s. Due to this development, the need to write memory and process efficient code shifted to increase software engineering productivity and produce faster programs. As the sentiment is now changing toward becoming more sustainable, carbon-efficient, and energy-efficient, software development has a vital role in this journey.
To conserve battery time, especially mobile phone end users tend to turn off resource-intense applications, and there is a constant demand for manufacturers to produce more battery-efficient products. The demand is not from the software community itself but hardware manufacturers and end users demanding more energy-efficient products. EPEAT, Energy Star, and TCO Certified are world-leading organizations that certify IT products from a sustainability perspective to drive environmental and social change by setting strict certification requirements. These criteria get more challenging every year, which puts pressure on the IT hardware manufacturers to improve to stay within the game continuously. In Chapter 6, IT Hardware Management, we will look further into IT hardware, but for now, let us turn our focus back to sustainable software development.
Let us look at the definition of sustainable or green software commonly used interchangeably. However, the concept of sustainability is a bit wider and encompasses the social aspects and not only the environmental ones. In the simplest form, sustainable software is the practice of considering environmental and social aspects and carrying out the development, operations, and maintenance of software in a sustainable manner producing a sustainable software product (Calero and Piattini, 2015). Building sustainable software should reduce GHG emissions by being carbon-efficient and energy-efficient. To be considered sustainable software, three abstract characteristics (Taina 2011) need to be fulfilled:
Let us look at some of these characteristics in more detail.
As we saw earlier, the demand for more sustainable, carbon-efficient, and energy-efficient software originated within IT hardware manufacturers but has quickly gained traction within the software community. Comparing efficiencies by different programming languages might be different since it relies on several factors, such as development frameworks, software patterns, and code quality. Outside factors can also impact the execution time and the energy efficiency by the quality of the compiler, virtual machine, and network latency (Elizabeth 2017).
However, a team of researchers in Portugal studied the effects of 27 programming languages to study the effects between speed and efficiency. Three performance variables were analyzed: energy consumption, memory consumption, and execution time (Pereira, et al. 2017). These 27 programming languages are divided into four programming language paradigms – imperative, object-oriented, functional, and scripting:
Figure 5.15 – Programming language paradigms (Pereira, et al. 2017)
The study found that in terms of programming language paradigms, the category that requires the least memory is imperative languages, followed by object-oriented, functional, and scripting languages. Compiled languages such as ADA, C, and C++ are more energy-efficient, whereas scripting languages such as Ruby, Python, and Pearl, which are interpreted at runtime, are the least efficient. The most energy-efficient object-oriented programming language turned out to be Java.
Furthermore, the research investigated combining energy, time, and memory usage in four different combinations – time and memory, energy and time, energy and memory, and all three – that is, energy, time, and memory. In all four cases, the imperative programming language came out on top. The programming languages that did not fare too well in the test were some of the more popular programming languages from the scripting paradigm – that is, JRuby, Ruby, Pearl, PHP, JavaScript, and Python. The complete list can be seen here:
Figure 5.16 – Program language efficiency based on variable combinations (Pereira, et al. 2017)
This study’s results allow programmers to become more energy-aware when choosing a programming language for their applications, functions, or modules. It is also important to understand that you can write very efficient code using a scripting language and very inefficient code using an imperative language. Today, most development projects do not start from scratch, and several associated libraries are usually imported. If not careful, these imported libraries can have a significant impact on the performance of your software, so it is important to assess and choose carefully before importing them. As we will see in the next section, several other variables within the SDLC, such as the need for upgrades, can significantly impact your application’s carbon intensity.
An SDLC consists of several critical steps: plan, code, build, test, release, deploy, operate, and monitor. A sustainable software development life cycle (SSDL) has sustainability by design embedded every step of the way. In traditional software development, this process tended to follow a linear waterfall method, but in the last 10 to 15 years, DevOps has become increasingly popular. DevOps combines software development and IT operations into a continuous cycle, as illustrated in the following diagram. DevOps originally sprung out of the agile software development discipline. Whether your development methodology follows a linear or circular pattern, your aim should be to preserve resources throughout the entire SDLC:
Figure 5.17 – DevOps life cycle
Several sustainable best practices can be considered throughout the process. The aim should be to build as many carbon-efficient and energy-efficient applications as possible. The method of calculating your carbon emissions and carbon intensity will be covered in detail in Chapter 10, Getting Started Today. Let us look at what key considerations can be assessed during the planning, software design and development, and software operations and maintenance phases before learning how to engage your employees and teams.
The planning phase lays the foundation for your application and makes it easier to embed sustainability in the design from the start through proper planning and awareness. There are several key considerations to be considered during the planning phase:
These are some of the considerations that you should have in mind during the planning phase.
Several external and internal factors will determine your design and development approach:
These are some of the techniques that you can leverage within design and development. Regardless of what techniques you choose to apply, it is important to understand how your carbon intensity is impacted by different design and development considerations.
Data is the new oil of the digital economy. It is an immensely untapped valuable asset. For those who manage to extract and monetize data, the rewards can be huge. As the wealth of data is created exponentially, by 2025, the amount of data will double every 12 hours (Libert and Beck 2019). On the other hand, research shows that over 70% of the data painstakingly collected and stored by companies goes unused, and what is utilized is often misused (Barrett 2018). From a sustainability perspective, this is a huge cause for concern. We keep adding storage rapidly and uncontrollably, but we lack adequate processes for deleting data.
“More data will be created over the next 3 years than over the history of mankind. The rate of data growth and the environmental cost of data makes it a big concern for sustainability,” says Jedidiah Yueh, Delphix founder and CEO, and cofounder of SustainableIT.org. “It’s critical for companies to apply the rules of DevOps to data, to automate the setup and teardown of data environments used for development, testing, analytics, and AI/ML model training. By enabling ephemeral test runs, companies can reduce the environmental cost of application and data environments by over 90%.”
“There’s also a tension between the speed of innovation and governing consumer data privacy,” Yueh added. “Zero trust is the new standard for data governance. It requires the automation of data discovery, masking, and delivery to all the places where companies need to use their data. Companies should no longer trust administrators, developers, and analysts with access to personally identifiable consumer data. The risk of breach from compromised personnel is simply too high.” Governance is one of the three pillars of sustainability, along with environmental and societal, altogether referred to as ESG.
When designing your systems or application, data quality needs to be top of mind to ensure that the data is up to the mark. Several factors contribute to the quality of data, such as accuracy, completeness, relevancy, validity, timeliness, and consistency, which should be considered. As time goes on, your data quality will start to disintegrate. Similarly, you should automate the setup of your production, test, and development environments to ensure accurate data supply chain flows. In your test environments, you want to use anonymized production data, which can be a time-consuming task if done manually. Having an automated supply chain of quality anonymized data in your test environments that also meets data privacy standards is a must.
Managing your application over its life cycle is the phase where we will most likely have the most impact. Therefore, it is important to have a long-term perspective and make sustainable decisions on how you operate and maintain your application:
It is important to be able to measure your carbon intensity over time and understand the variable change. Applying some of these techniques should help minimize the carbon emission impact over time.
Windows updates become carbon-aware
Recently, Microsoft announced that their Windows update for Windows 11 users would become carbon-aware and let administrators and users install updates when the carbon intensity is low. This means that the Windows Update function will schedule updates when many renewable energy sources are available. The option will initially only be available in locations where carbon intensity measurements are performed. The feature is in insider preview currently, but when it gets released into the mainstream market, it has the opportunity in the long term to impact 1.4 to 1.5 billion computers worldwide running Windows 11.
On the road to becoming more sustainable, culture and change management are integral parts, and your software engineers are no different. It is essential to promote and raise awareness and make sustainable software development part of the fabric of every development team, project, or product:
Activating and engaging are critical factors to change the culture and the mindset of the organization. Bringing people onto the journey and making them part of the change will enable you to collectively create a positive force within the organization.
If you want to get involved with your peers outside your company on the topic of Green Software, the Green Software Foundation (GSF) is an excellent place to start. The GSF is a non-profit organization under the Linux Foundation with organizations and individuals involved in several working groups to further the mission of building a trusted ecosystem of people, standards, tooling, and best practices for Green Software. Steering members include Accenture, Avande, BCG GAMMA, GitHub, Globant, Intel, Microsoft, NTT Data, Thoughtworks, and UBS. You can read more at https://greensoftware.foundation/.
In this section, we will hear from Asim Hussain, one of the founders and chairperson of the GSF and Director of Green Software and Ecosystems at Intel.
The GSF has a theory of change where they define the desired outcome as a future where there are zero harmful environmental effects from software, and for that outcome to materialize, the following need to occur:
Adopting green software practices will not be easy or free; everything will involve some investment, which means there will always be resistance to adoption. All three pillars of the Theory of Change work together to accelerate the adoption of green software practices.
Changing tech culture so that sustainability becomes a core priority reduces the resistance to change. It does not make adopting green software practices any easier; it changes people, so they are more willing to invest. Tooling makes adopting green software practices easier; it reduces the investment that needs to be made. Knowledge is core to everything; people working in tech need an understanding of the environmental impacts of software, as well as how to eliminate them.
At the time of writing, we define green software as carbon-efficient software that emits the fewest GHGs possible. In the future, we will move beyond carbon to include other environmental effects such as water and waste, but currently, our focus is carbon. Our position is that there are only three ways an application can eliminate its carbon emissions:
As part of our mission to increase knowledge, we have created Green Software Practitioner Training and Certification (https://grnsft.org/practitioner). In addition, as part of our mission to change the tech culture, we are growing a global community (https://meetup.com/pro/gsf) of green software advocates. Finally, as part of our mission for tooling, we are creating standards for measuring software emissions (https://grnsft.org/sci) and tooling (https://github.com/Green-Software-Foundation/) to help green software practitioners eliminate their emissions.
The foundation also provides some excellent resources that I recommend you look further into, including Awesome green software (https://github.com/Green-Software-Foundation/awesome-green-software) and Principles of Green Software Engineering (https://principles.green/):
As outlined previously, there are several things that you can do throughout the SDLC to create more environmentally efficient IT systems. If you were to remember only three things that you can do as a software engineer, they should be the 3Rs principles – relocate, right-size, and rearchitect:
In the next section, we will take a closer look at how to measure CO2 spending in the cloud using the hyperscaler’s tools and what other alternatives are available on the market.
As we saw in Chapter 4, Data Center and the Cloud, the three most dominant cloud hyperscalers – Amazon Web Services (AWS), Microsoft Azure, and Google – heavily emphasize their commitment to sustainability. All three vendors now provide a solution to understand carbon emissions and provide tools or recommendations to reduce the carbon footprint. The methodology varies between the three vendors in terms of GHG scope completeness, calculation approach, and coverage of services, which questions the comparability. There are also other vendors on the market that provide the same capability and this space is far from standardized and mature.
It is essential to have a holistic view of your landscape as a company, but so far, limited integration capabilities between the vendors have been observed. Therefore, you must look elsewhere to find a combined representation of your cloud estate. Toward the end of this section, we will look at a case study from Gaia Generation, which provides an analytical solution that visualizes the CO2 emissions footprint across your cloud estate. There is also an open source alternative from Thoughtworks called Cloud Carbon Footprint (CCF) that provides similar capabilities to measure, monitor, and reduce your cloud carbon emissions. You can read more at http://www.cloudcarbonfootprint.org/.
First, let us look at what tools are available from the three cloud hyperscalers. In the following comparison table, they square up against each other:
Table 5.4 – Cloud provider carbon footprint tool comparison
As you can see, AWS and Microsoft Azure’s carbon footprint tool is generally available, but Google’s carbon footprint tool is currently in public preview. The positive thing is that if you are utilizing one or more of these cloud providers, you will be able to measure your carbon emissions and provide recommendations on how they can be reduced further. A word of caution on the methodology: AWS only measures Scope 1 and 2, Google measures Scope 2, and Microsoft Azure aims to provide an accurate view across Scope 1, 2, and 3. It is also essential to understand that this type of reporting is best suited to report on your carbon footprint monthly, quarterly, or yearly. However, it is not a suitable tool for applications with a high rate of change, and where you continuously want to measure your carbon intensity. How you calculate the carbon intensity for a specific application will be covered in detail in Chapter 10, Getting Started Today.
If you want to have an aggregate view of the CO2 emissions of all your cloud vendors, you will have to combine them by yourself. The following is a sample dashboard with emissions per vendor, combined, and emission intensity per account. Please note that this is sample data and should not be used to benchmark or compare carbon emissions for any vendors:
Figure 5.18 – Cloud provider CO2 emission sample report
As this dashboard must be aggregated manually by extracting source data from three different tools, it can quickly become a cumbersome task. If you are a large organization, you probably have a handful of more sizable vendors where you need to extract and aggregate emission data to have an accurate view.
As mentioned previously, solutions on the market are starting to emerge, and one example is Gaia Generation, an intrapreneurial start-up initiative financed by Scania CV AB. Scania is one of the largest commercial vehicle manufacturers in the world. They primarily focus on heavy lorries, trucks, and buses, with increased focus on electrified transport. Sustainability is at the core of Scania’s business strategy, and it is committed to making a shift toward a sustainable transport system. The company has set science-based targets related to decarbonization and is committed to increased use of renewable fuels and electrified vehicles to reach its science-based targets.
As the software share is exponentially increasing in their commercial vehicle product portfolio, Scania felt the need to better visualize their carbon emission from their IT landscape; hence, Gaia Generation was born. Elsa Westin is the IT Sustainability Lead at Scania and the cofounder of Gaia Generation. Her mission was to “create an analytic solution that visualizes the CO2e footprint of IT systems used daily by the world’s largest and most innovative enterprises, seeking to make IT systems as environmentally efficient as possible while maximizing business value.” The plan is to connect all three major cloud vendors – AWS, Microsoft Azure, and Google – to deliver a holistic dashboard for developers to target optimization opportunities daily. The following is a sample dashboard with estimated historical CO2 emissions (per gram) and energy (Wh) during a 30-day cycle. It’s interesting to see that CO2 emissions can vary between 3,200 grams and 9,000 grams on a given day:
Figure 5.19 – Gaia Generation emission dashboard (image courtesy of Gaia Generation)
The product is now commercially available, and you can read more about it in the Further reading section of this chapter.
In this chapter, you learned how to optimize your entire application portfolio and a single application to run more sustainably and emit less carbon. You learned about benefits, cost, and emission opportunities as an introduction to application portfolio management. By now, you should have a good understanding of the application rationalization process, application assessment criteria, and TIME analysis from a cost, carbon emission, and carbon cost perspective.
Furthermore, you should understand what opportunities exist within sustainable software development, from choosing an energy-efficient programming language to key considerations during each step of the way in the SDLC.
Finally, it would help if you gained some insight into what tools are available from the major cloud providers – AWS, Microsoft Azure, and Google – to measure your carbon emissions in the cloud, take a holistic approach, and measure your entire cloud estate.
Now that you have reached the end of this chapter, you should understand how you can start to optimize your entire application portfolio and optimize a single application. Both topics are pretty broad, and if you see a significant opportunity to reduce carbon emission within your application portfolio or a single application, I recommend studying the concept further and downloading the book resources from www.sustainableitplaybook.com or exploring the Further reading section.
In the next chapter, we will look at how we can tackle embodied carbon and manage our IT hardware more circularly.
To learn more about the topics that were covered in this chapter, take a look at the following resources:
3.128.173.32