Less is more

reduce $ and CO2

to improve performance 🚀 and joy 🥳

The un-fun bit

The costs in 2050

  • $ trillions per year
  • 19% loss to world economy

IT’s contribution

IT’s contribution

  • Datacenters: ±1% of global CO₂
  • Datacenters: ±1-1.5% of global energy
  • Networking: ±1-1.5% of global energy

IT’s contribution

  • Datacenters: ±1% of global CO₂
  • Datacenters: ±1-1.5% of global energy
  • Networking: ±1-1.5% of global energy


…and growing

IT’s contribution

  • Datacenters: ±1% of global CO₂
  • Datacenters: ±1-1.5% of global energy
  • Networking: ±1-1.5% of global energy


Similar to aviation! ✈️

Enough doom & gloom

Let’s talk about something fun

Jan Ouwens

 

EqualsVerifierjqno.nl🦋jqno.nl

Personal things


I’m not perfect 😢


I do my best

Personal things

Personal things

Personal things

My place in this

80s / 90s


“640k ought to be enough for everyone”

My place in this

64KB !

Oulipo

Constraints

They’re fun!

Developers

  1. Machines got faster
  2. Constraints got thrown out
  3. Software got slower!?

Developers

We have power over things

many people don’t understand

Let’s use that power

So what can we do!?

Constrain!

Optimize!

measure?

Economic model of green software

That last slide

is the most

important one

Economic model of green software

So what can we do!?

The thing we can’t not talk about

The thing we can’t not talk about

Source: AI-generated

The thing we can’t not talk about


Isn’t AI bad for the climate?

The thing we can’t not talk about

1 ChatGPT query

10 Google queries

watch tv 50 seconds

drive a car 1.2 meters

upload 9 photos to social media

The thing we can’t not talk about


ChatGPT 20.000 households

Fortnite 400.000 households

YouTube 2.000.000 households

The thing we can’t not talk about


We all use energy

We all emit CO₂


That’s ok

The thing we can’t not talk about

Where does your app spend energy?


  • An AI chatbot?
  • Unskippable video ads?
  • Accept Bitcoin payments?

The thing we can’t not talk about

Everything has a footprint

(Some more than others)


Use what’s valuable

Discard the rest

So what else can we do?

So what else can we do?

Reference architecture

Simplify infrastructure

Simplify infrastructure

  • test
  • accept
  • prod

Simplify infrastructure

  • test ?
  • accept
  • prod

Simplify infrastructure

  • test
  • accept
  • prod

33% reduction!

Simplify infrastructure

Simplify infrastructure

Advanced: LightSwitchOps

  • Pull up at will
  • Tear down at will

disaster recovery testing

Stop chasing nines

Stop chasing nines

99.9% uptime

Stop chasing nines

99.99% uptime

Stop chasing nines

99.999% uptime

Stop chasing nines

99.999% uptime ??

Stop chasing nines



← Monday to Saturday


Sunday →

Stop chasing nines

Stop chasing nines

Stop chasing nines

Stop chasing nines

Stop chasing nines

Stop chasing nines

Re-think your DB

Re-think your DB

Re-think your DB

SQLite is

  • Stable
  • Reliable
  • Backward-compatible
  • Billions(!) of deploys

Re-think your DB


❤️

Re-think your DB

Re-think your DB

Re-think your DB

Cons:

  • Must carefully tweak defaults
  • Only one concurrent write
  • Must arrange for backups

Re-think your DB

Pros:

  • No DB server
  • Simplicity

Re-think your DB

Make small Docker images

Make small Docker images

  • Need to be stored
       ↳ embedded CO₂
  • Need to be transmitted
       ↳ actual CO₂

Make small Docker images

public class Main {
    public static void main(String...args) {
        System.out.println("Hello World!");
    }
}

Make small Docker images

Tech size
Hello world 512MB

Make small Docker images

Tech size
Hello world 512MB
Multi-stage 426MB

Make small Docker images

Tech size
Hello world 512MB
Multi-stage 426MB
Minimal base 202MB

Make small Docker images

Tech size
Hello world 512MB
Multi-stage 426MB
Minimal base 202MB
JLink 115MB

Make small Docker images

Tech size
Hello world 512MB
Multi-stage 426MB
Minimal base 202MB
JLink 115MB
GraalVM 89MB

Make small Docker images

Tech size
Hello world 512MB
Multi-stage 426MB
Minimal base 202MB
JLink 115MB
GraalVM 89MB
Single binary 16MB

Make small Docker images


still…

16MB     >     64KB

Make small Docker images

Enable build caching

Enable build caching

Enable build caching

Every time

Enable build caching

Many times

per day

Enable build caching

Many times

per hour

Enable build caching

Many other things

16 minutes is short!

Conclusion

Constraints! They’re fun!


That most important slide again

Economic model of green software

Results

  • 🤑 Our bosses
  • 🚀 Our software
  • 💚 The world
  • 🥳 Us

Thank you


¿ ?