Tecnologie digitali e riscaldamento globale

Le sfide moderne del progresso tecnologico

Fin dalle origini, l’umanità ha trovato nella tecnologia un alleato per superare i limiti che le condizioni ambientali imponevano alla propria evoluzione. Il progresso tecnologico ha determinato l’ascesa e l’avvento delle diverse epoche e oggi sta plasmando l’era digitale, nella quale algoritmi e dispositivi elettronici rappresentano i componenti centrali dell’innovazione. I prodotti digitali supportano i diversi settori industriali, riducono il time-to-market dei prodotti e snelliscono tutte le operazioni ripetitive e noiose che un tempo gravavano sulle spalle degli operatori.

L’era digitale rappresenta una nuova opportunità per l’umanità di raggiungere ciò che era impensabile fino a 50 anni fa: linee di produzione automatizzate grazie all’IoT, elaborazione dei big data per prodotti personalizzati, un’esperienza cliente migliorata basata sull’intelligenza artificiale. L’IoT e i sistemi cyber-fisici sono due delle principali tecnologie introdotte dall’Industria 4.0 con l’obiettivo di ottimizzare i processi produttivi, ridurre i ricambi e diminuire i rischi per gli operatori umani. Mentre l’Industria 4.0 sta accelerando i processi industriali, il passo successivo, l’Industria 5.0, consentirà di ridurre il tempo perso nel trasferimento dei dati e di migliorare i framework collaborativi lungo la supply chain.

Tuttavia, è nella natura del tempo che ogni nuova epoca porti con sé nuove sfide. Infatti, mentre entriamo nell’era digitale, queste problematiche contemporanee stanno lentamente prendendo forma. Il cambiamento climatico sta diventando una priorità assoluta per governi e istituzioni, poiché i suoi effetti stanno raggiungendo il punto di non ritorno più rapidamente di quanto si possa immaginare. Entro cinque anni, il cambiamento climatico sarà irreversibile e influenzerà la vita di tutti. L’Organizzazione Mondiale della Sanità ha stimato che il numero di decessi aggiuntivi dovuti al cambiamento climatico tra il 2030 e il 2050 sarà di 250.000 all’anno (5 milioni in totale), poiché 3,6 miliardi di persone vivono già in aree altamente vulnerabili alle conseguenze del riscaldamento globale.

Il cambiamento climatico è un problema terribile e deve essere risolto. Merita di essere una priorità assoluta.
— Bill Gates, fondatore di Microsoft

Inquinamento reale da un mondo virtuale

La ricerca scientifica e industriale è attualmente concentrata sulla riduzione delle emissioni di CO₂. La recente diffusione globale delle tecnologie digitali ha il potenziale di accelerare la transizione ecologica. D’altra parte, le tecnologie digitali sono diventate negli ultimi anni una delle principali fonti di inquinamento ambientale.

Secondo Frans Berkhout e Julia Hertin in “De-materialising and re-materialising: digital technologies and the environment”, gli effetti delle tecnologie dell’informazione e della comunicazione (ICT) sull’ambiente possono essere suddivisi in impatti diretti, indiretti e strutturali/comportamentali. Gli impatti diretti sono legati alla produzione e alla manutenzione dell’hardware (server, cavi, schede madri, ecc.) e non sono molto diversi da quelli associati a qualsiasi altro prodotto industriale, con conseguenze negative sul clima. Gli impatti indiretti sono principalmente legati alla “dematerializzazione” di alcuni prodotti e servizi, con un effetto complessivamente positivo sul cambiamento climatico. Infine, gli impatti strutturali e comportamentali sono legati a dinamiche più profonde, come i cambiamenti nella società, nell’economia e nei quadri normativi.

È difficile prevedere l’impatto complessivo del processo di digitalizzazione sul cambiamento climatico. L’ADEME (Agence de l’environnement et de la maîtrise de l’énergie) ha dimostrato che la produzione di CO₂ associata a una singola email di appena 1 megabyte è pari a circa 19 grammi. Se si considera il numero di email inviate ogni giorno all’interno delle aziende di tutto il mondo, si raggiungono quantità enormi di emissioni di CO₂. In altre parole, 15 email medie inquinano più che percorrere 1 km in automobile.

