Cloud providers e piattaforme emergenti

Stato dell’arte

Spesso identificato con l’utilizzo di servizi FaaS (Function as a Service, esecuzione di codice in cloud sulla base di eventi), ad oggi le aziende utilizzano una grande varietà di servizi serverless messi a disposizione dai principali cloud providers così come da piattaforme emergenti come Vercel (cloud specializzato su hosting di applicazioni front-end Web) e CloudFlare (rete globale con numerosi servizi di sicurezza e hosting). Questi servizi possono essere raggruppati in tre principali categorie:

  • FaaS, es: AWS Lambda, Azure Functions, Google Cloud Functions, Cloudflare Workers
  • Containers, es: AWS ECS Fargate, Azure Container Apps, Google Cloud Run, Fly.io
  • Web apps, es: Cloudflare Pages, Netlify, Vercel

Contestualmente si stanno consolidando anche framework di sviluppo e infrastructure-as-code specializzati, che rendono questo modello molto efficace in termini di produttività. I principali sono Serverless Framework (multi-provider), Architect (AWS), Ampt (AWS).

Un report molto interessante sullo stato di serverless è quello prodotto periodicamente da DataDog: https://www.datadoghq.com/state-of-serverless/

Crescita di soluzioni basate su container

L’utilizzo di servizi gestiti per l’esecuzione di container serverless sta godendo di una notevole crescita dovuta al lancio di nuovi servizi. A guidare in questo ambito è Google Cloud che con il lancio di Cloud Run già nel 2019 ha fatto dei container il suo prodotto serverless di punta, ad oggi già largamente utilizzato.

Questo tipo di servizi semplifica l'adozione e la migrazione verso serverless dal momento che le aziende spesso utilizzano già ambienti containerizzati per i propri applicativi. I servizi basati su container supportano inoltre una gamma più ampia di linguaggi e limiti meno stringenti rispetto ai servizi FaaS.

Approfondimenti e la nostra esperienza


Nuovi provider specializzati sul front-end

I principali cloud providers non sono gli unici attori del mondo serverless. Già dal 2015, solo un anno dopo il lancio di AWS Lambda, Netlify ha pubblicato il proprio servizio di hosting per siti realizzati con architettura “Jamstack” (un pattern di sviluppo Web basato sul pre-rendering dell’intero front-end e l’esposizione di database e logiche custom tramite API).

Ad oggi, le piattaforme di questo tipo combinano servizi di CDN (server distribuiti in più aree geografiche che velocizza la delivery dei contenuti web avvicinandoli agli utenti) e serverless con strumenti di sviluppo molto evoluti e la possibilità nativa di eseguire le applicazioni o parte di esse sull’ edge (porzione della rete più vicina all’utente). Sono integrate con i principali framework di sviluppo front-end con rendering server-side (es. Next, Nuxt, Remix) e con generazione di pagine statiche (es. Gatsby, Hugo, Astro) fornendo supporto full-stack a progetti di questo tipo. I principali provider sono: Clouflare, Netlify e Vercel. Tra le caratteristiche che rendono queste piattaforme ideali per applicazioni Web troviamo:

  • Configurazione automatica dell’infrastruttura a partire dal repository applicativo;
  • Gestione automatica e multi-ambiente delle versioni rilasciate, con possibilità di rollback;
  • Servizi bult-it attivabili sull’ edge, ad esempio: firewall, routing, funzioni middleware, A/B testing, autenticazione

La nostra esperienza

Nonostante la diffusione e la solidità del paradigma serverless in contesti enterprise, nell’ambito bancario e dei servizi finanziari il livello di adozione è basso, non c’è da stupirsi dal momento che la migrazione dei sistemi verso i principali Cloud provider è agli albori in questo settore.

Tra i progetti già svolti in questo ambito abbiamo potuto constatare la maturità dei servizi offerti dai Cloud providers con soddisfazione sia da parte dei clienti che dei team di sviluppo. Tra le esperienze più recenti, abbiamo realizzato un sistema di AI per la risoluzione di problemi di ottimizzazione utilizzando i servizi Azure Container Apps per l’esecuzione di tutti i calcoli. Il modello di scalabilità e la configurabilità del servizio si sono rivelate eccellenti e adatte al caso d’uso. Anche il modello dei costi si è rivelato ottimale, nello specifico use case (dove alcuni job eseguono in modo intensivo delle elaborazioni per poche ore al giorno, se paragonato a soluzioni equivalenti basate su PaaS o IaaS.

In generale, abbiamo avuto modo di utilizzare tutti i principali providers constatando notevoli differenze e specializzazioni nei servizi. Mentre nel FaaS gli strumenti di AWS sembrano favoriti, nelle soluzioni basate su Container Google Cloud e Azure offrono ottime soluzioni.

Conclusioni - Serverless e FinTech

Da quello che vediamo quotidianamente, sono molti i casi d’uso adatti all’adozione del serveless nell’ambito TechFin e molti sono i progetti che ne trarrebbero beneficio in termini di manutenibilità e costi

Lo scenario più diffuso attualmente per l’hosting dei nuovi applicativi in questo settore è quello di utilizzare orchestratori di container su infrastruttura proprietaria, nella maggior parte dei casi si tratta RedHat Openshift. Tra i pattern architetturali la fa da padrone l’uso di micro-servizi, con tecnologie standard dello sviluppo Web orientate a implementare JSON API e Single Page Application (Javascript). Questi due elementi si sposano molto bene con le attuali tecnologie a supporto di serverless.

Un dato di fatto è che la migrazione a Cloud sia in pieno svolgimento e, nel futuro prossimo, le porte saranno aperte per l’adozione dei servizi Serverless. Quello che sembra più probabile è che si resti nel perimetro dei principali Cloud providers (AWS, GCP e Azure) e che siano utilizzati quei servizi serverless che permettono l’integrazione su rete privata VPC.

Guardando più a lungo termine, i servizi sull’ edge potrebbero coprire dei casi d’uso molto critici e diffusi nell’ambito TechFin, un esempio in particolare sono gli applicativi a supporto del trading Forex.