Backend-as-a-Service (BaaS) consente agli sviluppatori di concentrarsi sul front-end delle loro applicazioni e sfruttare i servizi di back-end senza doverli creare o gestire. BaaS e l'elaborazione serverless condividono alcune somiglianze, e molti provider offrono entrambi, ma i due modelli presentano diverse differenze.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Function as a Service (FaaS)
Platform as a Service (PaaS)
Che significa serverless?
Perché impiegare la modalità serverless?
Edge computing
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Backend-as-a-Service (BaaS) è un modello di servizio cloud in cui gli sviluppatori esternalizzano tutti gli aspetti "dietro le quinte" di un'applicazione web o mobile, concentrandosi esclusivamente sulla scrittura e la manutenzione del frontend. I fornitori BaaS forniscono software preconfigurato per attività che si svolgono sui server, come l'autenticazione utente, la gestione dei database, l'aggiornamento da remoto e le notifiche push (per app mobili), oltre allo storage sul cloud e l'hosting.
Pensiamo allo sviluppo di un'applicazione senza l'utilizzo di un provider BaaS come alla regia di un film. Un regista si occupa della supervisione e della gestione delle troupe di ripresa, dell'illuminazione, delle scenografie, dei costumi, del casting degli attori e della programmazione della produzione, oltre a filmare e dirigere le scene che appariranno nel film. Ora, immaginiamo un servizio che si occupa di tutte le attività che avvengono dietro le quinte, lasciando al regista unicamente la direzione e la ripresa delle scene. Questa è l'idea sottostante al modello BaaS: il fornitore si occupa delle "luci" e della "telecamera" (o delle funzionalità sul lato server*), in modo che il regista (lo sviluppatore) possa concentrarsi solo sull'"azione", ovvero su ciò che l'utente finale vede e con cui interagisce.
BaaS, in poche parole, consente agli sviluppatori di concentrarsi sulla scrittura del codice frontend di una applicazione. Tramite le API (che sono un modo per un programma di effettuare una richiesta a un altro programma) e gli SDK (che sono kit per la creazione di software) offerti dal fornitore BaaS, è possibile integrare tutte le funzionalità di backend necessarie, senza dover costruirle da sé. Inoltre, gli sviluppatori non devono occuparsi della gestione di server, macchine virtuali o container per mantenere l'applicazione in esecuzione. Di conseguenza, possono creare e avviare applicazioni per dispositivi mobili e per il web (incluse applicazioni a pagina singola) più rapidamente.
*Nel modello client-server di Internet, il termine lato server si riferisce a tutto ciò che è ospitato o si svolge su un server, anziché su un client.
Un Mobile-Backend-as-a-Service (MBaaS) è un BaaS espressamente concepito per lo sviluppo di app per dispositivi mobili. Sebbene alcune fonti considerino BaaS e MBaaS termini sostanzialmente intercambiabili, i servizi BaaS non devono necessariamente essere utilizzati per la creazione di applicazioni mobili.
I provider BaaS offrono diverse funzionalità lato server, come le seguenti:
Tra i provider di servizi BaaS e MBaaS troviamo Google Firebase e Microsoft Azure.
Esiste una certa sovrapposizione tra BaaS e l'elaborazione serverless, poiché in entrambi i casi lo sviluppatore deve solo scrivere il codice dell'applicazione senza preoccuparsi del backend. Inoltre, molti provider BaaS offrono anche servizi di elaborazione serverless. Tuttavia, esistono differenze operative significative tra le applicazioni create utilizzando BaaS e una vera architettura serverless.
I backend delle applicazioni serverless sono suddivisi in funzioni, ognuna delle quali risponde agli eventi ed esegue una sola azione (vedi Che cos'è FaaS?). Le funzionalità lato server di BaaS, invece, sono costruite secondo i desiderata del provider e gli sviluppatori non devono preoccuparsi di codificare nient'altro che il frontend dell'applicazione.
Le architetture serverless sono event-driven, ovvero vanno in esecuzione in risposta all'accadimento di un certo evento. Ogni funzione viene eseguita solo quando è attivata da un determinato evento, altrimenti non gira. Le applicazioni create con BaaS di solito non sono innescate da determinati eventi, e questo significa che consumano più risorse del server.
Le funzioni serverless possono essere eseguite ovunque e su qualsiasi macchina, purché rimangano in comunicazione con il resto dell'applicazione. Questo rende possibile integrare l'edge computing nell'architettura dell'applicazione mediante l'esecuzione del codice sul perimetro della rete . BaaS non è necessariamente configurato per eseguire codice ovunque e in qualsiasi momento, a meno che non espressamente previsto dal provider.
La scalabilità è uno dei maggiori elementi di differenziazione che separano le architetture serverless da altri tipi di architettura. Nell'elaborazione serverless, l'applicazione si ridimensiona automaticamente all'aumentare dell'utilizzo. L'infrastruttura del fornitore cloud avvia istanze effimere di ciascuna funzione, se necessario. Le applicazioni BaaS non sono configurate per scalare in questo modo a meno che il provider non offra un'elaborazione serverless e lo sviluppatore la integri nell'applicazione.
PaaS fornisce una piattaforma tramite il cloud per consentire agli sviluppatori di creare le proprie applicazioni. Come l'elaborazione serverless e il BaaS, il modello Platform-as-a-Service (PaaS) elimina la necessità per lo sviluppatore di creare e gestire il backend dell'applicazione. Tuttavia, PaaS non include logiche applicative lato server predefinite, come le notifiche push e l'autenticazione degli utenti. PaaS offre agli sviluppatori maggiore flessibilità, mentre BaaS offre più funzionalità.
Backend-as-a-Service (BaaS) è un modello cloud in cui gli sviluppatori esternalizzano tutte le responsabilità lato server a un fornitore di terze parti. Ciò consente agli sviluppatori di concentrarsi sulla scrittura e sulla manutenzione del frontend delle loro applicazioni, mentre il fornitore si occupa delle attività di backend come l'hosting e la gestione del database.
I provider BaaS offrono una varietà di funzionalità lato server predefinite che possono essere integrate tramite API e SDK. I servizi comuni includono l'autenticazione degli utenti, le notifiche push per le app mobili, l'archiviazione nel cloud per i contenuti degli utenti, la gestione del database e l'aggiornamento da remoto.
Sebbene entrambi i modelli eliminino la necessità per gli sviluppatori frontend di gestire l'infrastruttura di backend, il loro funzionamento sul backend è differente. Le architetture serverless sono basate sugli eventi e suddividono le applicazioni in singole funzioni che vengono eseguite solo quando attivate. Le applicazioni BaaS in genere non sono basate sugli eventi e non scalano automaticamente creando istanze di codice, a meno che il fornitore non offra specificamente l'integrazione serverless.
MBaaS è essenzialmente BaaS specifico ottimizzato per la creazione di applicazioni per dispositivi mobili. BaaS è una categoria più ampia che può essere utilizzata per qualsiasi tipo di applicazione, comprese le applicazioni a pagina singola basate sul Web, mentre MBaaS si concentra sulle esigenze specifiche dei dispositivi mobili.
Entrambi i modelli eliminano la necessità per gli sviluppatori di gestire l'hardware di backend e i sistemi operativi. Tuttavia, PaaS fornisce una piattaforma per consentire agli sviluppatori di creare la propria logica backend da zero. Il BaaS offre meno flessibilità ma più funzionalità pronte all'uso, includendo logiche applicative predefinite come l'integrazione con i social network o i servizi di notifica.
Grazie all'utilizzo di software precompilato e infrastrutture gestite, gli sviluppatori possono creare e lanciare applicazioni rapidamente, senza dover dedicare tempo alla creazione del backend o alla gestione di macchine virtuali e container. Tuttavia, le architetture serverless possono offrire maggiore scalabilità e flessibilità per gli sviluppatori.