Inoltre, l’ESG Karma Metrix Observatory ha evidenziato che altre tecnologie digitali hanno un’impronta ambientale sorprendentemente elevata. Quante volte utilizziamo motori di ricerca come Google? O guardiamo film e serie su Netflix? Piattaforme di questo tipo sono estremamente inquinanti. È stato anche stimato che, se Internet fosse un Paese, sarebbe il quarto più inquinante al mondo.

Questi esempi dimostrano che le tecnologie digitali sono un’arma a doppio taglio: dobbiamo prenderci cura del nostro pianeta utilizzando con saggezza le potenzialità della tecnologia. Come è noto, Airizon sta lavorando attivamente per ridurre le emissioni di CO₂ diminuendo il time-to-market di aeromobili ibridi, completamente elettrici e a idrogeno. La nostra suite digitale HEAD (Hydrogen and Electric Aircraft Designer) integra i metodi di progettazione più recenti per questo tipo di aeromobili, aiutando i progettisti ad accelerare il processo.

In quanto parte di un’umanità attenta alla salvaguardia del pianeta, incoraggiamo la nostra rete, i nostri clienti e i nostri collaboratori a tenere in considerazione alcuni semplici accorgimenti per ridurre la nostra impronta ambientale:

  • Se non necessario, non rispondere alle email includendo l’intera catena di messaggi.
  • Se ricevi un’email con informazioni banali (ad esempio: “Grazie per il documento”), eliminala.
  • Nelle catene di email, conserva solo l’ultimo messaggio inviato ed elimina i precedenti.
  • Cancella periodicamente le chat dei social media inattive.
  • Elimina i gruppi social che non hanno più motivo di esistere.
  • Non aprire molte pagine Internet contemporaneamente se non necessario.
  • Vai al lavoro a piedi ogni volta che è possibile.

Come primo passo per ridurre la nostra impronta ambientale, in Airizon abbiamo creato un nostro sistema di scambio delle emissioni delle email tramite uno strumento interno progettato per registrare le emissioni associate a ogni email inviata da ciascun membro del team (figure 1 e 2). Una volta registrate le email, i dipendenti che superano il limite possono richiedere email aggiuntive ai colleghi più virtuosi. Se le emissioni mensili complessive superano il valore massimo stabilito, le email vengono analizzate per adottare azioni correttive nel mese successivo.

Figure 1: Sistema di scambio delle emissioni sviluppato da Airizon. L’interfaccia mostra quanti grammi di CO₂ produce ciascun membro del team in base al numero di email inviate durante il mese.

Figure 2: Interfaccia del sistema di scambio delle email sviluppato da Airizon, visualizzata per singola persona.

Strategie per la sostenibilità: Green Computing

Come accennato in precedenza, esiste una chiara distinzione tra impatti diretti, indiretti e strutturali o comportamentali. Questa distinzione è fondamentale per un ramo dell’ingegneria che studia specificamente la sostenibilità dell’IT: il Green Computing. Il Green Computing è un sottosettore dell’IT sostenibile che si concentra sulla ricerca e sullo sviluppo di pratiche e procedure per utilizzare le risorse informatiche in modo rispettoso dell’ambiente, senza compromettere le prestazioni.

L’obiettivo è individuare soluzioni che migliorino l’efficienza delle risorse, promuovendone la riduzione, il riutilizzo e il riciclo.

La ricerca sui benefici del Green Computing si concentra principalmente su due macro-aspetti:

  • L’aspetto sociale, poiché ha portato a un aumento della consapevolezza ambientale tra i consumatori, che oggi sono più inclini a scegliere prodotti, aziende e organizzazioni del settore IT che tengono conto del proprio impatto ambientale.
  • L’aspetto economico, poiché le aziende, attraverso i processi di Green Computing, sono in grado di ridurre significativamente il consumo di energia elettrica, traducendosi in importanti risparmi sui costi.

