Serverless è un termine che abbiamo imparato a conoscere negli ultimi mesi con alcuni post dedicati rispettivamente alla tecnologia stessa ed alla sua applicazione ad una nota piattaforma come WordPress. L’approccio serverless sta riscotendo un buon successo nel mondo IT grazie alla facile implementazione, possibilità di alleggerire il carico di lavoro sull’infrastruttura principale ed automatizzare processi – altro trend emergente nel cloud.
Le potenzialità dell’approccio serverless possono essere spiegate brevemente parlando del funzionamento di AWS Lambda: allo sviluppatore spetta solo il compito di scrivere il codice da caricare nel servizio e stabilire quali circostanze (trigger) ne attiveranno l’esecuzione da parte della piattaforma AWS – potrebbe trattarsi di un altro servizio AWS, di un’applicazione mobile e così via. Il sistema provvederà automaticamente al resto fornendo le risorse necessarie al compimento dell’operazione. E’ chiaro come un tale servizio semplifichi notevolmente l’attività di molte imprese riducendo al contempo la complessità delle operazioni ed i costi – nel caso di AWS la tariffazione è ogni 100 millisecondi e solo quando Lambda provvede all’esecuzione del codice.
![Lambda schema di funzionamento](http://www.internetpost.it/wp-content/uploads/2016/11/lambda.png)
Il servizio serverless Lambda. Il codice viene caricato online, tutti gli altri passaggi sono gestiti dalla piattaforma – fonte AWS
Serverless e storage
Lo storage è un settore molto interessante per l’applicazione della tecnologia serverless. I cluster che costituiscono un sistema storage sono formati da più nodi, ciascuno dei quali dispone delle proprie risorse dedicate (CPU, RAM, connessioni di rete): perchè non impiegare la capacità di calcolo inutilizzata per l’esecuzione di determinate funzioni (codice)? Ciò potrebbe cambiare radicalmente le modalità di gestione dei dati e dello storage. Anche non disponendo di un’infrastruttura con bassi tempi di latenza, aspetto sul quale bisognerà lavorare per ampliare i casi di utilizzo dello storage serverless, si può pensare di utilizzare tali servizi con applicazioni/task in tempo reale come:
- analisi delle immagini. Le immagini archiviate possono essere sottoposte ad accurate analisi per estrapolare informazioni rilevanti (controllo di una targa, analisi qualità dell’immagine, classificazione dell’immagine in base a determinati criteri, confronto con altre immagini, identificazione di una persona etc.). Queste ultime possono poi essere aggiunte come metadati o nell’oggetto stesso;
- analisi dati. Le azioni effettuate su un determinato oggetto possono attivare a loro volta del codice che andrà riversari in un database con informazioni rilevanti;
- sicurezza. A seguito di ogni nuovo file archiviato o modificato, il sistema può eseguire delle operazioni di controllo (individuazione di virus, malware; presenza di eventuali informazioni sensibili) ed agire di conseguenza in base alle policy stabilite;
- Big Data. Task Map/Reduce possono essere già eseguite con Lambda ed S3;
- standardizzazione dati. Le informazioni possono essere analizzate e convertite in altri formati al fine di facilitare operazioni successive. Un’operazione utile in ambienti IoT (Internet delle Cose) complessi nei quali i dati (provenienti magari da sensori etc) provengono da fonti multiple.
Una lunga strada
Le soluzioni storage serverless ancora poco diffuse online: trattandosi di un campo tutto sommato inesplorato (vi sono alcuni interessanti progetti open source come OpenIO), occorrerà del tempo per individuare i casi di utilizzo più adatti ed affinare i vari processi. Sono due gli aspetti sui quali dovranno focalizzarsi i provider per rendere i servizi fruibili “in produzione”: il supporto a più linguaggi di programmazione; lo scheduler interno dei processi/funzioni.Quest’ultimo impegnerà sicuramente gli addetti ai lavori per via della maggiore complessità dei sistemi – essendovi una condivisione di risorse tra storage e computing, uno scheduling efficiente è cruciale per garantire adeguate performance e tempi di risposta per lo storage e le applicazioni.
Una volta che i servizi storage serverless sbarcheranno sul mercato, bisognerà attendere ancora qualche tempo per capire quale standard sarò in grado di imporsi nell’industria. A questo punto la compatibilità API sarà a portata di mano, con tutti i conseguenti vantaggi derivanti.