Serverless: un nuovo standard per il cloud computing?

Lambda schema di funzionamento

Come funziona un servizio serverless (AWS Lambda)

Serverless è un termine ormai popolare in ambito IT. Chi segue regolarmente InternetPost avrà sicuramente avuto modo di leggere alcuni approfondimenti a riguardo come ad esempio “Serverless: l’erede della multi-tenancy?” o ancora “WordPress: il futuro è serverless?.”

L’ecosistema serverless è ancora giovane e necessita di tempo per maturare, ciononostante ha attirato l’attenzione dei principali cloud provider (che “sfoggiano”da almeno un anno servizi ad hoc come Lambda, Azure Functions e Google Cloud Functions), di varie aziende e sviluppatori, oltre ad aver favorito la nascita di interessanti idee e startup e relativi progetti/servizi legati al promettente settore. Tra queste anche Serverless, compagnia dal nome che molti reputeranno forse poco originale (ma vi rimandiamo alla prima domanda, ndr) che propone un framework open source pensato per progettare architetture serverless.

L’intervista che riprendiamo oggi adottando il consueto schema (traduzione delle domande più significative e link all’intervista completa in chiusura) ha come protagonista Austen Collins, CEO e founder di Serverless ed ideatore del framework in questione. Buona lettura.

Selezione delle domande e risposte più interessanti

Innanzitutto, cosa significa il termine “serverless”?

Austen: C’è molta confusione intorno a questo termine, cercherò quindi di fare chiarezza. “Serveless” significa che, nonostante sia presente un server, lo sviluppatore [può tranquillamente pensare ad altro]. Un’architettura serverless è costituita da server, ma ancora una volta [ non spetta allo sviluppatore occuparsene]. Il nome “serverless” è tecnicamente accurato come “cloud”, è tecnicamente preciso. Se sei uno sviluppatore, significa che non devi prestare attenzione alle operation. [Che hai molto più tempo da dedicare alla ricerca di soluzioni, allo sviluppo di progetti]. Abbiamo deciso di chiamare la nostra compagnia Serverless prima che il concept divenisse così famoso – non sapevamo come si sarebbe evoluta la situazione. Ora siamo la Serverless, Inc. Siamo i realizzatori del Framework Serverless e [in ambito IT si parla anche del concetto di “Architettura Serverless”].

Perchè “serverless” è un trend così importante?

Austen: serverless consente di astrarre il cloud computing ad un livello più alto rispetto alla precedente generazione di prodotti cloud. Serverless è una sorta di gold standard per l’astrazione del cloud computing. Si tratta essenzialmente di codice. Tutto quello che devi fare è procedere all’upload del codice ed il provider lo eseguirà per te. Non devi preoccuparti di preservare alta disponibilità [e scalabilità]. Il tuo cloud provider si occuperà di tutto al posto tuo. Un altro modo [per descriverlo è pensarlo come una migliore piattaforma as a service (PaaS)]. […]

Quali sono i principali vantaggi della tecnologia serverless?

Austen: il modo migliore per spiegarlo è dire che [il più grande beneficio della tecnologia serverless] è l’offrire il più basso total cost of ownership (costo totale di proprietà). […] Hai a disposizione un servizio rapidamente operativo che [non necessita di alcuna spesa aggiuntiva oltre a quelle legata al suo effettivo utilizzo]. Si basa su microservizi, aiutandoti a rimanere agile

Ecco perchè molte aziende hanno deciso di adottare così rapidamente l’architettura serverless. Tanto le startup quanto le grandi compagnie desiderano avere questi vantaggi. Vogliono essere in grado di aggiungere nuove funzionalità e rilasciare software il più celermente possibile ma senza doversi occupare delle operazioni di manutenzione/gestione. […]

Parlaci del Framework Serverless

