Contributing to Sustainability with Green Software

Introducing the new Green FaaS (Function as a Service) platform

This article discusses sustainability in software development, introducing Green Software and a new platform called Green FaaS (Function as a Service).

Key points:
  • Environmental considerations in software are becoming crucial for businesses.
  • Green Software aims to minimize carbon dioxide emissions through thoughtful design and development practices.
  • NTT DATA proposes Green FaaS, a platform that:
    • Runs functions in environmentally friendly locations
    • Provides observability of energy consumption and carbon emissions
  • The platform optimizes function execution by selecting the greenest data center for each call.
  • Green FaaS supports monitoring and calculation of Software Carbon Intensity (SCI).

Contributing to Sustainability with Green Software

Environmental concerns and sustainability initiatives have become unavoidable for modern businesses. A company's environmental stance not only matters to investors but also influences consumer purchasing decisions. The IT sector, central to modern corporate operations, has made significant strides in hardware-related environmental measures, such as equipment efficiency and facility management.

However, the software that controls this hardware has yet to receive the same level of scrutiny.

NTT DATA is leading the charge in this area, focusing on environmental initiatives in the software domain. Through collaborations with the Green Software Foundation (GSF) and the introduction of Green FaaS (Function as a Service) concept, it is paving the way for a more sustainable future in software development.

Let's explore how sustainability can be approached from a software perspective and how Green FaaS is contributing to this vital cause.

Can Software Contribute to Sustainability?

Imagine you're an IT manager tasked with making your system more sustainable or "green." What would be your first steps? Many would likely consider introducing energy-efficient equipment or utilizing green data centers. While these measures are effective, it's crucial to consider what programs run on this hardware.

Although humans initiate processes, it's the software that ultimately commands the machines. To use a car analogy: if hardware is the vehicle, software is the driver. The behavior of the software—or in other words, the program—greatly affects the energy efficiency of the hardware.

Recognizing this, Gartner, a leading research firm, included green software engineering in its top 5 strategic technology trends for 2024. They predict that by 2027, 30% of global large enterprises will include software sustainability as a non-functional requirement.

The Concept of Green Software

Green Software refers to programs designed to minimize carbon dioxide emissions. Developing such software requires broad expertise, including consideration of carbon load during operation and architectural planning for sustainability.

The Green Software Foundation (GSF) provides valuable resources and certification for Green Software (Fig.1). These materials build upon established system development practices, explaining elements necessary for making sustainability a core aspect of system development. This includes "components to be adopted to reduce carbon emissions" and "deployment strategies that utilize the regional characteristics of data centers," in addition to more traditional priorities like cost and performance.

(Fig.1)

(Fig.1)

While applying these guidelines will undoubtedly result in greener software, there's also a need for simpler, more cost-effective ways to make systems environmentally friendly. This is where NTT DATA's "Green FaaS" comes into play.

Green FaaS - Run Programs in the Greenest Locations

Green Function as a Service (FaaS) is a platform characterized by two key features:

  • Running functions (application logic) in an environmentally friendly manner.
  • Ensuring observability of energy consumption and carbon emissions.

Green FaaS supports Java development without requiring dedicated libraries. Developers can simply extract their application logic and deploy it as a function to Green FaaS. These functions can be called using HTTP, similar to a REST application.

The function execution component of Green FaaS can be distributed across multiple data centers. When a function is called, the system evaluates "where it is greenest to run" and deploys the function to the most environmentally friendly data center. This means that the data center used may differ from one call to the next.

Additionally, with this platform, you can monitor the energy consumed and the corresponding carbon emissions on a dashboard when a function is executed (Fig.2). This allows you to confirm not only operational values but also the impact of modifications and new feature additions. It also supports the calculation of Software Carbon Intensity (SCI), an ISO standard for quantifying software carbon load, enabling you to understand the environmental impact of your systems at the function level.

(Fig.2)

(Fig.2)

Effectiveness of Applying Green FaaS

To illustrate the potential energy and carbon savings of Green FaaS, let's consider a process that enlarges a 14.7-megapixel JPEG image in Base64 format by 25 times and applies a sepia filter, occurring once every hour.

We'll compare the energy consumption and carbon emissions when this process is deployed as a web application on a bare-metal server versus when it's deployed on Green FaaS.

On a bare-metal server, energy is consumed during both processing and standby. Taking these factors into account, approximately 17,100 mWh of energy is consumed per hour.

In contrast, when running the application on Green FaaS, only 193 mWh of energy was consumed during processing. A significant feature of typical FaaS platforms is that they "remain in a stopped state when idle," which has a substantial impact from a green perspective. When idle, the process is entirely stopped, resulting in zero CPU usage and zero energy consumption.

These calculations show that Green FaaS can reduce energy consumption by an impressive 98.8% compared to bare-metal servers (Fig.3).

(Fig.3)

(Fig.3)

While Green FaaS clearly contributes to reduced energy consumption, we can take the analysis further to consider carbon emissions. Although the same amount of energy (electricity) is consumed regardless of when or where hardware operates (assuming identical configurations), the amount of carbon emitted during electricity generation varies significantly.

For example, regions relying solely on coal-fired power will have much higher carbon emissions compared to regions with 100% renewable energy or solar power. Green FaaS evaluates "where it is greenest to operate" for each function call, allowing for optimal application running based on these conditions.

Our earlier example assumed running the process in a region (Region A) where carbon emissions for generating 1 kWh of electricity are 0.373g. Figure 4 compares this scenario to running the process in a region with a high renewable energy rate (Region B). Since the carbon emissions from processing are the product of energy consumption and carbon emissions during power generation, operating in greener regions and at optimal times provides significant environmental advantages (Fig.4).

(Fig.4)

(Fig.4)

The Future of Green Software

FaaS itself is an increasingly popular architecture, particularly in public clouds. By integrating green principles, we can promote sustainability efforts and highlight their benefits to end users. Also, since the application's status as green software can be visualized with specific metrics, it can also serve as an evaluation criterion.

In recent years, we've witnessed instances of dangerously high temperatures, making it increasingly difficult to casually tell children: "Go play outside during summer vacation," as we did in the past. While the reduction in energy consumption and carbon emissions by individual IT systems may seem minor, the cumulative effect of widespread adoption could be significant.

By putting green software technologies to work across various use cases, we can contribute to improving the global environment. As we face growing environmental challenges, every step towards sustainability counts, and green software development is poised to play a crucial role in this journey.

Yasumasa Suenaga

NTT DATA Group, Technology and Innovation General Headquarters, Innovation Technology Department

Suenaga is involved in R&D to design and implement green software, as well as specification and OSS development for the Green Software Foundation. He is also a Reviewer for OpenJDK, the open-source implementation of Java, with the authority to approve patches proposed by committers.