Tuttavia, per quanto i sistemi fisici possano essere ottimizzati e/o alimentati da fonti rinnovabili e sostenibili, se il software in esecuzione su tali sistemi utilizza più risorse hardware del necessario, i risparmi energetici risulteranno vani.

Se le infrastrutture IT diventano più sostenibili, anche il software che vi gira sopra deve esserlo. È così che nasce il Green Software Development, un ramo dell’ingegneria informatica che mira a concretizzare la filosofia del Green Computing concentrandosi sull’ottimizzazione del software. Mentre il Green Computing opera sugli aspetti fisici, strutturali e sociali dell’IT, il Green Software Development agisce su quelli immateriali e digitali.

Il team di Asternox è specializzato nella ricerca in Green Computing e Green Software Development. Nonostante ciò, ad oggi affrontiamo ancora alcune criticità legate alla definizione precisa e alla misurazione delle emissioni associate allo sviluppo software.

Questa complessità è dovuta a diversi fattori, tra cui:

  • la definizione di standard e strumenti per il monitoraggio dei sistemi software e delle macchine su cui vengono eseguiti;
  • l’intangibilità intrinseca del software, caratterizzata da molteplici dinamiche;
  • la varietà di macchine e infrastrutture su cui il software viene eseguito, oltre ad altri elementi correlati.

Tuttavia, in quanto esperti del settore, riconosciamo che è nostro dovere sviluppare e implementare metodi di misurazione basati su evidenze concrete. Il nostro obiettivo è ottenere stime il più possibile accurate e rappresentative delle emissioni reali del software, contribuendo così a una maggiore sostenibilità dell’industria tecnologica.

Numerosi team di ricerca e sviluppo stanno progredendo nella creazione di software orientato a un monitoraggio efficiente. Un esempio tra tutti è Scaphandre, che si propone di consentire a qualsiasi azienda o professionista di misurare il consumo energetico dei propri servizi tecnologici e di ottenere tali dati in una forma facilmente integrabile con qualsiasi catena di strumenti di monitoraggio o analisi. Molti altri team sono impegnati nella ricerca e nello sviluppo di strumenti di monitoraggio, a dimostrazione di una forte volontà da parte del mondo degli sviluppatori di creare prodotti software il più possibile ottimizzati ed “energeticamente neutri”.

Come team di sviluppo, in Asternox ci siamo posti l’obiettivo di analizzare il mondo del web per proporre e sviluppare una soluzione capace di riflettere i concetti di Green Computing e Green Software Development. È in questo modo che supportiamo Airizon nel suo obiettivo di produrre “soluzioni intelligenti per un cielo pulito”.

Ridurre il consumo digitale attraverso uno sviluppo web ottimizzato

Come hanno giustamente sottolineato i colleghi di Airizon, molte tecnologie digitali producono un’impronta di carbonio molto elevata. Le emissioni generate dall’invio di una singola email sono trascurabili, ma il loro impatto diventa significativo se si considera che ogni giorno vengono inviate circa 227 miliardi di email. Lo stesso vale per un’attività semplice e frequente come la navigazione sul web.

Seguendo l’esempio dei colleghi di Airizon, che hanno sviluppato un sistema per compensare le emissioni legate alle email, in Asternox ci impegniamo a studiare le emissioni generate dalla navigazione web e a esplorare modalità efficaci per compensarle.

La domanda che ci siamo posti è: qual è l’impatto ambientale dei siti web e delle web-app su Internet? E, soprattutto, perché hanno un’impronta di carbonio così elevata? La risposta è semplice: non può essere determinata con precisione, almeno non senza effettuare calcoli approfonditi.

Per loro natura, gli elementi hardware e software non sono facilmente quantificabili o misurabili. Sarebbe più semplice calcolare quanti chicchi di riso esistono nel mondo piuttosto che quantificare ogni sistema informatico connesso a una rete o anche solo ospitato su una piattaforma digitale.

Il consumo fisico di questi elementi sarà sempre diverso, anche se si misura lo stesso software su macchine differenti, proprio a causa delle diverse architetture sottostanti.

