Nell'articolo di oggi vogliamo trattare un argomento molto interessante ovvero i sistemi Function as a service (Faas) serverless. Questa categoria di cloud computing service fornisce una piattaforma di servizi che permettono di gestire lo sviluppo e la distribuzione di servizi ed applicazioni.
Tali Cloud platform si occupano in pratica di eseguire funzionalità in risposta a determinati eventi. Il gestore del servizio può impostare delle regole da attivare ed eseguire a seguito di specifici eventi, esterni o derivati da comportamenti dell'utente come i click del mouse. È dunque possibile creare delle regole e delle azioni, testarle, connetterle con altre azioni ed eseguire il debug di queste ultime cosi da creare dei protocolli e generare servizi e applicazioni che rispondano a tali regole per adattarsi ai bisogni dell'utente.
Tutto questo è possibile grazie alla la programmazione a eventi, questo paradigma di sviluppo si differenzia da quello "standard" in modo abbastanza netto perché in un programma tradizionale l'esecuzione delle istruzioni segue determinati percorsi fissi, nei software scritti utilizzando l'approccio a eventi il flusso del programma è quasi del tutto determinato ed indirizzato dal verificarsi di eventi esterni scelti dal developer.
Un sistema serverless è tale quando il network di tali servizi non è incentrato su dei server ma viene dislocato tra i vari utenti e il lavoro di gestione del network viene eseguito dagli stessi utilizzatori. Evitando quindi ai team di sviluppo i costi di affitto dei server e il lavoro di manutenzione di questi ultimi.
Quindi un'architettura serverless è rappresentata da una serie di schemi architettonici che si basano sui sistemi FaaS. I servizi serverless combinano il codice FaaS personalizzato con servizi di back-end comuni (come database e autenticazione), connessi principalmente attraverso un modello di esecuzione basato sugli eventi. Dal punto di vista di uno sviluppatore, questi servizi sono tutti gestiti da soggetti di terze parti (sia un team operativo che un fornitore esterno). Ovviamente i server sono ancora coinvolti ma gli sviluppatori non hanno bisogno di occuparsene direttamente.
La tecnologie serverless è relativamente giovane, ma essendo indirettamente connessa ad un vasto genere di servizi e applicazioni, come ad esempio il mercato dei sistemi IoT e delle AI, suscita l'interesse di molte aziende. Bisogna però stare attenti, infatti le soluzioni FaaS spesso generano degli ecosistemi di servizi e funzioni abbastanza chiusi e spesso incompatibili con altri servizi FaaS concorrenti, ecco perché la community ha subito puntato verso lo sviluppo di soluzioni FaaS open source come ad esempio OpenWhisk o Knative. Tali soluzioni permettono all'utente di realizzare servizi ed applicazioni che possono funzionare su più piattaforme FaaS serverless senza problemi.