piantina che buca un foglio

È possibile ridurre l’impatto digitale sull’ambiente?

"Se Internet fosse un Paese, sarebbe la quarta nazione più inquinante al mondo"
Freitag, Berners-Lee, Widdicks, Knowles, Blair e Friday
 
La trasmissione dei dati, il loro stoccaggio, la consultazione e l’elaborazione sono tutte attività digitali che richiedono importanti risorse energetiche. E con la diffusione delle intelligenze artificiali lo scenario sarà ancora più d’impatto sulle emissioni di CO2.
Quindi anche il mondo digitale inquina e ha un impatto sempre maggiore sull’ambiente. Basti pensare che l’energia utilizzata dal web in un giorno (1,14 TWh) è la stessa utilizzata dalla città di New York in 38 giorni.
 

La sobrietà digitale è la direzione da prendere, chiunque operi nel settore digitale può contribuire implementando strategie di ottimizzazione per ridurre sensibilmente i consumi e nel contempo abbattere costi e tempi di caricamento. Inoltre, scegliere soluzioni a basso impatto aumenta la brand awarness e migliora il referenziamento.
 
In che modo il web impatta sull’ambiente?
 
Si è soliti pensare che il web sia virtuale, qualcosa di immateriale e quindi senza peso. In realtà gli elementi (come font, immagini, video, ecc.) che compongono una pagina hanno un peso (di solito kB o MB) che influisce sulla velocità di caricamento dei contenuti. La potenza di calcolo allocata server-side e client-side per elaborare il codice e l’infrastruttura è un ulteriore fattore di impatto sull’ecosostenibilità.

Le tecniche di caching, le chiamate http (messaggi intercorsi tra browser e server) possono aiutare a ottimizzare la velocità e il recupero dei dati. Infatti, ogni volta che viene fatta una ricerca o si apre una pagina, vengono effettuate chiamate al server che, se non gestite in maniera ottimale, possono richiedere parecchio tempo ed energia.
I trucchi del mestiere
 

Attraverso i processi produttivi e le scelte tecnologiche facciamo dell’ecosostenibilità un obiettivo fondamentale, adottando costantemente tecniche di ottimizzazioni che ci portano a risultati di alto livello.
 

 

Pattern a isole
 
Utilizziamo il pattern a isole per avere componenti leggeri, l’architettura del sito è costituita da servizi che si “accendono” solo quando necessari. In questo modo non sovraccarichiamo il sistema e la struttura rimane agile e snella. Ad esempio, in una pagina prodotto, carichiamo gli articoli correlati a fine pagina solo quando l’utente li visualizza nel browser.
 
Caching aggressivo
 
Spesso il contenuto è lo stesso per più chiamate, quindi perché non metterlo in cache? In questo modo abbattiamo tempi e costi per computare una sola volta il contenuto che migliaia di utenti visualizzeranno. Le cache possono essere applicate a tutti i livelli (database, server e browser) considerando e portando attenzione alle necessità di aggiornamento del dato. Una sfida importante che però porta a vantaggi enormi.
 
Codice snello e ottimizzato
 
Scriviamo solo il codice necessario e lo ottimizziamo progressivamente. Valutiamo con attenzione se introdurre nuove librerie e misuriamo sempre l’impatto prestazionale di ogni pezzo di codice. Per esperienza, le librerie che fanno troppe cose sono da evitare in favore di soluzioni snelle e mirate. La programmazione asincrona ci permette di parallelizzare le attività e ridurre i tempi di attesa in cui il server deve elaborare informazioni.
 
Contenuto giusto nella dimensione giusta
 
Le immagini sono tra i contenuti a più alto impatto ambientale, per questo le ottimizziamo in formati ad alta compressione.
Se nella pagina c’è un’immagine di piccole dimensioni che potrebbe occupare pochi Kilobyte, elaboriamo automaticamente l’originale (che pesa magari qualche Megabyte) e alla prima richiesta la ottimizziamo per quello specifico contesto.
 
Bundling e miniaturizzazione
 
Sono ancora tanti i siti che travolgono il browser con decine e decine di piccoli file quando è decisamente più efficiente impacchettare tutti i file in una sola chiamata con la tecnica del bundling. È un po’ come andare in posta dieci volte per ritirare altrettanti pacchi, non si fa prima a fare la coda allo sportello una volta sola? In questo modo si evita di raggiungere il limite di chiamate concorrenti e rallentare la pagina. Una volta che abbiamo recuperato il pacchetto, è possibile diminuirne il peso con la miniaturizzazione del codice, rimuovendo tutto ciò che rende il codice leggibile a un umano ma che è totalmente inutile per una macchina (spazi, a capi, nomi lunghi di variabile, commenti, ecc.).
 
 
Poiché nel mondo del digitale i tempi di obsolescenza sono molto brevi e le tecniche sono in continuo mutamento, attuiamo una progressiva ottimizzazione dell’architettura, controllando i nostri progetti con strumenti dedicati come Lighthouse, Chrome DevTools, Karma Metrix e Website Carbon in modo da poterne monitorare i livelli di consumo ed emissioni di CO2.
Ottimizzare un progetto web è un percorso impegnativo che richiede un approccio non solo tecnico ma anche strategico.
Molte delle implementazioni richiedono un ripensamento dell’ergonomia e dell’architettura. Ci sono comunque soluzione attuabili fin da subito che portano a un sensibile miglioramento di prestazioni e consumi.
 

E il tuo sito come è messo?