Nonostante ciò, è possibile ricreare condizioni simili o favorevoli per misurare in modo approssimativo l’efficacia e l’efficienza di determinate soluzioni sulle proprie macchine e/o servizi cloud. L’obiettivo di uno degli esperimenti più recenti di Asternox è strumentare tali misurazioni e stabilire uno stack di sviluppo web sostenibile basato sulle metriche più rilevanti.

Come esempio, consideriamo il sito web di Airizon, sviluppato e progettato da Asternox utilizzando il nostro stack di sviluppo: attualmente consuma 458 megabyte di RAM e 0,01 vCPU, sia in condizioni di utilizzo massimo sia in stato di inattività.

Per “utilizzo massimo” si intende la condizione operativa in cui si verifica il carico di lavoro più elevato, mentre lo stato “idle” descrive una situazione in cui il sito è attivo e funzionante, ma non sta gestendo richieste o traffico significativo.

I servizi che consumano di più sono il client, con 250 megabyte di RAM, e il server, con 131 megabyte di RAM. Inoltre, le Content Delivery Network (CDN) e il gateway email consumano complessivamente 77 megabyte di RAM.

Per avere un termine di paragone, utilizziamo WordPress, il Content Management System (CMS) più diffuso. Un sito simile creato in WordPress, senza plugin aggiuntivi, con una sola pagina oltre alla home page e utilizzando un tema base, riporta un consumo medio di 613 megabyte di RAM e 0,3 vCPU in condizioni di picco, mentre in stato di inattività il consumo scende a 0,01 vCPU. Se invece si aggiungono plugin attivi e si installa un tema più complesso, il sito consuma fino a 1,32 GB di RAM e 0,3 vCPU in condizioni di picco.

È evidente che un sito web più complesso richiede maggiori risorse, con un conseguente aumento delle emissioni. Pertanto, anche un sito apparentemente “semplice” non dovrebbe avere un impatto così elevato in termini di consumo di risorse.

La nostra infrastruttura tecnologica è progettata utilizzando una serie di microservizi, ciascuno con un compito specifico e ben definito. A differenza di WordPress, che centralizza la maggior parte delle funzionalità in un unico ambiente di esecuzione e le estende tramite plugin, la nostra architettura suddivide le funzionalità in microservizi separati. Questo approccio consente di mantenere un consumo complessivo di risorse significativamente inferiore.

In particolare, ogni microservizio è progettato per svolgere una funzione specifica, rendendo l’intera applicazione più modulare e più facile da gestire. I componenti possono essere aggiornati, manutenuti e scalati in modo indipendente. La suddivisione delle funzionalità in microservizi riduce il consumo complessivo rispetto a un’architettura monolitica come WordPress, in cui tutte le funzionalità sono raggruppate, aumentando l’uso delle risorse.

Tuttavia, questa architettura presenta sia vantaggi sia svantaggi: da un lato, l’integrazione dei microservizi può risultare complessa, poiché ciascun servizio deve essere personalizzato e adattato alle esigenze del cliente; dall’altro, la modularità dei microservizi offre numerosi benefici, tra cui la possibilità di scegliere il linguaggio di programmazione più adatto per ogni servizio, la gestione separata dei domini funzionali, la facilità di aggiornamento e manutenzione, il miglioramento della sicurezza e l’ottimizzazione del consumo di risorse.

Benefici ambientali dei linguaggi compilati come Rust rispetto ai linguaggi con garbage collector

Nel contesto della sostenibilità ambientale, l’efficienza dei linguaggi di programmazione gioca un ruolo fondamentale. I linguaggi compilati come Rust offrono diversi vantaggi rispetto ai linguaggi con garbage collector come JavaScript e Python, in particolare in termini di consumo energetico e utilizzo delle risorse.

Efficienza e prestazioni

I linguaggi compilati convertono il codice direttamente in linguaggio macchina prima dell’esecuzione. Questo processo produce binari altamente ottimizzati, in grado di eseguire le attività più rapidamente e con un minore overhead computazionale. Rust, in particolare, è progettato con le prestazioni come priorità, offrendo un controllo di basso livello sulle risorse di sistema senza sacrificare la sicurezza.

