SlideShare a Scribd company logo
1 of 29
Download to read offline
GREEN CODING;
Tools and best practices for
Sustainable Software
An overview
GREEN CODING;
Quick info - Arne Tarara / Green Coding Berlin
2
Standard slide for starters
• Software-Dev 16+ years
• Founder & CEO Green Coding Berlin GmbH
• We do research and development in open source tools for software
resource consumption
• We help companies assess their digital infrastructure resource consumption
GREEN CODING;
3
Agenda
• What is sustainable software engineering?
• Which tools and concepts can I use?
• What are best practices?
• Why is sustainable software hard?
25.04.2023
GREEN CODING;
4
What is the definition of sustainability ...
in the domain of hard- and software
Credit: SDIA
GREEN CODING;
To make software more sustainable we need to make its
consumption visible.
5
Software uses energy and machines
GREEN CODING;
To make software more sustainable we need to make its
consumption visible.
... so what tools do already exist?
6
Software uses energy and machines
GREEN CODING;
open-source RAPL based command line tool
7
Easy starter: Scaphandre - Hubblo
• Neat feature: Can split by process
GREEN CODING;
codecarbon.io
Ready to use tools
• Python
• RAPL-based
• NVIDIA GPU
support
GREEN CODING;
Introducing Kepler
9
Distributed Environments / Clusters
http://sustainable-computing.io
GREEN CODING;
All-in-One solution for benchmarking, orchestration and transparency
10
Green Metrics Tool
GREEN CODING;
11
Green Metrics Tool
Use-Case mit Wordpress / Django Community
Why is there server and database activity here?
Container native; For detailed inspection of architecture
GREEN CODING;
12
Green Metrics Tool
Statistical comparisons and API included
GREEN CODING;
Energy inside of a CI / CD Pipeline
13
Eco CI Tools - Green Coding Berlin
Eco-CI Tools on Github - Integrated into Actions directly
GREEN CODING;
14
Weitere Tools ...
• powertop
• powermetrics
• Cloud Carbon Footprint
• turbostat
• powerJoularX
• PAPI
• greenframe.io
• ...
for questions regarding a speci
fi
c tool, please ask in the Q&A!
GREEN CODING;
Which should I use? And how do I interpret the data?
Are best practices for sustainable software?
15
Ok, so know I know some tools
GREEN CODING;
16
Best Practices
• Measure your system
• Go for reusability
• Go for exportability / interoperability
• Code must also run on older hardware
• To
fi
ght device obsolescence (within reason)
According to the Blue Angel for Software
GREEN CODING;
17
Best Practices
• Tips that are well known and not really "green software"
• Cache Static data
• Use energy e
ffi
cient AI models 🤡
• Minify JS / CSS
• Right-Size VMs
• ...
• Tips that are debatable
• Run AI models at the edge
• Use sustainable regions -> Depends on the network transfer. Hard to wage
• Stateless design -> On its own no gain
• Source: https://patterns.greensoftware.foundation/catalog/cloud/match-utilization-requirements-of-vm/
According to the Green Software Foundation - A suprising mix ....
GREEN CODING;
18
Best Practices?
• Is email more sustainable than paper?
• Paper consumes a
fi
xed amount. Email has pot. in
fi
nite storage and processing
• Is Serverless more sustainable than classic VMs?
• No solid data on this (Deno / Isolates / Firecracker)
• Cloud
fl
are / Amazon did decline when asking for sustainability insights
• Is using AWS Gravitron more sustainable than Intel
• What happens to electronic waste?! Life-Cycle ...?
• Is Python more sustainable than Rust?
• Python uses 80-times the Instructions where as Rust uses 1-3. Still people are not changing because of
"cost of development" etc. ....
Even simple questions are hard (impossible) to answer
GREEN CODING;
19
Problems
• Often they just employ common sense
- Like: "run less tests"
• Often generic advice
- "Use sustainable libraries"
• Often can be harmful also
- Switching machines brings electronic waste
• Hard to generalize at the moment
- Because we have no data
• Can contain pitfalls
Like: "Less runtime is always better" ... no: TurboBoost, HyperThreading etc. may inverse result
• We plead for a simpler solution ....
with current "sustainability" best practices
GREEN CODING;
20
Best Practices
• You just have to measure!
• You have to ask (service providers) for the metrics you don't know.
• And to treat energy and CO2 as a
fi
rst order metric .... constantly (git-ops)!
• We need a lot of data for general statements
• And we need to include the development and delivery phase of software
• Isolated benchmarks and claims are helpful for a isolated view, but not for
global sustainability
But how do we get there
GREEN CODING;
21
Best Practices
1. Quantify your system!
How much am I using for what service (Green Metrics Tool, Scaphandre, Kepler etc.)
2. Green Energy (-> Green Web Foundation)
But not on the moon please!
3. Idle machines (Async / Polling / Microservices)
Only makes sense if you can really turn machines o
ff
4. Architecture Overhead (Backups, Logs, Redundancy, Over-Provisioning of Services / Machines)
5. Language Overhead (C-Extensions, WebAssembly, Language-Swaps)
6. Code Changes
Even 99% Code runtime reduction is of limited help if the machine then idles
An approach for a framework atm.
GREEN CODING;
22
Best Practices
• No fancyness until proven helpful
• Use less resources -> Yes, common sense!
• Services, Machines etc.
• No o
ff
-loading / Backlashes
• We are more sustainable, we now use a data provider for that machine!
• We now use 5 GB less memory (and calculate everything on request :( )
• General Question: If everybody would do it this way. Would we have enough resources?
• Simple chat-bot => ChatGPT
• Portfolio Website: VPS with Wordpress and database
Some general guidance
GREEN CODING;
Follow green-coding.berlin
23
Thank you! Time for Q&A
• Website / Blog / Newsletter: https://www.green-coding.berlin
• Demo Open Data Repository: https://metrics.green-coding.berlin
• Unsere Projekte: https://www.green-coding.berlin/#projects
• Unsere Case-Studies: https://www.green-coding.berlin/case-studies
• Meetup Gruppe (Berlin): https://www.meetup.com/green-coding
• https://www.linkedin.com/in/arne-tarara / arne@green-coding.berlin
GREEN CODING;
24
Backup Slides
GREEN CODING;
https://preview.green-coding.berlin
-
https://github.com/green-coding-berlin/bakerydemo-gold-benchmark
25
Demo
GREEN CODING;
26
Green Metrics Tool - Schaubild
Container Aufbau für Client-Server Apps
GREEN CODING;
27
Green Metrics Tool - Hardware Setup
• AC / DC Energie
• IPMI
• GUDE (Blauer Engel)
• PowerSpy2 - Consumer Grade Oscilloscope
• Custom Mainboard Connector for Fujitsu ESPRIMO
• CPU % / CPU-Frequenz
• Temperatur
• CPU / DRAM Energie
• RAPL
• Netzwerk Datenverkehr / Energie
• Container-Metriken
• ... weitere Reporter als Open-Source Plugin-In möglich
Mess-Sensoren im Green Metrics Tool
GREEN CODING;
28
Green Metrics Tool - Cluster Setup
• Fujitsu ESPRIMO P956 - Blue Angel compatible (Ubuntu)
• Fujitsu TX1330 M2 - Single-Tenant Server (Ubuntu)
• Quanta Leopard - Multi-Tenant Server - SoftAWERE compatible (Ubuntu)
• Intel Mac 13" Q3-2015
• M1 Mac 13" Q1-2022
Aktuelle Rechner im Green Metrics Tool Cluster
GREEN CODING;
Software Kategorien und OS
29
Green Metrics Tool - Supported Software
• Server / Client Anwendungen
• Beispiele Nextcloud und Django CMS
• CLI Anwendungen
• Beispiele curl oder ML Anwendungen (sklearn, pytorch)
• Desktop Apps
• Beispiele: Google Chrome, Firefox etc.
• OS
• macOS
• Linux (Ubuntu & Fedora)
• Windows (nur Gesamtleistung an der Steckdose)

More Related Content

Similar to Tools and best practices for sustainable software.pdf

Meta scale kognitio hadoop webinar
Meta scale kognitio hadoop webinarMeta scale kognitio hadoop webinar
Meta scale kognitio hadoop webinarMichael Hiskey
 
Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Andrew Brust
 
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...panagenda
 
Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures Subbu Rama
 
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼Elasticsearch
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Webpanagenda
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudChris Dagdigian
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware Cprime
 
SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?Nicolas Georgeault
 
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...apidays
 
Does Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus WebinarDoes Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus WebinarImpetus Technologies
 
Solving the Database Problem
Solving the Database ProblemSolving the Database Problem
Solving the Database ProblemJay Gordon
 
Machine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville MeetupMachine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville MeetupSri Ambati
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptnRob Jahn
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, CriteoParis Open Source Summit
 
The lean principles of data ops
The lean principles of data opsThe lean principles of data ops
The lean principles of data opsLars Albertsson
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The CloudMarcin Grzejszczak
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryXebiaLabs
 
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...apidays
 

Similar to Tools and best practices for sustainable software.pdf (20)

Meta scale kognitio hadoop webinar
Meta scale kognitio hadoop webinarMeta scale kognitio hadoop webinar
Meta scale kognitio hadoop webinar
 
Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Big Data Strategy for the Relational World
Big Data Strategy for the Relational World
 
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
The Times They Are a-Changin’: Domino Applications in the New World of HCL No...
 
Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures
 
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼
Customer Story: Elastic Stack을 이용한 게임 서비스 통합 로깅 플랫폼
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
 
Mapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the CloudMapping Life Science Informatics to the Cloud
Mapping Life Science Informatics to the Cloud
 
Introduction to Agile Hardware
Introduction to Agile Hardware Introduction to Agile Hardware
Introduction to Agile Hardware
 
SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?
 
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...
apidays London 2023 - API Green Score, Yannick Tremblais & Julien Brun, Green...
 
Does Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus WebinarDoes Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus Webinar
 
Tech view on Regulatory Compliance
Tech view on Regulatory ComplianceTech view on Regulatory Compliance
Tech view on Regulatory Compliance
 
Solving the Database Problem
Solving the Database ProblemSolving the Database Problem
Solving the Database Problem
 
Machine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville MeetupMachine Learning for Smarter Apps - Jacksonville Meetup
Machine Learning for Smarter Apps - Jacksonville Meetup
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
 
The lean principles of data ops
The lean principles of data opsThe lean principles of data ops
The lean principles of data ops
 
Continuous Deployment To The Cloud
Continuous Deployment To The CloudContinuous Deployment To The Cloud
Continuous Deployment To The Cloud
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
 
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...
apidays Paris 2022 - Sustainable API Green Score, Yannick Tremblais (Groupe R...
 

Recently uploaded

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Recently uploaded (20)

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Tools and best practices for sustainable software.pdf

  • 1. GREEN CODING; Tools and best practices for Sustainable Software An overview
  • 2. GREEN CODING; Quick info - Arne Tarara / Green Coding Berlin 2 Standard slide for starters • Software-Dev 16+ years • Founder & CEO Green Coding Berlin GmbH • We do research and development in open source tools for software resource consumption • We help companies assess their digital infrastructure resource consumption
  • 3. GREEN CODING; 3 Agenda • What is sustainable software engineering? • Which tools and concepts can I use? • What are best practices? • Why is sustainable software hard? 25.04.2023
  • 4. GREEN CODING; 4 What is the definition of sustainability ... in the domain of hard- and software Credit: SDIA
  • 5. GREEN CODING; To make software more sustainable we need to make its consumption visible. 5 Software uses energy and machines
  • 6. GREEN CODING; To make software more sustainable we need to make its consumption visible. ... so what tools do already exist? 6 Software uses energy and machines
  • 7. GREEN CODING; open-source RAPL based command line tool 7 Easy starter: Scaphandre - Hubblo • Neat feature: Can split by process
  • 8. GREEN CODING; codecarbon.io Ready to use tools • Python • RAPL-based • NVIDIA GPU support
  • 9. GREEN CODING; Introducing Kepler 9 Distributed Environments / Clusters http://sustainable-computing.io
  • 10. GREEN CODING; All-in-One solution for benchmarking, orchestration and transparency 10 Green Metrics Tool
  • 11. GREEN CODING; 11 Green Metrics Tool Use-Case mit Wordpress / Django Community Why is there server and database activity here? Container native; For detailed inspection of architecture
  • 12. GREEN CODING; 12 Green Metrics Tool Statistical comparisons and API included
  • 13. GREEN CODING; Energy inside of a CI / CD Pipeline 13 Eco CI Tools - Green Coding Berlin Eco-CI Tools on Github - Integrated into Actions directly
  • 14. GREEN CODING; 14 Weitere Tools ... • powertop • powermetrics • Cloud Carbon Footprint • turbostat • powerJoularX • PAPI • greenframe.io • ... for questions regarding a speci fi c tool, please ask in the Q&A!
  • 15. GREEN CODING; Which should I use? And how do I interpret the data? Are best practices for sustainable software? 15 Ok, so know I know some tools
  • 16. GREEN CODING; 16 Best Practices • Measure your system • Go for reusability • Go for exportability / interoperability • Code must also run on older hardware • To fi ght device obsolescence (within reason) According to the Blue Angel for Software
  • 17. GREEN CODING; 17 Best Practices • Tips that are well known and not really "green software" • Cache Static data • Use energy e ffi cient AI models 🤡 • Minify JS / CSS • Right-Size VMs • ... • Tips that are debatable • Run AI models at the edge • Use sustainable regions -> Depends on the network transfer. Hard to wage • Stateless design -> On its own no gain • Source: https://patterns.greensoftware.foundation/catalog/cloud/match-utilization-requirements-of-vm/ According to the Green Software Foundation - A suprising mix ....
  • 18. GREEN CODING; 18 Best Practices? • Is email more sustainable than paper? • Paper consumes a fi xed amount. Email has pot. in fi nite storage and processing • Is Serverless more sustainable than classic VMs? • No solid data on this (Deno / Isolates / Firecracker) • Cloud fl are / Amazon did decline when asking for sustainability insights • Is using AWS Gravitron more sustainable than Intel • What happens to electronic waste?! Life-Cycle ...? • Is Python more sustainable than Rust? • Python uses 80-times the Instructions where as Rust uses 1-3. Still people are not changing because of "cost of development" etc. .... Even simple questions are hard (impossible) to answer
  • 19. GREEN CODING; 19 Problems • Often they just employ common sense - Like: "run less tests" • Often generic advice - "Use sustainable libraries" • Often can be harmful also - Switching machines brings electronic waste • Hard to generalize at the moment - Because we have no data • Can contain pitfalls Like: "Less runtime is always better" ... no: TurboBoost, HyperThreading etc. may inverse result • We plead for a simpler solution .... with current "sustainability" best practices
  • 20. GREEN CODING; 20 Best Practices • You just have to measure! • You have to ask (service providers) for the metrics you don't know. • And to treat energy and CO2 as a fi rst order metric .... constantly (git-ops)! • We need a lot of data for general statements • And we need to include the development and delivery phase of software • Isolated benchmarks and claims are helpful for a isolated view, but not for global sustainability But how do we get there
  • 21. GREEN CODING; 21 Best Practices 1. Quantify your system! How much am I using for what service (Green Metrics Tool, Scaphandre, Kepler etc.) 2. Green Energy (-> Green Web Foundation) But not on the moon please! 3. Idle machines (Async / Polling / Microservices) Only makes sense if you can really turn machines o ff 4. Architecture Overhead (Backups, Logs, Redundancy, Over-Provisioning of Services / Machines) 5. Language Overhead (C-Extensions, WebAssembly, Language-Swaps) 6. Code Changes Even 99% Code runtime reduction is of limited help if the machine then idles An approach for a framework atm.
  • 22. GREEN CODING; 22 Best Practices • No fancyness until proven helpful • Use less resources -> Yes, common sense! • Services, Machines etc. • No o ff -loading / Backlashes • We are more sustainable, we now use a data provider for that machine! • We now use 5 GB less memory (and calculate everything on request :( ) • General Question: If everybody would do it this way. Would we have enough resources? • Simple chat-bot => ChatGPT • Portfolio Website: VPS with Wordpress and database Some general guidance
  • 23. GREEN CODING; Follow green-coding.berlin 23 Thank you! Time for Q&A • Website / Blog / Newsletter: https://www.green-coding.berlin • Demo Open Data Repository: https://metrics.green-coding.berlin • Unsere Projekte: https://www.green-coding.berlin/#projects • Unsere Case-Studies: https://www.green-coding.berlin/case-studies • Meetup Gruppe (Berlin): https://www.meetup.com/green-coding • https://www.linkedin.com/in/arne-tarara / arne@green-coding.berlin
  • 26. GREEN CODING; 26 Green Metrics Tool - Schaubild Container Aufbau für Client-Server Apps
  • 27. GREEN CODING; 27 Green Metrics Tool - Hardware Setup • AC / DC Energie • IPMI • GUDE (Blauer Engel) • PowerSpy2 - Consumer Grade Oscilloscope • Custom Mainboard Connector for Fujitsu ESPRIMO • CPU % / CPU-Frequenz • Temperatur • CPU / DRAM Energie • RAPL • Netzwerk Datenverkehr / Energie • Container-Metriken • ... weitere Reporter als Open-Source Plugin-In möglich Mess-Sensoren im Green Metrics Tool
  • 28. GREEN CODING; 28 Green Metrics Tool - Cluster Setup • Fujitsu ESPRIMO P956 - Blue Angel compatible (Ubuntu) • Fujitsu TX1330 M2 - Single-Tenant Server (Ubuntu) • Quanta Leopard - Multi-Tenant Server - SoftAWERE compatible (Ubuntu) • Intel Mac 13" Q3-2015 • M1 Mac 13" Q1-2022 Aktuelle Rechner im Green Metrics Tool Cluster
  • 29. GREEN CODING; Software Kategorien und OS 29 Green Metrics Tool - Supported Software • Server / Client Anwendungen • Beispiele Nextcloud und Django CMS • CLI Anwendungen • Beispiele curl oder ML Anwendungen (sklearn, pytorch) • Desktop Apps • Beispiele: Google Chrome, Firefox etc. • OS • macOS • Linux (Ubuntu & Fedora) • Windows (nur Gesamtleistung an der Steckdose)