Technology How To

AI generativa: gli strumenti e le strategie per l’automazione dell’IT

L’adozione di strumenti GenAI-based può sgravare il carico di lavoro dei team DevOps, SRE e platform engineering, sia nella produzione del codice, sia nell’automazione del provisioning dell’infrastruttura. I tool che integrano la generative AI vanno comunque utilizzati senza dimenticare le loro limitazioni, e il ruolo della supervisione umana

Pubblicato il 16 Ott 2023

Immagine di vs148 su Shutterstock

Da mesi la AI generativa (GenAI) sta attraendo, oltre al grande pubblico, anche il mondo delle imprese: la promessa è innovare i modelli di business in molti ambiti industriali, e rendere più efficienti i processi. In primo piano, per le organizzazioni IT, che hanno la responsabilità di governare con agilità la sempre più complessa infrastruttura da cui ormai dipende qualunque attività imprenditoriale, c’è l’opportunità, attraverso la GenAI, di accelerare ulteriormente sia i processi di sviluppo e distribuzione del software, sia l’automazione delle operazioni IT, come abbiamo già avuto occasione di illustrare in questo articolo.

Sul piano delle attività di sviluppo software, la GenAI può aiutare in vari modi gli sviluppatori a scrivere e migliorare il codice applicativo: soprattutto, gli strumenti di AI generativa sono in grado di generare codice a partire da descrizioni in linguaggio naturale, possono completare parti di codice, o revisionarlo. Per quanto riguarda invece l’implementazione dell’infrastruttura, la AI generativa può, ad esempio, creare, sulla base di query in linguaggio naturale, codice IaC (Infrastructure as Code). L’approccio IaC si fonda sulla definizione di moduli e file di configurazione che permettono di automatizzare il provisioning delle risorse informatiche richieste per l’esecuzione del software nei diversi ambienti: piattaforme e servizi cloud, infrastrutture on-premise.

GenAI, il salto di qualità rispetto alla AI tradizionale

L’abilità della AI generativa di usare il machine learning (ML) per apprendere da enormi dataset di training e produrre nuovi contenuti, in questo caso nuovo codice, porta a un ulteriore livello anche l’utilizzo delle tecniche di elaborazione del linguaggio naturale (natural language processing – NLP).

I tradizionali assistenti virtuali e chatbot conversazionali AI-based sono solitamente dedicati, e limitati a specifici domini o compiti: usano NLP e ML per comprendere le richieste dell’utente, e possono fornire risposte seguendo regole e template predefiniti. I chatbot basati su AI generativa utilizzano invece tecnologia NLP e LLM evoluti per comprendere meglio il linguaggio naturale, e rispondere a query anche molto complesse, elaborando nuove e originali risposte, personalizzate sulle specifiche necessità dell’utente.

lmpatto sui team DevOps e platform engineering

I chatbot e tool GenAI-based costituiscono potenzialmente un cambio di paradigma per gli ambienti DevOps, SRE (Site Reliability Engineering) e i team di platform engineering (PE). Non solo perché possono generare rapidamente nuovo codice e programmi sulla base di input testuali via prompt, facendo risparmiare tempo nella ricerca di componenti, librerie, API (Application Programming Interface) ma anche perché sono in grado di spiegare il codice, fornendo descrizioni che aiutano lo sviluppatore a comprenderlo. Possono accelerare lo sviluppo di applicazioni web e mobile, e produrre codice ottimizzato per specifiche operazioni. Identificano errori e bug nel codice esistente, razionalizzando la risoluzione degli inconvenienti. E sono in grado di creare e mantenere aggiornata la documentazione che accompagna il codice sorgente (codebase), in continua evoluzione.

Sul versante infrastrutturale, come accennato, i tool basati su GenAI possono dare una grossa mano ai team DevOps, SRE e PE nella creazione del codice IaC. Gestire manualmente l’approccio IaC aumenta infatti la possibilità di commettere inesattezze, e richiede comunque tempo e competenze.

Piattaforme e strumenti GenAI-based

Di conseguenza, nell’ottica di semplificare e velocizzare il lavoro degli ingegneri, stanno comparendo sul mercato vari strumenti di automazione che sfruttano le capacità della AI generativa. Ad aprile, ad esempio, Pulumi ha annunciato l’integrazione nella propria piattaforma IaC di Pulumi Insights, un componente in grado, tra le varie funzionalità, di generare codice IaC a partire da prompt scritti in linguaggio naturale. Già a dicembre 2022 risale comunque il lancio, da parte della società Firefly, dello strumento AIaC (artificial intelligence infrastructure-as-code), un progetto open source basato sul modello ChatGPT di OpenAI.

Il tool, con interfaccia a riga di comando (command line interface – CLI), permette agli utenti di generare codice usando il linguaggio naturale. Attraverso AIaC, spiega Firefly, gli utenti possono semplicemente digitare la configurazione desiderata per la propria infrastruttura, e lo strumento genererà in automatico i template di codice IaC, i commenti e le istruzioni di esecuzione corrispondenti. In tal modo è possibile eliminare la necessità di codifica manuale, creando e aggiornando l’infrastruttura in modo rapido e semplice direttamente dalla linea di comando. AIaC, aggiunge Firefly, è in grado di generare un’ampia gamma di codice IaC, inclusi template Pulumi, Cloudformation (AWS), Terraform (HashiCorp), Dockerfile, Helm Chart.

La disponibilità di piattaforme e strumenti come quelli di Pulumi e Firefly, va precisato, non significa in ogni caso eliminare completamente la necessità di controllo umano, in quanto il codice generato può ancora contenere errori o vulnerabilità di sicurezza.

Usare con cautela la AI generativa “generalista”

La AI generativa può fornire vantaggi nella produzione e gestione del software, ma non ne vanno dimenticati i limiti. Gli strumenti GenAI per la generazione di codice come GitHub Copilot, Amazon CodeWhisperer e Google Codey, spiega la società di ricerca e consulenza Gartner, costituiscono buone scelte per quasi ogni azienda stia cercando tool di generazione del codice supportati dalla AI. Tuttavia, avverte, l’utilizzo di offerte LLM (large language model) di classe non enterprise, come ChatGPT e Google Bard, richiede l’accettazione di una serie di compromessi inaccettabili per molte imprese.

Ad esempio, le query di testo inserite dallo sviluppatore tramite prompt nell’interfaccia di sistema, e il codice generato, potrebbero venire inclusi nei futuri aggiornamenti dei prodotti del vendor, rischiando di far violare i regolamenti sulla privacy dei dati e di causare la perdita di proprietà intellettuale di valore critico per l’organizzazione.

Contenere il rischio “allucinazioni”

C’è inoltre un altro elemento da tenere presente, nel caso si voglia usare la AI generativa come strumento di modernizzazione delle applicazioni: il chatbot ChatGPT di OpenAI, aggiunge Gartner, è già in grado di tradurre codice da un linguaggio a un altro, e fornisce un modo rapido e semplice di trasformare e modernizzare in automatico il software. Ma, anche in questo caso, sebbene gli strumenti GenAI siano in grado di supportare gli sforzi degli sviluppatori nella modernizzazione delle app, la raccomandazione è limitarne l’uso: esistono infatti rischi significativi, qualora il codice non venga tradotto in modo esatto, come quando le soluzioni di GenAI inseriscono nel codice stesso errori o “allucinazioni”, ossia informazioni false o inesatte.

Al netto di queste considerazioni, Gartner comunque prevede che, entro il 2027, il 70% degli sviluppatori professionali utilizzerà tool di codifica AI-powered, rispetto a meno del 10% di oggi.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4