Al contrario, i linguaggi con garbage collector interpretano o compilano il codice in fase di esecuzione, introducendo un overhead aggiuntivo. I garbage collector analizzano periodicamente la memoria per recuperare gli oggetti inutilizzati, consumando cicli di CPU ed energia. Questo processo può causare colli di bottiglia nelle prestazioni e un aumento del consumo energetico.

Gestione della memoria

Il sistema di gestione della memoria di Rust, basato sui concetti di ownership, borrowing e lifetimes, garantisce che la memoria venga gestita in fase di compilazione, eliminando la necessità di un garbage collector. Questo approccio evita l’overhead associato alla garbage collection e consente un utilizzo più prevedibile della memoria, riducendo il consumo energetico.

Nei linguaggi con garbage collector, l’ambiente di runtime monitora continuamente l’allocazione e la deallocazione della memoria, il che può portare a inefficienze come la frammentazione della memoria e pause periodiche per la garbage collection, aumentando complessivamente l’impronta energetica delle applicazioni.

Minore consumo energetico

Numerosi studi hanno dimostrato che i linguaggi compilati tendono a essere più efficienti dal punto di vista energetico rispetto ai linguaggi interpretati o con garbage collector. Uno studio pubblicato sul Journal of Green Software Engineering evidenzia che linguaggi compilati come Rust e C consumano significativamente meno energia per attività equivalenti rispetto a linguaggi come Python e JavaScript.

La ragione è duplice: da un lato, i linguaggi compilati eseguono le operazioni più rapidamente, riducendo il tempo in cui la CPU è attiva; dall’altro, presentano un minore overhead a runtime, permettendo alla CPU di entrare più spesso in stati di basso consumo energetico.

Utilizzo delle risorse

La gestione efficiente delle risorse offerta da Rust contribuisce anche a un migliore utilizzo dell’hardware. Ciò significa che sono necessari meno server per gestire lo stesso carico di lavoro, con una conseguente riduzione della produzione di hardware, dei rifiuti elettronici e del consumo energetico complessivo. Un uso efficiente delle risorse nei data center, che sono grandi consumatori di elettricità, può avere un impatto positivo significativo sulla sostenibilità ambientale.

Al contrario, i linguaggi con garbage collector spesso richiedono hardware più potente per gestire le stesse attività in modo efficiente, con un conseguente aumento del consumo energetico e dell’impatto ambientale.

I linguaggi compilati come Rust offrono quindi notevoli benefici ambientali rispetto ai linguaggi con garbage collector. Le loro prestazioni efficienti, la gestione prevedibile della memoria, il minor consumo energetico e il migliore utilizzo delle risorse li rendono scelte più sostenibili per lo sviluppo software. Adottando Rust, sviluppatori e organizzazioni possono contribuire a ridurre l’impatto ambientale delle risorse informatiche, promuovendo pratiche tecnologiche più verdi e sostenibili.

Conclusione

I progressi tecnologici sono stati il motore del progresso della società moderna. Sebbene offrano numerosi vantaggi, pongono anche sfide ambientali significative: tutti siamo consapevoli dell’elevato consumo energetico dell’intelligenza artificiale, dei big data, dell’Internet of Things, delle blockchain e di molte altre tecnologie. La domanda energetica di queste infrastrutture cresce in modo esponenziale, contribuendo in maniera rilevante alle emissioni di carbonio, soprattutto quando l’energia proviene da fonti non rinnovabili.

Tuttavia, il futuro dell’IT sostenibile è promettente. Adottando un approccio multifattoriale che includa efficienza energetica, progettazione sostenibile dei prodotti, sviluppo di software ecologico, quadri normativi adeguati e sensibilizzazione pubblica, possiamo garantire che la crescita tecnologica contribuisca a un futuro sostenibile.

L’investimento più significativo che le aziende possano fare nel prossimo futuro è promuovere la sostenibilità a lungo termine del proprio software e della propria architettura IT. Lo sviluppo sostenibile non riguarda solo l’efficienza, ma anche la responsabilità sociale ed etica.

Fare la differenza oggi è più importante che mai. Tutti i professionisti devono fare la propria parte per costruire un futuro sostenibile.