Quanto è green il software? La risposta potrebbe sembrare ovvia: il software non esegue alcun “lavoro”, non consuma energia e non emette calore, per cui, implicitamente, dovrebbe essere quanto di più rispettoso dell’ambiente possiamo avere oggi. La realtà è invece del tutto differente. Infatti, anche il software contribuisce alla produzione di quel gas serra che sta portando un radicale cambiamento climatico e che sta avvicinano il clima delle nostre latitudini a quello degli ambienti tropicali, con quello che comporta in termini di catastrofi naturali.
Così, se da una parte il software è alla base di quasi tutte le soluzioni intelligenti progettate per sostenere l’ambiente, dall’altra il suo utilizzo sempre più massiccio, dovuto al moltiplicarsi dell’impiego di tecnologie digitali negli ambiti più disparati, implica un aumento del carbon footprint.
Il progetto The Green Software Foundation
Come detto, per sua natura il software non può essere direttamente responsabile dell’emissione di CO2 nell’ambiente, ma le macchine su cui gira consumano energia e questo sì contribuisce alla produzione di gas serra. Da ciò discende che il modo in cui il software è sviluppato e sfrutta l’hardware disponibile può fare differenza (e anche molta) in termini di carbon footprint.
E questo aspetto sta assumendo un’importanza così rilevante che al suo recente evento per gli sviluppatori, Build 21, Microsoft ha annunciato che ha dato vita all’iniziativa The Green Software Foundation in partnership con Accenture, GitHub e ThoughtWorks. Questa “fondazione” ha lo scopo di costruire un ecosistema affidabile di persone, standard, strumenti e pratiche per sviluppare software “verde”. In concreto, l’intento è incoraggiare le organizzazioni con un impegno condiviso verso la sostenibilità e un interesse nei principi di sviluppo del software green a unirsi all’iniziativa per aiutare l’industria del software a contribuire agli obiettivi più ampi del settore ICT. In questo modo si dovrebbero poter ridurre le emissioni di gas serra del 45% entro il 2030. Un risultato importante se si considera che la “fondazione” ritiene che nel 2030 il 20% dell’elettricità prodotta a livello globale sarà consumato dall’ICT.
Per raggiungere questo obiettivo, The Green Software Foundation ha definito tre precise linee guida:
- Stabilire standard per l’industria del software: saranno creati e pubblicati standard, modelli e pratiche green in varie discipline informatiche e domini tecnologici. E ne sarà incoraggiata l’adozione.
- Accelerare l’innovazione: saranno avviati progetti open-source e open-data affidabili che supportino la creazione di applicazioni software green.
- Guidare la consapevolezza: sarà favorita l’adozione diffusa del software green in tutto il settore attraverso programmi di ambasciatori, formazione e istruzione che portano alla certificazione. Saranno organizzati eventi per facilitare la crescita del software green.
Come si sviluppa un software green
Come si evince dal nome, il software green viene sviluppato considerando aspetti inerenti la sostenibilità e la scienza del clima. In questo modo il risultato è un software che ha l’efficienza energetica nel suo DNA e che quindi, quando fatto girare, minimizza le emissioni di gas che contribuiscono all’effetto serra.
Attualmente, non esiste ancora una lista di applicazioni “industrializzate” che hanno tra le loro specifiche di sviluppo l’attenzione all’ambiente, ma molte aziende ci stanno lavorando (tra le più attive troviamo anche l’italiana Reply). L’approccio più frequente di questi primi esperimenti vede come punto di partenza la definizione di una sorta di compromesso tra gli obiettivi di business e quelli di sostenibilità: fino anche punto il software può consentire l’emissione di CO2 senza avere un significativo impatto sulle attività aziendali? È su questo che stanno lavorando molti degli sviluppatori e, siccome non esiste uno storico, stanno procedendo per tentativi partendo dagli interventi più “semplici” come un uso più efficiente della memoria, la riduzione del numero di dati usati e l’ottimizzazione dei calcoli matematici. Man mano che si acquisisce esperienza si potranno effettuare interventi sempre più mirati in modo da definire studi di fattibilità sempre più precisi. L’obiettivo finale, in linea con quanto previsto da The Green Software Foundation, è di definire template, API, librerie ed eventualmente anche nuovi linguaggi di programmazione da usare con lo scopo precipuo di ridurre l’emissione di CO2.
Per verificare l’effetto di questi nuovi strumenti potrebbero essere usate tecniche di analisi dinamica del codice, che consentono di monitorare il consumo energetico in tempo reale.
Già oggi esistono tool che aiutano a sviluppare sistemi “attenti” al consumo energetico. Uno di questi è il Software Development Assistant di Intel che permette di misurare l’energia consumata mentre sono eseguiti specifici task all’interno di un’applicazione in modo da determinare la sua efficienza.
Cloud e data center
Visti i numerosi vantaggi che comporta, oggi il cloud è l’ambiente di predilezione per le applicazioni moderne. E se tali applicazioni fossero sviluppate secondo procedure attente all’ambiente il risparmio energetico che ne potrebbe conseguire sarebbe davvero importante. Secondo i dati forniti da IDC, tra il 2021 e il 2024, il passaggio al cloud computing dovrebbe, come minimo, evitare 629 milioni di tonnellate di emissioni di anidride carbonica. Non solo. Se tutti i data center nel 2024 fossero progettati per la sostenibilità, si potrebbero risparmiare fino a 1,6 miliardi di tonnellate. Nel complesso, IDC prevede che circa il 60% dei data center adotterà pratiche di sostenibilità “più intelligenti” entro il 2024, risparmiando più di 1 miliardo di tonnellate di emissioni. Questo risultato potrebbe essere ottenuto sia grazie alla distribuzione dei server, sia all’uso nel cloud e on-premise di software “ottimizzato”.
Il cloud computing può prevenire le emissioni di CO2, data l’efficienza ottenuta dall’aggregazione delle risorse di calcolo in cui un ruolo importante lo gioca proprio il software. On-premise, invece, le applicazioni potrebbero risparmiare energia comprimendo i dati in blocchi di minori dimensioni oppure gestendo task sull’edge attraverso unità grafiche, suddividendo tra più processori l’esecuzione dei workload più gravosi.
Un aiuto nella riduzione dei consumi potrebbe arrivare anche dall’impiego di architetture più recenti e più green, come il serverless computing o i container, che permettono un controllo ancora maggiore sulla capacità e, per estensione, sul consumo di energia.
Il ruolo del software a sostegno dell’ambiente
Quello che colpisce nell’annuncio della costituzione di The Green Software Foundation è la conclamazione che lo sviluppo del software assume una nuova dimensione e diventa parte integrante della battaglia contro il proliferare del gas serra. In altre parole, il software può essere creato in un modo che sfrutti meglio le risorse, consentendogli di consumare meno energia. È quasi un’ammissione del fatto che sinora si è badato più al risultato finale che non a come lo si otteneva. La nuova direzione verso lo sviluppo di un software green implica invece la creazione di un prodotto di qualità superiore: più ragionato, più snello, più pulito e più ottimizzato per il suo impiego. Va da sé che caratteristiche di questi tipo potranno rappresentare un importante fattore di scelta quando si dovrà decidere quale applicazione usare o a quale software house affidarsi.
Purtroppo, questo molto facilmente comporterà un aumento dei costi, tuttavia molto probabilmente nuove tecnologie e ottimizzazioni consentiranno di compensare tali costi con migliori performance o servizi. D’altra parte, non dobbiamo dimenticare che c’è un solo pianeta Terra e dobbiamo fare il possibile per conservarlo. Anche grazie al software green.