Gli ultimi anni hanno visto uno sviluppo sostanziale cruciale del paradigma del cloud computing e dei suoi vari modelli di esecuzione, accompagnato dalla sempre più crescente necessità di estendere l’offerta a ulteriori piattaforme e adottare nuovi metodi di ottimizzazione dei servizi offerti agli utenti. Ottimizzazioni che variano da concetti semplici, come velocità e utilizzo di risorse, al più complesso (ma comune) problema dell’elasticità del cloud: la “capacità” del sistema di adattarsi autonomamente alle richieste degli utenti, mantenendo un servizio ottimale ed evitando sprechi di risorse.
In particolare, una delle più recenti novità nell’ambito è il modello serverless. Anche definito come Function as a Service (FaaS), questo modello dà la possibilità ai cloud provider di gestire le applicazioni a livello delle singole funzioni. Questo modello nasce in risposta al crescente impiego di servizi cloud, la cui offerta è ormai costituita da applicazioni di elevata complessità. Ed è proprio da questi problemi che è sorta la necessità di suddividere il vecchio applicativo monolitico funzione per funzione, in modo da ottimizzare la distribuzione di risorse in base alle effettive richieste alle singole funzioni.
Il modello serverless si adatta all’utilizzo nel cloud di acceleratori hardware (come le FPGA, Field Programmable Gate Array), in quanto si può implementare un acceleratore per ogni singola funzionalità, a prescindere dal contesto a cui appartengono. In altre parole, ogni funzione può essere sviluppata e accelerata indipendentemente dalle altre, consentendo di dedicare più o meno risorse alle singole funzioni a seconda della richiesta degli utenti. Questa caratteristica permette di evitare buona parte degli eventuali sprechi di risorse che potrebbero verificarsi altrimenti, cercando di mantenere un servizio ottimale per gli utenti. Ed è proprio qui che entra in gioco la ricerca svolta al NECSTLab, dove stiamo lavorando allo sviluppo e all’ottimizzazione di un’architettura serverless che offre le potenzialità di accelerazione hardware delle FPGA come Function as a Service. In particolare, per ottimizzare ulteriormente il servizio offerto dall’infrastruttura e l’utilizzo di risorse, stiamo studiando ed esplorando vari approcci che sfruttano l’intelligenza artificiale. Questa soluzione permetterà di costruire un sistema autonomo che sia in grado di selezionare quelle funzioni che hanno la priorità in termini di richieste da parte degli utenti, e allocare per queste funzioni le risorse necessarie a mantenere un servizio veloce e soddisfacente.
Il cloud computing è un ambito in continua crescita che sta avendo ampio successo negli ultimi anni. La ricerca di sistemi autonomi, che sfruttano l’intelligenza artificiale per adattarsi alle necessità degli utenti del cloud, è una sfida estremamente interessante, in linea con l’aumento dei servizi offerti dai cloud provider, la loro crescente varietà e il susseguente incremento di richieste lato utente. Ricerca i cui risultati potranno sicuramente impattare positivamente sull’ottimizzazione delle piattaforme e dei servizi.
Manageritalia collabora con NECSTLab per far conoscere questa Silicon Valley italiana e avere dalla loro voce un polso su quell’innovazione che partendo dall’Università impatta, e deve farlo sempre di più, sulla crescita della nostra economia, sul nostro lavoro e sulla vita di tutti i giorni. Un viaggio che dobbiamo fare tutti insieme. Stay tuned!