L’elaborazione serverless è cresciuta in popolarità negli ultimi anni. Nel report 2020 State of Serverless di Datadog, il 50% degli utenti AWS ha dichiarato di utilizzare la funzione serverless. E il mercato complessivo dell’elaborazione serverless vale attualmente circa 8 miliardi di dollari, rispetto a 1,9 miliardi di dollari nel 2016.
È importante comprendere i vantaggi e gli svantaggi dell’elaborazione serverless in modo da poter determinare se è un investimento utile per la tua organizzazione.
Quali sono i vantaggi dell’elaborazione serverless?
L’elaborazione serverless fornisce un livello di astrazione tra le risorse del server e le funzioni che forniscono. Ecco perché a volte è noto come Function-as-a-Service (FaaS), le funzioni del server fornite tramite il cloud per consentire un modo più semplice ed economico per creare e gestire applicazioni.
Semplice allocazione delle risorse
Le attività associate ai server, come il provisioning, il ridimensionamento e la gestione dell’infrastruttura necessaria per eseguire l’applicazione, vengono scaricate dagli utenti finali e vengono eseguite automaticamente in background. Pertanto, la semplicità dell’allocazione delle risorse è uno dei grandi vantaggi di un’architettura serverless.
Efficienza di sviluppo
In un ambiente serverless, gli sviluppatori possono concentrarsi sui loro compiti principali piuttosto che capire l’infrastruttura sottostante necessaria per far funzionare e supportare le loro app. Ciò significa anche che gli sviluppatori possono creare applicazioni più velocemente rispetto agli ambienti tradizionali.
“[Serverless] semplifica notevolmente il processo di creazione e distribuzione delle applicazioni poiché consente agli sviluppatori di concentrarsi maggiormente sul valore al centro dell’attività, aumentare la produttività e portare i prodotti sul mercato più rapidamente, poiché le attività generali relative all’infrastruttura vengono astratte “. ha affermato Naina Singh, principale product manager di Red Hat. “Serverless Functions porta tutto questo ancora oltre, eliminando il tipico codice di rete e altri standard tipicamente richiesti dalle applicazioni cloud-native”.
Ridimensionamento dinamico
Anche il ridimensionamento dinamico è facilitato in un ambiente serverless. Il framework open source Knative è utilizzato da molti fornitori di serverless, incluso Red Hat OpenShift Serverless. Poiché Knative offre una soluzione serverless basata su container oltre a Kubernetes, il ridimensionamento può essere ottenuto in base alla domanda attuale degli utenti e da e verso zero.
Distribuzione più rapida
La facilità di implementazione è un grande vantaggio. Le tradizionali operazioni basate su data center richiedono mesi per selezionare, acquistare e distribuire apparecchiature fisiche. L’elaborazione serverless, d’altra parte, può essere implementata in poche ore.
Quali sono gli svantaggi dell’elaborazione serverless?
Ci sono alcuni svantaggi nell’elaborazione serverless, inclusi costi, visibilità e sicurezza.
costo
A seconda del tipo di applicazione e della sua durata, i costi associati all’elaborazione serverless possono aumentare rapidamente. I provider addebitano la quantità di codice temporale in esecuzione, quindi potrebbe essere più economico eseguire applicazioni con processi di lunga durata utilizzando un modello tradizionale.
Visibilità
Secondo Cloudflare, possono esserci problemi di test e debug in un ambiente serverless. Poiché è difficile replicare senza server per vedere come si comporta il codice una volta distribuito, gli sviluppatori non hanno la visibilità del processo di back-end.
Sicurezza
Con l’elaborazione serverless, un fornitore di terze parti si occupa di sicurezza e a volte può essere una scatola chiusa. Quando le applicazioni gestiscono dati sensibili, gli sviluppatori devono assicurarsi che siano protetti. Ad esempio, diversi clienti utilizzeranno lo stesso server sottostante. Pertanto, la multi-tenancy può influire sulla conformità in alcune organizzazioni.
Considerazioni chiave per l’elaborazione serverless
L’elaborazione serverless funziona bene in alcune situazioni, ma dovrebbe essere evitata in altre.
Applicazioni apolidi
Singh ha affermato che i casi d’uso stateless si adattano bene a un’architettura serverless. “Sebbene l’approccio serverless sia perfetto per le applicazioni stateless, è necessario uno sforzo in più per consentire alle applicazioni stateful (come l’archiviazione dello stato della sessione in memoria tra due richieste) di essere eseguite in modo serverless, il che non è sempre possibile”, ha affermato Singh.
Migliore flessibilità
Un’altra buona soluzione sono le applicazioni con caratteristiche di accesso non uniformi e modelli di traffico altamente variabili. Le applicazioni che si occupano di picchi di attività stagionali o rapporti finanziari trimestrali, ad esempio, sono utili per serverless poiché paghi solo per ciò di cui hai bisogno.
Allo stesso modo, la flessibilità dell’elaborazione serverless è un enorme vantaggio per le organizzazioni che stanno crescendo rapidamente e potrebbero dover cambiare rapidamente. Le startup in fase iniziale potrebbero particolarmente apprezzare l’elaborazione serverless, poiché non devono sborsare per apparecchiature costose fino a quando non hanno stabilito una base di clienti valida.
Conformità
D’altra parte, il serverless può porre problemi di conformità. Se un’organizzazione non può utilizzare un’architettura multi-tenant, dovrebbe evitare l’elaborazione serverless. Una configurazione errata potrebbe causare l’esposizione dei dati e altri problemi di sicurezza con gravi implicazioni di conformità.
Prestazione
Infine, le prestazioni devono essere prese in considerazione. Chiunque esegua applicazioni in ambienti serverless deve comprendere che, poiché non sono costantemente in esecuzione, il codice noleggiato dai fornitori serverless a volte deve essere avviato e ciò può influire sulle prestazioni.
Leggi il prossimo: Cosa sono i microservizi?