Upgrade to Pro — share decks privately, control downloads, hide ads and more …

These Five Tricks Can Make Your Apps Greener, C...

These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer

The code we write has a climate impact. But how big is that impact? How do we measure it? How do we reduce it? Is the
cloud helping? What’s going on with Virginia? Are we still allowed to do CI/CD? Will native compilation save us? Is Java
even a good choice anymore? This talk discusses some of the trade-offs for a modern software developer, and provides a
roadmap to figuring out the right thing.

Avatar for Holly Cummins

Holly Cummins

May 26, 2026

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. Holly Cummins Senior Principal Software Engineer, Quarkus ADEO x Decathlon

    Digital Dev Summit May 27, 2026 these five tricks can make your apps greener cheaper & nicer
  2. @holly_cummins #RedHat Lighter area represents high and low estimates, where

    available. Sources: https://www.iea.org/fuels-and-technologies/data-centres-networks https://ourworldindata.org/grapher/electricity-demand?tab=table&country=USA~GBR~FRA~DEU~IND~BRA data centres use as much electricity as a medium country
  3. @holly_cummins #RedHat algorithms carbon awareness green software foundation: principles hardware

    efficiency electricity efficiency where when elasticity utilisation
  4. @holly_cummins #RedHat algorithms stack carbon awareness green software foundation: principles

    hardware efficiency electricity efficiency where when elasticity utilisation
  5. @holly_cummins #RedHat algorithms stack carbon awareness hardware efficiency electricity efficiency

    where when elasticity utilisation green software foundation: principles
  6. @holly_cummins #RedHat step 1: measure power usage wall power measurement

    more complete needs access to the wall RAPL programmatically accessible
  7. @holly_cummins #RedHat step 1: measure power usage wall power measurement

    more complete needs access to the wall RAPL programmatically accessible misses some components
  8. @holly_cummins #RedHat step 1: measure power usage wall power measurement

    more complete needs access to the wall data costs carbon RAPL programmatically accessible misses some components
  9. @holly_cummins #RedHat Energy 1 10 100 Time 1 10 100

    energy efficiency across programming languages Python Rust Java Go
  10. @holly_cummins #RedHat Energy 1 10 100 Time 1 10 100

    the trend line is more or less straight energy efficiency across programming languages Python Rust Java Go
  11. @holly_cummins #RedHat energy consumption (sort of, mostly) is proportional to

    execution time* * assuming hardware and other resource stays the same
  12. @holly_cummins #RedHat Source: Clement Escoffier cost impact of framework choice

    Setup: • 800 requests/second, over 20 days • SLA > 99% • AWS instances Assumptions: • Costs are for us-east-1 data centre
  13. @holly_cummins #RedHat Source: Clement Escoffier cost impact of framework choice

    Setup: • 800 requests/second, over 20 days • SLA > 99% • AWS instances Assumptions: • Costs are for us-east-1 data centre
  14. @holly_cummins #RedHat reducing your cloud spend (probably) reducing your carbon

    footprint* hardware spend electricity bill * if you keep other factors the same
  15. @holly_cummins #RedHat Setup: • 800 requests/second, over 20 days •

    SLA > 99% Assumptions: • 50% load • us-east-1 data centre • Teads dataset Source: Clement Escoffier x Teads cloud carbon impact of framework choice
  16. @holly_cummins #RedHat Setup: • 800 requests/second, over 20 days •

    SLA > 99% Assumptions: • 50% load • us-east-1 data centre • Teads dataset Source: Clement Escoffier x Teads cloud carbon impact of framework choice economic model in action: the cost and carbon metrics are (roughly) the same
  17. @holly_cummins #RedHat Setup: • REST + CRUD • large heap

    • RAPL energy measurement • multiple instances to support high load Assumptions: • US energy mix Source: John O’Hara carbon as a function of load
  18. @holly_cummins #RedHat Setup: • REST + CRUD • large heap

    • RAPL energy measurement • multiple instances to support high load Assumptions: • US energy mix Source: John O’Hara carbon as a function of load wait, what?
  19. @holly_cummins #RedHat Setup: • REST + CRUD • large heap

    • RAPL energy measurement • multiple instances to support high load Assumptions: • US energy mix Source: John O’Hara carbon as a function of load
  20. @holly_cummins #RedHat capacity Source: John O’Hara Setup: • REST +

    CRUD • large heap • RAPL energy measurement Assumptions: • US energy mix carbon as a function of load (single instance)
  21. @holly_cummins #RedHat capacity Source: John O’Hara Setup: • REST +

    CRUD • large heap • RAPL energy measurement Assumptions: • US energy mix carbon as a function of load (single instance) shorter line means lower max throughput
  22. @holly_cummins #RedHat capacity Source: John O’Hara Setup: • REST +

    CRUD • large heap • RAPL energy measurement Assumptions: • US energy mix carbon as a function of load (single instance) shorter line means lower max throughput higher line means worse carbon footprint
  23. @holly_cummins #RedHat capacity Source: John O’Hara Setup: • REST +

    CRUD • large heap • RAPL energy measurement Assumptions: • US energy mix carbon as a function of load (single instance) vrrrooom model in action: quarkus on JVM has the smallest footprint … because it has the highest throughput shorter line means lower max throughput higher line means worse carbon footprint
  24. @holly_cummins #RedHat trick 3: use quarkus quarkus ‘automatically’ saves •

    time • money • carbon (~2x) • … even when Spring compatibility libraries are used (almost no code changes except dependencies and tests)
  25. @holly_cummins #RedHat trick 3: use quarkus quarkus ‘automatically’ saves •

    time • money • carbon (~2x) • … even when Spring compatibility libraries are used (almost no code changes except dependencies and tests)
  26. #RedHat @hollycummins.com Hey boss, I created a Kubernetes cluster. I

    forgot it for 2 months. … and it’s €1000 a month. 2018
  27. #RedHat @holly_cummins 2017 server-survey 25% doing no useful work (16,000

    sampled) “perhaps someone forgot to turn them off”
  28. @holly_cummins #RedHat cloud elasticity? 2021: $26.6 billion wasted by always-on

    cloud instances https://www.business2community.com/cloud-computing/overprovisioning-always-on-resources-lead-to-26-6-billion-in-public-cloud-waste-expected-in-2021-02381033
  29. #RedHat @hollycummins.com we don’t switch the light off because we’re

    not sure if it will come back on never happens
  30. #RedHat @hollycummins.com we don’t switch the server off because we’re

    not sure if it will come back on happens all the time
  31. #RedHat @hollycummins.com we don’t switch the light off because it’s

    so much effort to turn it back on never happens
  32. #RedHat @hollycummins.com we don’t switch the server off because it

    would be too much work to recreate it happens all the time
  33. #RedHat @hollycummins.com we don’t switch the server off because we’re

    not really sure if it we’re using it happens all the time
  34. @holly_cummins #RedHat what if … turning applications off was no

    more scary than turning the lights off? ultimate elasticity
  35. @holly_cummins #RedHat turning it off and on again must •

    be fast • actually work • idempotency
  36. @holly_cummins #RedHat turning it off and on again must •

    be fast • actually work • idempotency • resiliency
  37. #RedHat @hollycummins.com large UK bank, 2013 50% reduction in CPUs

    with a lease system self-destructing instances
  38. @holly_cummins #RedHat scripting we used to leave our applications running

    all the time when we scripted turning them off at night, we reduced our cloud bill by 30% @darkandnerdy, Chicago DevOpsDays
  39. @holly_cummins #RedHat algorithms stack carbon awareness hardware efficiency electricity efficiency

    where when elasticity utilisation green software foundation: principles
  40. @holly_cummins #RedHat look at the sustainability information before choosing a

    hosting region choose a cloud provider who make this easy
  41. @holly_cummins #RedHat time of day matters • (most) renewables are

    intermittent • if grid load is high, shortfalls are filled by fossil fuels
  42. @holly_cummins #RedHat reducing your token spend (probably) reducing your carbon

    footprint* subscription level * if you keep other factors the same
  43. @holly_cummins #RedHat 1. Create the project using quarkus_create with the

    extensions above. This will auto-start dev mode with a PostgreSQL Dev Service (no manual DB setup needed). │ │ 2. Load extension skills via quarkus_skills to learn the correct patterns for REST and Panache. │ │ 3. Verify the app starts successfully and the generated starter endpoints work by checking the dev mode logs. │ │ │ │ Verification │ │ │ │ - Confirm dev mode starts without errors │ │ - Confirm PostgreSQL Dev Service is running (auto-provisioned by Quarkus) │ │ - Test the generated starter endpoint(s) via curl or the Dev UI ❯ /usage Total duration (API): 58s Total duration (wall): 2m 39s Total code changes: 34 lines added, 0 lines removed Usage by model: claude-opus-4-6: 2.3k input, 2.6k output, 160.7k cache read, 44.7k cache write ($0.4364) 10x generating a quarkus app cheaper with quarkus mcp
  44. @holly_cummins #RedHat remember the zombie servers? what else could we

    do with that $26.6 billion of wasted cloud spend? https://www.business2community.com/cloud-computing/overprovisioning-always-on-resources-lead-to-26-6-billion-in-public-cloud-waste-expected-in-2021-02381033
  45. @holly_cummins #RedHat tl;dpa (too long; didn’t pay attention) trick 1:

    the vrrrooooom model says faster is greener trick 2: the economic model says cheaper is greener trick 3: choose a fast and energy-efficient framework (such as quarkus) trick 4: architect to be able to turn stuff off (LightSwitchOps) trick 5: choose your time of day and hosting wisely