Green Coding per uno sviluppo tecnologico sostenibile

Green Coding per uno sviluppo tecnologico sostenibile

Possiamo ridurre l'impatto dei servizi digitali, perché non lo stiamo facendo?

Green coding: perchè è importante?

Non è un mistero che il crescente utilizzo di dispositivi e piattaforme tecnologiche ha un impatto negativo sull’ambiente e contribuisce in modo diretto al cambiamento climatico.

🖥️
La quantità di energia consumata dai data center in tutto il mondo è circa l’1% della domanda globale.
🍃
Il settore digitale rappresenta tra il 2,1% e il 3,9% delle emissioni globali nel 2022.
📱
Nel pianeta ci sono 34 miliardi tra smartphone, computer, game console e televisori.
🔄
La frequenza con cui ricarichiamo gli smartphone è rimasta invariata nonostante la potenza della batteria sia aumentata del 50% negli ultimi anni.
📺
Guardare un video HD di 10 minuti in streaming consuma quanto un forno elettrico da 2.000 W per 5 minuti.

Le nuove tecnologie alimentano, direttamente o indirettamente, il cambiamento climatico e spesso assistiamo ad un effetto rimbalzo: alcune tecnologie o innovazioni riducono l’impatto diretto (es. lo smartworking ha ridotto gli spostamenti) ma potrebbero introdurre nuovi impatti negativi, diretti o indiretti, spesso superiori al precedente (es. nuova produzione di dispositivi, maggiore traffico dati, maggiori consumi elettrici distribuiti e per i datacenter).

Uno sviluppo digitale responsabile e sostenibile

Alcune aziende stanno agendo per ridurre il proprio impatto ambientale, alcune organizzazioni invece stanno immaginando nuove “regole e principi guida” spesso chiamate “Green Coding Policy”.

2 giorni di funzionamento all’anno

Si possono risparmiare riducendo solo la risoluzione delle immagini dello schermo su un’app di mobile banking con 500.000 utenti Gonzalo Ruiz de Villa Suárez CTO at GFT Group*

L’impatto dei servizi digitali è tutt’altro che trascurabile ma allo stesso tempo con alcuni interventi è possibile ridurre sensibilmente “l’impronta” ambientale dei servizi digitali erogati.

Non è stato ancora standardazzato un metodo condiviso di misurazione, nè delle buone pratiche universali ma si nota una certa convergenza verso alcune indicazioni “di base”.

Foto di Nong V su Unsplash

Filosofie di base

Microsoft introduce Due filosofie dell’ingegneria del software sostenibile:

Ognuno ha un ruolo da svolgere

per risolvere il problema del cambiamento climatico: ogni cosa è connessa e anche i piccoli cambiamenti danno vita a cambiamenti importanti indipendentemente da campo, settore, ruolo o tecnologia, chiunque può fare la differenza.

La sostenibilità è sufficiente a giustificare il lavoro

oltre a migliorare le performance o ridurre i costi di un sistema, l’obiettivo è sufficiente per giustificare gli sforzi, gli investimenti e le risorse necessarie.

  1. Ognuno ha un ruolo da svolgere per risolvere il problema del cambiamento climatico: ogni cosa è connessa e anche i piccoli cambiamenti danno vita a cambiamenti importanti indipendentemente da campo, settore, ruolo o tecnologia, chiunque può fare la differenza.
  2. La sostenibilità è sufficiente, da sola, a giustificare il lavoro, nonostante alcune indicazioni contribuiscono anche a migliorare le performance o ridurre i costi di un sistema, l’obiettivo di migliorare la sostenibilità di un sistema digitale è sufficiente per giustificare gli sforzi, gli investimenti e le risorse necessarie.

Considerazioni di base

È possibile intervenire in modo pragmatico considerando innanzitutto due aspetti principali:

  • Aspetti strutturali: disegnare sistemi sostenibili, che utilizzino hardware a basso impatto ambientale, architetture moderne in grado di ottimizzare i carichi ed i consumi (virtualizzazione, containerizzazione cc), che distribuiscano i dati sulla rete riducendo al massimo lo spreco di traffico, avvicindando i contenuti agli utenti finali, riducendo i consumi energetici.
  • Aspetti comportamentali: utilizzare le risorse in modo responsabile attraverso un equilibrio tra necessità operativa e risultato necessario.
Per addestrare un modello di Intelligenza Artificiale in grado di riconoscere i fiori, con una precisione del 96,17%, sono necessari 964 joule di energia. Per incrementare la precisione del modello dell’1,74% sono necessari 2.815 joule. Infine, per incrementale la precisione del modello di un ulteriore 0,08% il sistema necessita di più del 400% di energia rispetto al primo livello di precisione.
Foto di Jack Anstey su Unsplash

Indicazioni pratiche

  1. Orchestrare il carico di lavoro consentendo un maggiore utilizzo delle energie rinnovabili.
  2. Utilizzare le funzionalità dei chipset moderni di gestione dell’energia per ridurre il consumo energetico attivando la modalità di sospensione quando non abbiamo bisogno della potenza di calcolo.
  3. Ridurre al minimo il volume dei dati trasmessi sulla rete attraverso l’utilizzo di servizi Cloud, Cache e CDN.
  4. Rimuovere le funzioni inutilizzate e fermare i cicli inutili come il polling ad un server irraggiungibile.
  5. Adattare il comportamento in base alla modalità di alimentazione del dispositivo o ad altre condizioni operative.
  6. Limitare la precisione al livello desiderato commisurato alle esigenze operative.
  7. Monitorare il consumo energetico dell’applicazione per identificare le ottimizzazioni.
  8. Selezionare un linguaggio di programmazione con un basso utilizzo di risorse.
Foto di Nadir sYzYgY su Unsplash

Possiamo ridurre l’impatto dei servizi digitali

Possiamo quindi ridurre l’impatto dei servizi digitali. Sviluppatori, professionisti IT, utenti possono fare la differenza anche attraverso tante piccole azioni verso la giusta direzione, la domanda è

perché non lo stiamo facendo?

Discussione

Mastodon Mastodon