Sostenibilità digitale: un termine, molti significati?
Come abbiamo già constatato nell'ultimo articolo, la sostenibilità digitale consiste fondamentalmente nel produrre risparmiando le risorse, nell'utilizzare le capacità in modo efficiente e nel non vivere al di sopra del proprio fabbisogno e di quello delle generazioni future. Il nostro sviluppatore Carlo ha per noi una definizione un po' più precisa: «Sostenibilità digitale significa concepire e costruire software e sistemi in modo che siano rispettosi dell'ambiente, efficienti dal punto di vista energetico e utilizzabili a lungo termine.»
Suona bene, ma come si può attuare tutto questo nello sviluppo e nell'utilizzo del software?
Naturalmente qui non esiste, come per la maggior parte dei temi di questo tipo, un unico fattore che cambi tutto: si tratta di un processo continuo che comprende diversi ambiti. Li abbiamo raccolti qui:
Tutti i fattori legati all'utilizzo del software: si va dall'impiego di elettricità verde all'ottimizzazione del raffreddamento, fino alla valorizzazione del calore.
È determinante l'efficienza con cui il software è realizzato, quindi quanto è complesso il suo codice sorgente o quale linguaggio di programmazione viene utilizzato.
L'interazione tra hardware e software: quanto bene il software viene sfruttato sull'hardware corrispondente e quanto risulta quindi efficiente l'utilizzo dell'hardware?
Vediamolo ora più da vicino.
Uso efficiente dell'energia: elettricità verde, raffreddamento e ottimizzazione del calore
Il software ha bisogno di energia: è un dato di fatto che non possiamo cambiare. Ciò su cui però possiamo incidere è l'origine dell'elettricità utilizzata per il nostro software. L'impiego di elettricità verde, cioè proveniente da fonti rinnovabili, è nettamente più rispettoso dell'ambiente e contribuisce così a un software più sostenibile. Inoltre l'utilizzo del software sui server genera moltissimo calore, per cui anche la gestione sostenibile di quest'ultimo è un punto importante.
Soprattutto i centri di calcolo hanno qui vantaggi decisivi, poiché gli edifici possono ad esempio essere costruiti in modo che i fluidi di raffreddamento come aria o acqua vengano convogliati in modo ottimale e il raffreddamento risulti così molto efficiente. Esistono inoltre concetti con cui il calore prodotto viene utilizzato per riscaldare quartieri residenziali: naturalmente estremamente efficace.
Un software sostenibile è un software scritto in modo efficiente
Oltre all'uso di elettricità verde e all'ottimizzazione di calore e raffreddamento, una parte essenziale dipende da come il software è programmato, ossia da come appare il suo codice sorgente. Un software scritto in modo efficiente significa mantenere il codice sorgente il più semplice possibile, il che porta a prestazioni migliori e quindi a un funzionamento più sostenibile.
Carlo ci spiega al riguardo: «Un codice sorgente complesso significa sempre maggiori costi di sviluppo e manutenzione, perché è più difficile da leggere e serve di conseguenza più tempo per venirne a capo. Ha inoltre più problemi complessi che nemmeno si vedono, ma che consumano comunque energia, benché non sarebbe affatto necessario. Ciò significa che il codice sorgente andrebbe mantenuto il più semplice possibile.»
Allo stesso tempo Carlo ci racconta anche delle difficoltà nel creare software efficiente e sostenibile:
«Scrivere software efficiente è impegnativo; scrivere software parsimonioso è impegnativo. Riguarda l'intera architettura del software. Ormai abbiamo volumi di dati sempre maggiori, vogliamo raccogliere ed elaborare sempre più dati. Tutti i processi devono essere più ottimizzati, più efficienti, per poter contrastare il consumo energetico dei volumi di dati in crescita.»
Programmare software in modo più efficiente costa quindi inizialmente tempo e denaro, ma è sensato nel lungo periodo per ridurre costi, oneri e consumo energetico.
In questo contesto anche la scelta del linguaggio di programmazione è estremamente interessante per il bilancio energetico del software: uno studio di Accenture ha rilevato che il linguaggio scelto può ridurre il consumo energetico di un software fino al 50 per cento! Emerge quindi che in alcuni ambiti c'è ancora margine di miglioramento.
Hardware e software: conta l'utilizzo ottimizzato
Infine, da non dimenticare: l'interazione tra software e hardware. È determinante quanto efficientemente l'hardware venga sfruttato dal software installato, così da sprecare il meno possibile in termini di prestazioni.
Carlo spiega al riguardo: «Hardware e software sono strettamente collegati tra loro. Sul server, quindi sull'hardware, si trova un numero definito di risorse, che si tratti della memoria di lavoro o del numero di core del processore. Si tratta allora di adattarvi il software nel modo più efficiente possibile, così che le risorse non vengano sprecate, bensì utilizzate al meglio. L'obiettivo è che sull'hardware giri quanto più software possibile senza che i programmi si ostacolino a vicenda sottraendosi risorse.»
Un utilizzo dell'hardware il più elevato possibile è quindi altamente rilevante dal punto di vista della sostenibilità. Stime del 2015 concludevano ad esempio che fino al 30 per cento dei server nei centri di calcolo gira a vuoto, senza fornire alcuna prestazione. In questo contesto è interessante il confronto tra i due modelli cloud privato e cloud pubblico: mentre nel cloud privato vengono archiviati ed elaborati solo i dati di una singola azienda, nel cloud pubblico si svolgono i processi di più aziende. Poiché in un cloud pubblico le risorse possono così essere condivise, qui è possibile un utilizzo molto più efficiente rispetto a un cloud privato.
Carlo ci spiega: «Se ho un server qui o utilizzo un cloud privato, diventa estremamente difficile per me sfruttare pienamente le risorse disponibili sul server. Ciò significa che girano a vuoto, sono disponibili, sono riservate, non vengono utilizzate per nient'altro, ed è proprio così: effettivamente non vengono utilizzate per nient'altro. Nel cloud pubblico si dispone invece spesso già di ottimizzazioni da parte del cloud provider, così che sia stabilito che cosa va su quale server, per sfruttarlo il più possibile.»
Molti spunti interessanti sul campo della sostenibilità digitale: ringraziamo Carlo per l'intervista!




