Salvare il pianeta con scelte tecnologiche più intelligenti | di Paul Grainger | ottobre 2022

Come dovrebbe rispondere un CIO quando gli viene chiesto di costruire la propria suite di analisi dei dati interamente in Python, che ora è paragonabile allo spreco di energia del mining di Bitcoin?

Gli obiettivi ESG stanno diventando sempre più popolari e, se non presi sul serio, non sarà solo l’ambiente a risentirne (il che, per essere chiari, è sicuramente il problema più grande qui!). Secondo l’Harvard Law School Forum of Corporate Governance, il 57% delle società quotate in S&P utilizza attivamente le metriche ESG nella retribuzione dei dirigenti.

Questo passaggio al riconoscimento di questi obiettivi ha acquisito slancio negli ultimi anni. Gli investitori, i dipendenti e il pubblico in generale chiedono cambiamenti sia sociali che ambientali. Anche i fondatori di startup stanno esaminando i loro investitori per verificare le loro credenziali ESG. Ciò nonostante l’attuale clima economico in cui i finanziamenti VC sono diminuiti del 23% rispetto al secondo trimestre del 2022.

Raggiungere questi obiettivi è impegnativo. Apportare cambiamenti per combattere il cambiamento climatico e avere un impatto positivo sulla società richiede un cambiamento fondamentale nel modo in cui operiamo.

Un’area che tutte le aziende potrebbero avviare è quella di esaminare i modi in cui utilizzano la tecnologia. È possibile apportare modifiche significative qui per ridurre l’impatto ambientale e creare una società più equa.

Utilizza lo strumento più efficiente dal punto di vista energetico a tua disposizione. Ma qual è il migliore?

Nel documento “Energy Efficiency Across Programming Languages” di Rui Pereira et al, le prestazioni di 20 ben noti linguaggi sono state confrontate su più test.

Non sorprende che molti dei linguaggi compilati di livello inferiore abbiano prestazioni significativamente migliori rispetto ai linguaggi interpretati come Python. Questo significa che dovresti rifattorizzare tutto il tuo codice Python esistente in C/Rust? Affrontiamo la nostra domanda principale.

Assolutamente da notare! Sebbene i linguaggi interpretati siano meno efficienti di quelli precompilati, non tutte le attività di elaborazione sono vincolate alla CPU come i test eseguiti nel documento. Considera il caso d’uso di Python come un wrapper attorno a un’operazione di database complessa. L’effettiva attività di elaborazione pesante viene gestita altrove, ad esempio eseguendo una query complessa sul database.

Direi che in questo caso la sostituzione di Python ha un impatto negativo sulla parte di diversità e inclusione di ESG. Data l’ampia portata e accessibilità del linguaggio di programmazione Python, è disponibile un pool di talenti più ampio tra cui scegliere.

Invece, suggerisco di profilare la tua infrastruttura esistente per i colli di bottiglia della CPU. Usa strumenti Open Source come cProfile per Python per identificare le inefficienze nel tuo codice. Esegui suite di benchmarking come parte delle pipeline CI/CD per rilevare il degrado delle prestazioni tra le versioni dell’applicazione.

Solo quando hai preso questo il più lontano possibile dovresti prendere in considerazione un costoso esercizio di refactoring.

Può sembrare ovvio, ma vedo che le persone prendono decisioni sbagliate su come usano la loro tecnologia e i servizi dati, me compreso.

All’inizio della mia carriera, ho costruito una pipeline di dati per produrre KPI giornalieri. Queste analisi sono state ottenute da un servizio PostgreSQL e quindi reinserite nello stesso servizio. Queste metriche sono state poi rese disponibili ai nostri utenti tramite una dashboard.

Sembra semplice vero? Anche se questo ha funzionato bene su un piccolo set di dati, non appena abbiamo ridimensionato il carico di produzione, le prestazioni sono state atroci. Non avevo fatto la mia due diligence e controllato altri servizi. Ho scelto PostgreSQL perché era già integrato nell’applicazione, rendendo più facile lavorarci.

Quindi metti in discussione gli strumenti che stai utilizzando e se sono i migliori per il lavoro. Per me, data la creazione dei dati e il modello di accesso con cui avevo a che fare, un database OLAP come ClickHouse sarebbe stata la scelta migliore.

