L'inserimento di gate di sostenibilità nel ciclo di vita del software

ago 22, 2024 | Software Intelligence in Action L'inserimento di gate di sostenibilità nel ciclo di vita del software

In questo articolo, esploreremo come l'inserimento di gate di controllo nel ciclo di vita del software possa migliorare la sostenibilità green del codice sorgente. Misurare e ridurre la potenza dissipata e le emissioni di CO2 è diventato, infatti, un obiettivo fondamentale.

In ogni gate è prevista la misurazione statica del codice, il calcolo di un indicatore Green e di un eventuale action plan di rimedio specifico per azzerare gli scostamenti da un valore di compliance green fissato. Questo processo rappresenta un'estensione del miglioramento green del parco applicativo di produzione, rendendo le applicazioni più efficienti e sostenibili.

Il tema delle emissioni di CO2 e il ruolo dell'ICT

Il settore ICT è parte del problema delle emissioni di CO2 ma può anche offrire soluzioni per ridurle.. Il tema della decarbonizzazione in ambito ICT comprende alcuni aspetti al contorno che possiamo individuare come segue:

  • la progettazione green degli edifici ove le persone prestano il loro lavoro
  • la progettazione green dei dispositivi utilizzati dagli sviluppatori
  • le modalità con cui tali dispositivi sono utilizzati dal personale
  • la gestione delle attività che possono essere svolte da remoto contenendo gli spostamenti della forza lavoro
  • l’utilizzo delle energie rinnovabili
  • Progettazione energeticamente efficiente delle reti e dei data center.

L’elemento su cui vogliamo focalizzare l’attenzione, però, è proprio il codice applicativo. In altri termini evidenziare come un software scritto ignorando delle regole green codificate delle best practice di sostenibilità conduca a consumi più alti rispetto ad un riferimento virtuoso che realizzi le medesime funzionalità. E tali consumi non sono certo trascurabili o di piccola entità. Basti pensare che il 50% del consumo energetico di un server è legato al codice applicativo, percentuale destinata a salire sino al 65% se il data center in questione è ad alta efficienza energetica e addirittura al 94% se ci troviamo di fronte a piattaforme iperscalabili. Quanto più l’ambiente dove il codice si sviluppa e dove il software viene eseguito è sostenibile, quanto più si evidenzia che la qualità del codice, intesa come sostenibilità dello stesso, diviene determinante per condurre al contenimento delle emissioni di CO2. Il contenimento del consumo di potenza di una applicazione, attraverso il miglioramento della qualità del codice è realizzabile a partire dalla disponibilità di uno strumento di misurazione che calcoli un KPI specifico di sostenibilità e indichi una serie di azioni di rimedio che permettano un miglioramento di tale indice fino alla compilance piena o desiderata.

La soluzione CAST di misurazione di sostenibilità

CAST Imaging offre tra le sue funzionalità la misura oggettiva della sostenibilità green di una applicazione basandosi sulla elaborazione dell’indice ASCRSM standard OMG. L’indice di sostenibilità è in diretta correlazione con l’energia consumata dal codice. Un aumento dell’indice, della compliance Green del codice si ribalta direttamente sulla riduzione potenziale di CO2 emessa.

Il calcolo dell’indice ASCRSM viene realizzato valutando un nutrito insieme di regole che impattano direttamente sulla sostenibilità del codice, normate ISO 5055, di natura sintattica e architetturale, specifiche per ogni tecnologia sotto misurazione, che vengono verificate durante la scansione del codice, ove siano applicabili. La contravvenzione ad una di queste regole genera una violazione che impatta sull’indice suddetto. CAST Imaging all’atto del calcolo dell’indice ASCRSM, susseguente all’analisi statica del codice, provvede a definire anche un piano di rimedio da applicare al software per ottenere un miglioramento mirato di compliance con previsione del costo degli interventi.

Ad esempio, un codice con un indice di compliance dell'84.52% potrebbe ridurre la potenza dissipata del 27% portando l'indice al 100%, con un effort di 823 giorni uomo. È possibile definire un piano di rimedio per migliorare progressivamente l'indice di sostenibilità.

