Function as a service (FaaS) è un servizio di cloud computing che consente ai clienti di eseguire codice in risposta agli eventi, senza gestire l'infrastruttura complessa tipicamente associata alla creazione e al lancio delle applicazioni di microservizi.
L'hosting di un'applicazione software su internet richiede in genere il provisioning e la gestione di un server virtuale o fisico e la gestione di un sistema operativo e dei processi di hosting del server web. Con FaaS, l'hardware fisico, il sistema operativo della macchina virtuale e la gestione del software del server web sono tutti gestiti automaticamente dal provider del servizio cloud. Questa funzione consente agli sviluppatori di concentrarsi esclusivamente sulle singole funzioni nel codice dell'applicazione.
Serverless e Functions-as-a-Service (FaaS) sono spesso confusi tra loro ma la verità è che FaaS è in realtà un sottoinsieme di serverless.
Serverless è focalizzato su qualsiasi categoria di servizio, compresi calcolo, archiviazione, database, messaggistica e gateway API, dove la configurazione, la gestione e la fatturazione dei server sono invisibili all'utente.
Tuttavia, FaaS, sebbene forse sia la tecnologia più centrale nelle architetture serverless, si concentra sul paradigma di elaborazione basata sugli eventi in cui il codice dell'applicazione o i contenitori vengono eseguiti solo in risposta a eventi o richieste.
FaaS è uno strumento prezioso per la migrazione efficiente ed economica delle applicazioni nel cloud. Di seguito ce ne sono alcuni altri:
Esistono diverse best practice che puoi seguire per rendere FaaS più facile da implementare e più efficace:
Grazie alla sua capacità di isolare e ridimensionare facilmente le transazioni, FaaS è utile per carichi di lavoro paralleli ad alto volume. Può anche essere utilizzato per creare sistemi di backend o per attività come elaborazione dati, conversione di formato, codifica o aggregazione di dati.
FaaS è anche un buono strumento per app web, back-end, elaborazione di dati o stream o per creare chatbot online o back-end per dispositivi IoT. FaaS può aiutarti a gestire e utilizzare servizi di terze parti. Se stai prendendo in considerazione lo sviluppo di app Android, ad esempio, puoi adottare un approccio FaaS per tenere sotto controllo i costi. Poiché andrai incontro a spese solo quando la tua app si connette al cloud per una funzione specifica come l'elaborazione in batch, i costi possono risultare notevolmente inferiori rispetto a un approccio tradizionale.
FaaS può anche aumentare notevolmente le prestazioni di elaborazione. Ad esempio, due studenti hanno recentemente lavorato con gli specialisti IBM per esplorare come utilizzare le IBM Cloud Functions per le simulazioni Monte Carlo (metodi matematici utilizzati per stimare i risultati futuri di determinati eventi difficili da prevedere) per stimare i prezzi delle azioni. Le simulazioni Monte Carlo sviluppano un importante carico di calcolo ad alte prestazioni.
La combinazione di Monte Carlo e IBM Cloud Functions ha consentito al team di eseguire calcoli su vasta scala e di concentrarsi sulla logica di business. Utilizzando FaaS, il team ha completato un'intera simulazione Monte Carlo in circa 90 secondi con 1.000 chiamate simultanee. In confronto, l'esecuzione dello stesso flusso su un laptop con quattro core della CPU ha richiesto 247 minuti e un utilizzo della CPU quasi del 100%.
FaaS, PaaS (Platform-as-a-Service), container e macchine virtuali (VM) ricoprono tutti un ruolo fondamentale nell'ecosistema serverless. Poiché FaaS è l'elemento più centrale e più identificativo dello stack serverless, vale la pena esplorare, attraverso alcuni elementi chiave, in che modo FaaS differisce dagli altri modelli comuni di elaborazione oggi sul mercato:
Kubernetes e Knative rappresentano le "condutture" dietro FaaS. Kubernetes è uno strumento open source di orchestrazione dei contenitori, fondamentale per la gestione delle applicazioni cloud. Knative consente di lavorare in modalità serverless all'interno di un cluster Kubernetes.
La combinazione di Knative e Kubernetes consente di sfruttare le funzioni di Kubernetes come monitoraggio, sicurezza, registrazione e autenticazione e combinarle con i vantaggi di Knative come la creazione automatizzata di container, la piena portabilità e il lavoro in ambienti ibridi.
I creatori di questa tecnologia credevano che nella creazione di app cloud gli sviluppatori non dovessero dover scegliere tra serverless e contenitori. L'obiettivo era aumentare la disponibilità e la congruenza dei contenitori con il potente ridimensionamento e l'accesso on-demand dell'architettura serverless.
Accelera la business transformation con soluzioni cloud progettate per l'innovazione e la crescita. Esplora strumenti e insight all'avanguardia per stare al passo con la concorrenza.
Vuoi modernizzare la tua attività? Scopri le strategie di migrazione al cloud più efficienti in grado di ottimizzare le prestazioni, ridurre i costi e migliorare la scalabilità.
Scopri come l'Infrastructure as a Service (IaaS) può potenziare la tua azienda con soluzioni di infrastruttura cloud scalabili, flessibili ed economiche su misura per le tue esigenze.
Scopri come IaaS, PaaS e SaaS possono trasformare le tue operazioni, offrendo flessibilità, scalabilità ed efficienza dei costi. Scopri le differenze e scegli la soluzione perfetta per la tua crescita.
Scopri come i database NoSQL possono migliorare la tua strategia di gestione dei dati con soluzioni flessibili e scalabili. Scopri i tipi e i benefici di NoSQL per rimanere all'avanguardia in un mondo basato sui dati.
Scopri come Techwave ha utilizzato IBM Cloud Bare Metal Servers per promuovere la trasformazione digitale, garantendo flessibilità, scalabilità e pieno controllo per i suoi clienti.
IBM Cloud Virtual Server for VPC è una famiglia di server virtuali Intel x86, IBM Z e IBM LinuxONE basati su IBM Cloud Virtual Private Cloud.
I server dedicati IBM Cloud offrono una soluzione di web hosting scalabile con traffico di backhaul illimitato e gratuito e molte opzioni di personalizzazione.
Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.