Con la pipeline in esecuzione molto più veloce e le query che impiegano meno tempo, ciò avrebbe portato a clienti più soddisfatti.

Per quanto riguarda gli obiettivi ESG? Un’applicazione più efficiente significa un minor consumo di risorse. Anche se un rapporto potrebbe non essere sufficiente per spostare l’ago, prendi in considerazione la possibilità di esaminare le sezioni della tua applicazione ad alta intensità di calcolo e chiedi se la tecnologia che stai utilizzando viene davvero utilizzata come previsto.

Ai miei tempi a Wall St, ho mantenuto l’infrastruttura dati per i team che lavoravano ai trading desk. Con i volumi di dati in continuo aumento, dovevamo prepararci con un anno di anticipo e ordinare i nuovi server con (speriamo!) la quantità di potenza di calcolo e RAM di cui avevamo bisogno. Abbiamo sempre sopravvalutato perché l’ultima cosa che volevi era che il tuo server cadesse in una giornata impegnativa come un ribilanciamento dell’indice.

Era prima del cloud, e guardando indietro dobbiamo aver sprecato così tanta energia. Avevamo la capacità aggiuntiva per questi eventi, ma i server erano rimasti per lo più inattivi. Come notato da R. Basmadjian, F. Niedermeier e H. De Meer, in “Modellazione e analisi del consumo energetico dei server inattivi”, un server inattivo può utilizzare fino al 66% del suo consumo energetico totale.

Sfortunatamente ho visto questa mentalità di over-provisioning penetrare anche nelle menti delle persone responsabili. Nonostante le promesse di ridimensionamento su richiesta, c’è ancora il desiderio di prepararsi eccessivamente per eventi rari. Peggio ancora, i picchi di volume attesi come il Black Friday o il ribilanciamento trimestrale di S&P ci portano a mantenere un’infrastruttura fortemente gonfiata in previsione di questi giorni.

Esamina le tue metriche. È ragionevole concedersi un po’ di margine per i picchi, ma se i tuoi server sono quasi inattivi dovresti ripensare alla tua infrastruttura. Se stai utilizzando un provider gestito, ridimensiona! Se non forniscono questa funzionalità, richiederla o passare a un provider che lo fa.

Come ci ricorda Josep Prat nel suo post sul blog “Staying sane in Open Source”, la popolare libreria OpenSSL è gestita da una sola persona. Se quella persona decide di averne abbastanza a causa del burnout o dell’abuso nella comunità Open Source, cosa accadrà ai milioni di progetti e applicazioni che dipendono da questo!

Sfortunatamente molte aziende oggi non restituiscono alla comunità Open Source, nonostante utilizzino questi strumenti in applicazioni business critical. Diventando contributor, ci sono numerosi vantaggi, sia per l’azienda che per i suoi obiettivi ESG.

In primo luogo, investendo in progetti Open Source, le aziende possono garantire che i loro componenti critici rimangano aggiornati e correggere eventuali vulnerabilità che potrebbero sorgere. Inoltre, essendo un contributore affidabile a questi progetti, puoi aiutare a orientare la direzione e avere voce in capitolo sulle caratteristiche che la community svilupperà successivamente.

Ancora più importante, l’Open Source è disponibile per tutti. Come abbiamo discusso in precedenza, questo abbassa la barriera all’ingresso di molte persone per apprendere la tecnologia. Con un maggiore accesso ci sono più opportunità per un pool di talenti diversificato quando si tratta di assumere.

La discussione qui si è concentrata principalmente sull’aiutare le aziende a raggiungere i propri obiettivi ESG attraverso cambiamenti nel modo in cui la tecnologia viene utilizzata. Tuttavia, il vantaggio finanziario, la reputazione e la fiducia degli investitori non dovrebbero essere le uniche ragioni per perseguire questi obiettivi.

L’ultimo studio delle Nazioni Unite stima che le emissioni attuali aumenteranno le temperature di 2,5°C, un livello ritenuto catastrofico dagli scienziati. Per evitare un’azione in caso di calamità è necessario sia il settore privato che quello privato.

Prendere decisioni tecnologiche più intelligenti non risolverà tutti i nostri problemi. Tuttavia è qualcosa che molti di noi possono controllare e cambiare in meglio.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *