Cosa è senza server?

Il concetto di computing senza server è un modello di esecuzione emergente che cerca di soddisfare le esigenze dei moderni software basati su cloud. 

In questo video del mio corso, Introduzione a Serverless, ti presenterò all'architettura senza server. Parleremo dei suoi punti chiave e li confronteremo con altri modelli per l'astrazione delle funzionalità del server sul cloud.

Cosa è senza server?

 

L'architettura senza server

Prima di tutto, in un sistema senza server ci sono server. Spero che non sia una grande sorpresa per te. È tutto su chi li gestisce.

Diamo un'occhiata a un diagramma molto comune che mostra diversi tipi di servizi. 

A sinistra, hai il tuo sistema locale tradizionale. Tutto è gestito da te, fino alla macchina fisica e alla rete. Quindi hai vari livelli di astrazione.

Infrastruttura come servizio

Il primo livello di astrazione è l'infrastruttura come servizio. Qui sei responsabile di tutto, dal sistema operativo in su. Esempi potrebbero essere DigitalOcean o Amazon EC2. Il fornitore fornisce un'istanza per te e da quel momento in poi sei da solo. 

Contenitore come servizio

Il prossimo livello di astrazione è contenitore come servizio. È anche un giocatore piuttosto nuovo che ha molta trazione grazie alla popolarità di Docker. In un mondo AWS, questo sarebbe EC2 Container Services. 

Piattaforma come servizio

Quindi abbiamo una piattaforma come servizio, in cui non sei responsabile della gestione di alcun sistema operativo o container. Sei l'unico responsabile per la tua applicazione. Esempi prominenti di questa categoria sono Heroku, AWS Elastic Beanstalk e Google Compute Engine.

Funziona come un servizio (aka Serverless)

Qualche anno fa, la grafica sarebbe finita qui. Ma oggigiorno abbiamo una nuova terminologia, cioè funziona come un servizio. Invece di eseguire un'applicazione con stato, che è vero per tutti i framework Web tradizionali, anche se si utilizza REST e altre cose, si dispone di un sistema che utilizza contenitori senza stato attivati ​​dall'evento, effimeri e completamente gestiti dal servizio fornitore.

Questo è ciò che viene chiamato senza server. C'è un altro concetto chiamato back-end come servizio che a volte è considerato parte dell'architettura del server. Ma a mio parere, appartiene più al software come servizio, che è essenzialmente quello che stai cercando di costruire. 

Aree chiave di funzioni come servizio

Parliamo di più delle funzioni come servizio.

Come suggerisce il nome, tu come sviluppatore sei responsabile della scrittura delle funzioni eseguibili che vengono attivate ed eseguite dagli eventi. Questo può essere un caricamento di file completato a S3 o una richiesta attraverso un endpoint API. Fin qui, così semplice. Per comprendere completamente il concetto, tuttavia, parlerò di alcune aree chiave che definiscono le funzioni come un servizio.

Stato

Il primo è stato. Le funzioni sono molto limitate quando si tratta di preservare lo stato. In generale, dovresti assumere che non puoi farlo affatto. Le funzioni seguono più un principio di fuoco e dimenticano. Se si desidera archiviare qualsiasi cosa, farlo con un servizio esterno, come la memorizzazione di file o un database o un server di cache.

Durata dell'esecuzione

Il secondo è la durata dell'esecuzione. È possibile che un'applicazione server sia in esecuzione per ore o giorni senza riavvio, a seconda del processo di distribuzione. Lo stesso vale per l'elaborazione in background. Con le funzioni, il tempo di esecuzione è limitato. Non è previsto che la funzione venga eseguita per più di qualche secondo, e AWS Lambda, ad esempio, termina tutte le funzioni che non sono terminate dopo cinque minuti. Se hai un'attività molto lunga, allora le funzioni come servizio potrebbero non essere la soluzione migliore. 

Latenza di avvio

Quindi abbiamo la latenza di avvio. Questo può essere tutto tra pochi millisecondi e minuti. Naturalmente, questo dipende dalla lingua e dal sistema che stai utilizzando. In genere, una funzione Python o JavaScript su AWS viene avviata entro millisecondi, ma se si utilizza la Java Virtual Machine, potrebbe essere necessario un po 'di tempo prima che la macchina venga avviata, specialmente se la funzione non è stata eseguita negli ultimi dieci minuti, o si verifica un'improvvisa ondata di esecuzione. 

Scalabilità e costo

Questo porta a domande sulla scalabilità e sui costi di esecuzione, e la risposta che stai cercando è: non ti preoccupare. Lo scaling è gestito dal fornitore di servizi e il costo è semplice.

Se stai eseguendo una funzione dieci volte, paghi esattamente queste dieci invocazioni. Se stai correndo 1.000 volte, paghi 1.000. È un po 'più complicato di così, certo, ma questo è il senso. 

Conclusione

Avere un sistema senza server può essere molto vantaggioso. È fantastico se si dispone di traffico incoerente, ad esempio un picco nella parte superiore dell'ora o pochissime richieste occasionali, in quanto non è necessario allocare risorse inutilizzate per la maggior parte del tempo.

Per ricapitolare, i sistemi senza server hanno server, ma sono completamente gestiti dai fornitori di cloud. Le funzioni sono il nucleo di un'architettura senza server e vengono eseguite utilizzando i trigger. La scalabilità e l'alta disponibilità sono già gestite dai fornitori di servizi cloud. Se hai una richiesta molto occasionale o una ricerca grande ma breve, senza server ti aiuta a mantenere bassi i costi.

Guarda il corso completo

Nel corso completo, Introduzione a Serverless, ti mostrerò come utilizzare Amazon Web Services per creare un'app Web "senza server", completa di un back-end API REST. Vedrai anche come gestire alcuni scenari avanzati come l'integrazione di altri servizi AWS e l'orchestrazione di funzioni compatibili con lo stato. Lungo la strada, costruirai un fantastico servizio web per convertire il testo in parlato.

Puoi seguire questo corso subito con un abbonamento a Envato Elements. Con una sola tariffa mensile bassa, puoi accedere non solo a questo corso, ma anche alla nostra libreria in crescita di oltre 1.000 corsi video e eBook leader del settore su Envato Tuts+. 

Inoltre ora ottieni download illimitati dall'enorme libreria Envato Elements di oltre 400.000 risorse creative. Crea con caratteri, foto, grafica e modelli univoci e realizza progetti migliori più velocemente.