vuoi
o PayPal
tutte le volte che vuoi
Serverless Computing e Functions as a Service (FaaS)
Un esempio di questo caso d'uso potrebbe essere un database di film. Un utente fa clic sul nome di un attore in un'applicazione. Questo clic crea una richiesta GET nel gateway API, che è preconfigurata per attivare la funzione Lambda per recuperare un elenco di film associati a un particolare attore/attrice. La funzione Lambda recupera questo elenco da DynamoDB e lo restituisce all'applicazione.
Come accennato in precedenza, il serverless computing è un modello di cloud computing in cui il codice viene eseguito come servizio senza che l'utente debba mantenere o creare l'infrastruttura sottostante. Ciò non significa che l'architettura serverless non richieda server, ma invece che una terza parte gestisce questi server in modo che siano astratti dall'utente. Un buon modo per pensare a questo è come "Functions as a Service" (FaaS). Il codice personalizzato basato su eventi viene creato dallo.
sviluppatore ed eseguito su contenitori effimeri senza stato creati e gestiti da terzeparti. FaaS è spesso il modo in cui viene descritta la tecnologia serverless, quindi è bene studiare il concetto un po' più in dettaglio. Potresti anche aver sentito parlare di IaaS (infrastruttura come servizio), PaaS (piattaforma come servizio) e SaaS (software come servizio) come modelli di servizio di cloud computing. IaaS fornisce infrastruttura informatica, macchine fisiche o virtuali e altre risorse come libreria di immagini disco di macchine virtuali, blocchi e storage basato su file, firewall, bilanciatori di carico, indirizzi IP e reti locali virtuali. Un esempio è un'istanza Amazon Elastic Compute Cloud (EC2). PaaS fornisce piattaforme di elaborazione che includono il sistema operativo, l'ambiente di esecuzione del linguaggio di programmazione, il database e il server web. Alcuni esempi includono AWS Elastic Beanstalk, App Web di Azure e Heroku. SaaS fornisce software come servizio, consentendo agli utenti di accedere e utilizzare applicazioni software tramite Internet, senza dover installare o gestire l'applicazione sul proprio computer o dispositivo. Alcuni esempi includono Google Docs, Salesforce e Dropbox.forniscel'accesso al software applicativo. L'installazione e la configurazione vengono rimosse dal processo e si rimane con l'applicazione. Alcuni esempi di questo includono Salesforce e Workday.
Unicamente, FaaS comporta l'esecuzione di codice back-end senza il compito di sviluppare e distribuire le proprie applicazioni server e sistemi server. Tutto questo è gestito da un provider di terze parti. Ne discuteremo più avanti in questa sezione.
Come funziona il Serverless Computing?
Un errore è pensare che l'elaborazione serverless non richieda server. Questo in realtà non è corretto. Le funzioni serverless vengono ancora eseguite sui server; la differenza è che una terza parte li gestisce invece dello sviluppatore.
Per spiegare ciò, utilizzeremo un esempio di un sistema tradizionale a tre livelli, con logica lato server e mostreremo come sarebbe diverso utilizzando l'architettura serverless.
Diciamo che abbiamo un sito web
dove possiamo cercare e acquistare libri di testo. In un'architettura tradizionale, potresti avere un client, un server con bilanciamento del carico e un database per i libri di testo.
In un'architettura serverless, diverse cose possono cambiare, inclusi il server e il database. Un esempio di questa modifica potrebbe essere l'utilizzo di un'API e il mapping delle richieste di metodi specifici a funzioni diverse. Invece di avere un server, la nostra applicazione ora ha funzioni per ogni servizio e server su cloud che vengono creati in base alla domanda. Potremmo avere una funzione per la ricerca di un libro e anche una funzione per l'acquisto di un libro. Potremmo anche scegliere di dividere il nostro database in due database separati che corrispondono alle due funzioni.
Ci sono un paio di differenze tra i due diagrammi. Uno è che nell'esempio locale, hai un server che deve gestire il bilanciamento del carico e deve essere ridimensionato automaticamente dallo sviluppatore.
Nella soluzione cloud, l'applicazione viene eseguita in container di calcolo senza stato che vengono attivati e disattivati dalle funzioni. Un'altra differenza è la separazione dei servizi nell'esempio serverless. Sviluppo Il processo di sviluppo per le applicazioni serverless cambia leggermente rispetto al modo in cui si svilupperebbe un sistema in locale. Gli aspetti dell'ambiente di sviluppo, inclusi gli IDE, il controllo del codice sorgente, il controllo delle versioni e le opzioni di installazione possono essere stabiliti dallo sviluppatore in locale o con il provider di servizi cloud. Un metodo preferito di sviluppo continuo include la scrittura di funzioni serverless utilizzando un IDE, come Visual Studio, Eclipse e IntelliJ, e la sua installazione in piccoli pezzi al provider di servizi cloud utilizzando l'interfaccia della riga di comando del provider di servizi cloud. Se le funzioni sono sufficientemente piccole, possono essere sviluppate all'interno delPortale del provider di servizi cloud effettivo.