Compliance_ASCRSM   Piano_di_Rimedio_Sostenibilità

Il processo di valutazione/miglioramento green su un parco applicativo di produzione

L’indice di sostenibilità Green è un indicatore piuttosto giovane nel contesto della valutazione del codice, che storicamente ha interessato la sicurezza e la qualità intesa come robustezza, facilità di manutenzione, leggibilità, trasferibilità. Tipicamente un primo approccio di un’azienda che desidera valutare e incrementare l’indice green del proprio parco applicativo passa per un lavoro di indagine massivo sull’ambiente di produzione. In tal caso, non avendo a disposizione risorse illimitate e quindi cercando di operare solo dove valga la pena, è utile procedere ad una preselezione delle aree applicative oggetto di valutazione green. Tale processo può basarsi in principio su considerazioni inerenti allo stack tecnologico (ci sono tecnologie di sviluppo più energivore di altre), al deploy fisico, e al carico di lavoro, inteso anche come numero di utenti per sessione, che ogni applicazione sostiene. Dopo questa fase si può procedere ad una prima analisi statica del codice volta ad una selezione dei componenti critici. CAST offre la soluzione Highlight proprio a questo scopo: la piattaforma fornisce uno strumento per stilare in maniera rapida e sintetica una vera e propria classifica green delle applicazioni mediante scansione dei sorgenti e quindi ottenere una lista su cui concentrare l’attenzione. In altri termini si arriva alla definizione di un insieme di applicazioni di tipo Emission Critical su cui concentrare il tiro. Solo a questo punto è opportuno sottoporre il codice selezionato alle misurazioni volte a determinare l’indice ASCRSM e i piani di rimedio.

L’implementazione di un processo di rimedio continuo con gate nella catena SCM

Valutare e bonificare un parco applicativo esistente può essere lungo e costoso.

Ciò che è veramente utile in prospettiva invece è applicare le best practice green già nelle prime fasi di vita del codice in modo che vengano promossi in produzione componenti con compliance di sostenibilità green di alto livello. Per ottenere questo risultato è opportuno inserire gate green nel ciclo di vita del software a partire già dagli ambienti di sviluppo. Tale approccio realizza anche un processo di Vendor Management basato sulla sostenibilità. In questo caso il tema è particolarmente delicato in quanto gate bloccanti nella catena di toolchain potrebbero creare seri problemi ai rilasci programmati del codice e alle esigenze di business dell’azienda.

Risulta opportuno in questo contesto dividere le applicazioni in due principali categorie: le applicazioni “nuove” e quelle già presenti in esercizio che vengono sottoposte a modifiche manutentive e di avanzamento.

Nel primo caso, visto che si parte da zero, si può imporre che ad ogni rilascio la compliance Green del codice misurato sia prossima all’ideale, ovvero al 100%, quindi definire soglie ambiziose, prossime all’idealità o distanti da questa qualche punto decimale.

Nel caso di applicazioni già presenti in esercizio, per non rendere bloccante la misurazione green in termini di tempi di rilascio, l’approccio vincente è del tipo conservativo: il vincolo per ogni rilascio consiste nell’imporre che nessuna nuova violazione Green possa essere aggiunta al codice. Risulta necessaria una misurazione di baseline del codice, ad un tempo t0, che rappresenti un riferimento per le successive valutazioni green a cui il codice sarà sottoposto attraversando i gate. La piattaforma CAST garantisce nativamente la classificazione in violazioni già presenti nel codice (pending) distinguendole da quelle aggiunte nell’ultima versione (added) rendendo implementabile il processo descritto.

In questo contesto, dato che la misurazione è automatica e integrata con il sistema SCM (Software Control Manager), e considerando l'importanza e l'attualità della tematica, oltre alle esigenze di business che separano le applicazioni nuove da quelle esistenti, è consigliabile far transitare tutto il codice attraverso i gate di sostenibilità per una valutazione completa. In alternativa, per ridurre le aree di analisi, si potrebbero individuare applicazioni "Emission Critical" seguendo i due processi sequenziali di preselezione descritti in precedenza, e procedere alla misurazione green solo su questo insieme ristretto.