Dal momento che le tecnologie informatiche svolgono un ruolo importante nella nostra vita quotidiana, la loro necessità di energia sta aumentando rapidamente. Entro il 2025, i soli centri dati consumeranno circa il 20% dell’elettricità globale e l’intero ecosistema digitale rappresenterà un terzo della domanda globale.
Il concetto di Green Software è stato sviluppato per affrontare questi problemi, concentrandosi sullo sviluppo di software con emissioni di carbonio minime. Il software che sviluppiamo oggi verrà eseguito su miliardi di dispositivi nei prossimi anni, consumando energia e contribuendo potenzialmente al cambiamento climatico.
Il Green IT rappresenta un cambiamento nell’industria del software, consentendo agli sviluppatori di software e a tutti gli stakeholder di contribuire a un futuro più sostenibile.
I principi chiave e le relative migliori pratiche per ridurre l’impronta di carbonio del software includono:
- Efficienza delle emissioni di carbonio: Emettere la minor quantità di carbonio possibile
- Efficienza energetica: Utilizzare la minor quantità di energia possibile
- Consapevolezza del carbonio: Fare di più quando l’elettricità è pulita e di meno quando è più sporca
Efficienza del carbonio
Il nostro obiettivo è emettere meno carbonio possibile nell’atmosfera. Pertanto, il principio chiave del Green Software è la Carbon Efficiency: ridurre al minimo le emissioni di carbonio per unità di lavoro.
La definizione di Carbon Efficiency è lo sviluppo di applicazioni che hanno un’impronta di carbonio più bassa pur fornendo gli stessi benefici a noi o ai nostri utenti.
Efficienza energetica
Creare un’applicazione efficiente dal punto di vista energetico equivale a creare un’applicazione efficiente dal punto di vista delle emissioni di carbonio, poiché il carbonio viene sostituito dall’elettricità. Il Green Software si propone di utilizzare la minor quantità possibile di elettricità e di essere responsabile del suo utilizzo.
È vero che tutti i software utilizzano l’elettricità, dalle applicazioni per telefoni cellulari ai modelli di apprendimento automatico addestrati nei centri dati. Aumentare l’efficienza energetica delle applicazioni è una delle migliori strategie per ridurre il consumo di energia e l’impronta di carbonio. Tuttavia la nostra responsabilità va oltre. Quantificare il consumo energetico è un punto di partenza fondamentale, ma è anche importante considerare le spese generali dell’hardware e l’impatto sull’utente finale. Riducendo al minimo gli sprechi e ottimizzando l’uso dell’energia in ogni fase, possiamo ridurre significativamente l’impatto ambientale dello sviluppo del software e cambiare il modo in cui gli utenti utilizzano il prodotto per trarre vantaggio dalla proporzionalità energetica.
Consapevolezza delle emissioni di carbonio
La produzione di energia elettrica comporta l’utilizzo di risorse diverse in tempi e luoghi diversi, con emissioni di carbonio diverse. Alcune energie, come l’energia idroelettrica, l’energia solare e l’energia eolica, sono fonti energetiche pulite e rinnovabili con basse emissioni di carbonio. Tuttavia, le fonti di combustibili fossili rilasciano quantità variabili di carbonio per produrre energia. Per esempio, le centrali elettriche a gas producono meno carbonio di quelle a carbone, ma entrambi i tipi di energia producono più carbonio delle fonti di energia rinnovabili.
Il concetto di consapevolezza del carbonio consiste nell’aumentare l’attività quando l’energia è prodotta da fonti a basso contenuto di carbonio e nel diminuire l’attività quando l’energia è prodotta da fonti ad alto contenuto di carbonio.
Attualmente si stanno verificando cambiamenti globali. In tutto il mondo, le reti elettriche stanno passando dalla combustione di combustibili fossili alla generazione di energia da fonti a basso contenuto di carbonio, come l’energia solare ed eolica. Questa è una delle nostre migliori possibilità di raggiungere gli obiettivi di riduzione globale.
Come si può essere più attenti alle emissioni di carbonio?
Più che gli obiettivi ambientali, è l’economia a guidare questo cambiamento. L’energia rinnovabile diventerà sempre più importante con il passare del tempo, man mano che i costi diminuiranno e diventeranno più accessibili. Per questo motivo dobbiamo rendere meno economici gli impianti a combustibili fossili e più redditizi quelli a energie rinnovabili per accelerare la transizione. Il modo migliore per farlo è utilizzare più elettricità da fonti a basso contenuto di carbonio, come le rinnovabili, e meno da fonti ad alto contenuto di carbonio.
I due principi principali della Carbon Awareness sono:
- Demand Shifting: Essere consapevoli delle emissioni di carbonio significa adattare la domanda alle variazioni dell’intensità di carbonio. Se il vostro lavoro vi permette di essere flessibili con il carico di lavoro, potete adattarvi utilizzando l’energia quando l’intensità di carbonio è bassa e interrompendo la produzione quando l’intensità di carbonio è alta. Ad esempio, addestrare il vostro modello di apprendimento automatico utilizzando un orario o un luogo diverso in cui l’intensità di carbonio è significativamente più bassa. Alcuni studi hanno dimostrato che queste misure possono ridurre le emissioni di CO2 dal 45% al 99%, a seconda del numero di fonti di energia rinnovabile utilizzate per alimentare la rete.
- Demand Shaping: La tattica di spostare i calcoli verso luoghi o periodi a più bassa intensità di carbonio è chiamata demand shifting. L’ingegneria della domanda è una tattica simile. Tuttavia, anziché spostare la domanda in un nuovo luogo o periodo, modifica il calcolo per adeguarlo all’offerta attuale.
La disponibilità di carbonio è fondamentale per la formazione della domanda di applicazioni carbon smart. Quando il costo di gestione di un’applicazione in termini di emissioni di carbonio aumenta, la domanda viene progettata per adeguarsi all’offerta di carbonio. Gli utenti possono scegliere di farlo o di farlo fare automaticamente.
Il software per videoconferenze che regola automaticamente la qualità dello streaming ne è un esempio. Quando la larghezza di banda è limitata, la qualità dell’audio ha la priorità su quella del video e viene sempre trasmessa alla qualità più bassa possibile.
Efficienza dell’hardware
Se prendiamo in considerazione il carbonio incorporato, è chiaro che nel momento in cui acquistiamo un computer, una quantità significativa di carbonio è già stata emessa. Inoltre, i computer hanno una durata limitata, per cui con il tempo diventano obsoleti e devono essere aggiornati per soddisfare le esigenze del mondo moderno.
In questi termini, l‘hardware è un proxy del carbonio e, poiché il nostro obiettivo è quello di essere efficienti dal punto di vista del carbonio, dobbiamo esserlo anche dal punto di vista dell’hardware. Esistono due approcci principali all’efficienza dell’hardware:
- Per i dispositivi degli utenti finali, si tratta di prolungare la durata di vita dell’hardware.
- Per il cloud computing, si tratta di aumentare l’utilizzo del dispositivo.
Come si misura il Green software?
La maggior parte delle aziende utilizza il Greenhouse gas (GHG) per calcolare le emissioni totali di carbonio. Imparando a valutare il software rispetto ai campi dei gas serra e agli standard di settore, è possibile valutare quanto siano stati implementati i principi del software verde e quanto spazio ci sia per migliorare.
Gli standard di contabilizzazione dei gas serra sono il metodo più comune e diffuso per misurare le emissioni totali. Il protocollo GHG è utilizzato dal 92% delle aziende Fortune 500 per calcolare e divulgare le proprie emissioni di carbonio.
Il Protocollo GHG divide le emissioni di carbonio in tre categorie. Le emissioni della catena del valore, o emissioni di ambito 3, sono le emissioni delle aziende che riforniscono altre aziende della catena. Pertanto, le emissioni di ambito 1 e 2 di un’organizzazione vengono aggiunte all’ambito 3 di un’altra organizzazione.
I protocolli GHG consentono di calcolare le emissioni legate al software, anche se il software open-source può rappresentare una sfida in questo senso. Oltre ai protocolli GHG, è possibile adottare le specifiche della Software Carbon Intensity (SCI). La SCI è una percentuale, non un totale, ed è specificamente progettata per calcolare le emissioni del software.
Lo scopo di questa specifica è valutare il tasso di emissioni del software e incoraggiarne l’eliminazione. Le emissioni di gas serra, invece, sono una misura più universale che può essere utilizzata da tutti i tipi di organizzazioni. Il SCI è una statistica aggiuntiva che aiuta i team di software a comprendere le prestazioni del software in termini di emissioni di carbonio e a prendere decisioni migliori.
Come si può calcolare l’impronta di carbonio totale del software?
Il calcolo dell’impronta di carbonio totale del software richiede l’accesso a informazioni complete sul consumo energetico, sull’intensità di carbonio e sull’hardware su cui viene eseguito il software. Questo tipo di dati è difficile da raccogliere, anche per i prodotti software closed-source che le aziende possiedono e possono monitorare attraverso la telemetria e i log.
Molte persone di diverse organizzazioni contribuiscono ai progetti open-source. Pertanto, non è chiaro chi sia responsabile della determinazione delle emissioni e chi sia responsabile della loro riduzione. Considerando che il 90% dello stack di una tipica azienda è costituito da software open-source, è chiaro che una parte significativa delle emissioni di carbonio rimane irrisolta.
Metodologie di riduzione delle emissioni di carbonio
Per ridurre le emissioni e sostenere gli sforzi per affrontare il cambiamento climatico, vengono comunemente utilizzate diverse metodologie. Queste possono essere ampiamente raggruppate nelle seguenti categorie: eliminazione delle emissioni di carbonio (nota anche come “abbattimento”), prevenzione delle emissioni di carbonio (nota anche come “compensazione”) e riduzione delle emissioni di carbonio (nota anche come “neutralizzazione”).
- Abbattimento o Eliminazione: comprende l’aumento dell’efficienza energetica per eliminare alcune delle emissioni associate alla produzione di energia. L’abbattimento è il modo più efficace per combattere il cambiamento climatico, anche se la completa eliminazione del carbonio non è possibile.
- Compensazione o Prevenzione: l’utilizzo di tecniche di vita sostenibili, il riciclaggio, la piantumazione di alberi e altre fonti di energia rinnovabile sono esempi di compensazione.
- Neutralizzazione o Riduzione: è la rimozione e lo stoccaggio permanente del carbonio dall’atmosfera per compensare gli effetti delle emissioni di CO2 nell’atmosfera. Le compensazioni tendono a rimuovere il carbonio dall’atmosfera nel breve e medio termine.
Un’organizzazione può affermare di essere Carbon Neutral se compensa le emissioni e, più ambiziosamente, di essere Net Zero se riduce il più possibile le emissioni compensando solo quelle inevitabili.
La Green Software Foundation
Il movimento del Green Software è nato come impegno informale, ma è diventato più visibile negli ultimi anni. La Green Software Foundation è stata lanciata nel maggio 2021 per aiutare l’industria del software a ridurre l’impronta di carbonio creando un ecosistema affidabile di persone, standard, strumenti e buone pratiche per la creazione di software verde.
Nello specifico, l’organizzazione no-profit fa parte della Linux Foundation e ha tre obiettivi principali:
- Stabilire standard per l’industria del software verde: La Fondazione creerà e distribuirà linee guida, modelli e pratiche di programmazione verde in tutte le discipline informatiche e i domini tecnologici.
- Accelerare l’innovazione: Per sviluppare l’industria del software verde, la Fondazione incoraggerà la creazione di solidi progetti open source e open data che supportino la creazione di applicazioni green software.
- Promuovere la consapevolezza: Una delle missioni principali della Fondazione è quella di promuovere l’adozione diffusa del green software attraverso programmi di ambasciatori, formazione e istruzione che portino alla certificazione, ed eventi per facilitare lo sviluppo del green software.
Conclusioni
Noi di Bitrock crediamo che tutti abbiano un ruolo da svolgere nella risoluzione dei cambiamenti climatici. Infatti, lo sviluppo di software sostenibile è inclusivo. Indipendentemente dal settore, dal ruolo o dalla tecnologia, si può sempre fare di più per avere un impatto. Gli sforzi collettivi e la collaborazione interdisciplinare tra settori e all’interno dell’ingegneria sono essenziali per raggiungere gli obiettivi climatici globali.
Se riuscite a scrivere codice più ecologico, i vostri progetti software saranno più robusti, affidabili, veloci e resistenti. Le applicazioni software sostenibili non solo riducono l’impronta di carbonio di un’applicazione, ma creano anche applicazioni con meno dipendenze, migliori prestazioni, minore consumo di risorse, costi più bassi e funzionalità a basso consumo energetico.
Fonti: Green Software for Practitioners (LFC131) – The Linux Foundation