Austen: La prima cosa che noterai quando inizierai a progettare qualcosa di complesso su AWS Lambda [o qualsiasi altro servizio serverless] è che ti appresti a realizzare un enorme sistema distribuito. Senza alcun aiuto è qualcosa di difficile da gestire. [Fin dal primo utilizzo di Lambda ho capito quanto segue. Avevo deciso di studiare da capo un progetto in maniera tale che funzionasse esclusivamente su Lambda. Ho provveduto da console AWS al provisioning della mia prima funziona Lambda. Non è stato difficile ma quando ho cercato di convertire un’intera applicazione ho pensato “Wow, ci vorranno almeno un centinaio di funzioni Lambda”.

In aggiunta, devi gestire le dependencies attraverso tutte le funzione Lambda. Ad esempio, se una funzione Lambda necessita di accedere ad una tabella DynamoDB o ad un bucket S3, dovrai gestire i permessi attraverso tutte le funzioni. E dovrai replicare tutte queste funzioni attraverso differenti stage o ambienti in modo da [avere […] un test stage ed un production stage. Eseguire tutte queste operazioni manualmente e senza alcuno strumento è molto, molto complesso. Ho capito immediatamente che si trattava di un problema perfetto da risolvere con un framework.

Ed è qui che entra in gioco il Framework Serverless. E’ scritto in Node.js ed è tutto in JavaScript. Cerchiamo di utilizzare [un linguaggio molto semplice] perchè [il progetto] è open source, è abbiamo naturalmente numerose persone che collaborano ogni giorno.

Fondamentalmente, la CLI [command line interface o interfaccia a linea di comando ndr] è pensata e gestita per l’intero ciclo di vita della tua applicazione serverless. [Andrà in pratica a costruire per te una sorta di impalcatura aiutandoti nel primo deploy. Ti aiutare anche con le operazioni di roll back. O a testare il codice ed eseguirlo in locale]. […] Il Framework Serverless ti auta a gestire l’intero ciclo di vita gestionale di numerose funzioni lamba e [delle loro dependencies]”.

Puoi descrivere alcune funzioni del Framework?

Austen: […] [Il Framework] supporta diversi linguaggi di programmazione. Anche se è scritto in Node.js, offriamo supporto a tutti i linguaggi supportati da Lambda: Node.js, Python, Java [e qualsiasi altro linguaggio che sarà introdotto in futuro]. […] E’ inoltre multi-provider, il che per noi è uno sforzo non trascurabile. Gli sviluppatori dovrebbero essere liberi di effettuare il deploy delle funzioni dove vogliono. L’idea [ha un certo appeal perchè potrai avvantaggiarti delle peculiarità di ciascuna piattaforma]. Molti utenti vorrebbero sfruttare ad esempio le soluzioni machine learning Google. Ti aiuteremo nel deploy di una funzione serverless o di una funzione Google Cloud in modo che tu possa utilizzarle.

La gestione del provisioning è un’altra preziosa funzione del Framework. […] Imposterà automaticamente i permessi per ciascuna delle funzioni Lambda e le parti infrastrutturali con le quali andranno ad interagire, [accertandosi che non vi siano troppi permessi].

[…] La sfida più grande con Lambda e gli altri nuovi servizi serverless [è la loro natura cloud-based e la difficoltà nell’emularli in locale]. Ed è qui che entra in gioco il Framework. […] L’emulazione è in parte eseguita dal Framework in parte si appoggia a vari plugin. C’e’ un plugin in grado di creare un server locale nella tua macchina ed emulare tutte le API gateway in modo che tu possa testare in locale il back end.

[…]In aggiunta, il Framework è espandibile. Credo che qualsiasi strumento degli sviluppatori debba esserlo. Come sviluppatore amo analizzare, cambiare le cose. […] [Quando il Framework è diventato abbastanza noto e ho visto le richieste dell’utenza e come questa intendesse gestire i propri workload, ho rapidamente capito quanto fosse soggettivo il workflow. Necessitavamo di un framework personalizzabile. E’ fondamentalmente una grande architettura plugin. Puoi scrivere un plugin per sostituire le funzionalità del framework o puoi aggiungere [direttamente] nuove funzionalità.

Fonti: 1 (intervista completa), 2