Java >> Programma Java >  >> Java

Introduzione ai modelli di architettura serverless

In questo post tratterò i modelli di architettura serverless. Con più provider di servizi cloud, l'infrastruttura locale non è aggiornata. Per semplice definizione, serverless può essere l'assenza di un server. Ma è vero? Non proprio. Per iniziare, scopriremo le basi dell'architettura serverless e poi i suoi vantaggi e svantaggi.

Cos'è l'architettura serverless?

Ultimamente, l'architettura serverless sta diventando sempre più una tendenza. Lo sviluppatore scrive ancora il codice lato server, ma viene eseguito in contenitori di calcolo stateless anziché nell'architettura server tradizionale. Un evento attiva questo codice e una terza parte (come AWS Lambda) lo gestisce. Fondamentalmente, questo è Function as a Service (FaaS). AWS Lambda è la forma più popolare di FaaS.

Quindi la definizione di Architettura Serverless –

"L'architettura serverless è un modello di progettazione in cui le applicazioni sono ospitate da un servizio di terze parti, eliminando la necessità di software e hardware del server.

Nell'architettura tradizionale, un utente svolge attività sul lato UI e invia una richiesta al server in cui il codice lato server esegue alcune transazioni del database. Con questa architettura, il client non ha idea di cosa stia succedendo poiché la maggior parte della logica è lato server.

Con l'architettura serverless, avremo più funzioni (lambda) per i singoli servizi e l'interfaccia utente del client li chiamerà tramite API-Gateway.

Quindi nell'architettura di cui sopra

  1. Un'interfaccia utente client quando si accede, autentica l'utente tramite una funzione di autenticazione che interagirà con il database utente.
  2. Allo stesso modo, una volta effettuato l'accesso, l'utente può acquistare o cercare prodotti utilizzando le funzioni di acquisto e ricerca.

Nell'architettura tradizionale basata su server, c'era un elemento centrale che gestiva il flusso, il controllo e la sicurezza. Nell'architettura Serverless, non c'è un pezzo centrale. Lo svantaggio dell'architettura serverless è che poi ci affidiamo alla piattaforma sottostante per la sicurezza.

Perché l'architettura serverless?

Con un'architettura tradizionale, si usava possedere un server, quindi configurare il server web e l'applicazione. Poi è arrivata la rivoluzione del cloud e ora tutti vogliono essere sul cloud. Anche con più provider di servizi cloud, dobbiamo comunque gestire il sistema operativo sul server e sul server web.

E se esistesse un modo in cui puoi concentrarti esclusivamente sul codice e un servizio gestisce il server e il server web. AWS fornisce Lambda, Microsoft Azure fornisce Function per prendersi cura dell'hardware fisico, dei sistemi operativi virtuali e del server web. Questo è il modo in cui l'architettura serverless riduce la complessità consentendo agli sviluppatori di concentrarsi solo sul codice.

Funzione come servizio (FAAS)

Abbiamo coperto un po' di terreno con l'architettura serverless. Ma questo modello è possibile solo con Function as a Service. Lambda è un tipo di funzione come servizio. Fondamentalmente, FaaS riguarda l'esecuzione di codice di back-end senza gestire server o applicazioni server.

Uno dei principali vantaggi di FaaS come AWS Lambda è che puoi utilizzare qualsiasi linguaggio di programmazione (come Java, Javascript, Python, Ruby) per programmare e l'infrastruttura Lambda si occuperà di configurare un ambiente per quel linguaggio.

Un altro vantaggio di FaaS è il ridimensionamento orizzontale. È per lo più automatico ed elastico. Il provider cloud gestisce il ridimensionamento orizzontale.

Strumenti

Sono disponibili numerosi strumenti per la creazione di funzioni di architettura serverless. Questo particolare Framework Serverless semplifica la creazione di un processo.

Vantaggi

  1. Il vantaggio principale dell'utilizzo dell'architettura serverless è la riduzione dei costi operativi. Una volta che un provider cloud si occupa dell'infrastruttura, non devi concentrarti sull'infrastruttura.
  2. Distribuzione più rapida, grande flessibilità:la velocità aiuta con l'innovazione. Con un'implementazione più rapida, il serverless semplifica la modifica delle funzioni e il test delle modifiche.
  3. Costi e tempi di ridimensionamento ridotti. Con i fornitori di infrastruttura che gestiscono la maggior parte del ridimensionamento orizzontale, il proprietario dell'applicazione non deve preoccuparsi del ridimensionamento.
  4. Concentrati maggiormente sull'esperienza utente. Pertanto, gli sviluppatori possono concentrarsi maggiormente sull'esperienza utente (UX) con l'architettura che diventa più semplice.

Inconvenienti

Dopotutto, ci sono dei compromessi con qualsiasi progetto architettonico.

  1. Controllo del fornitore:utilizzando un fornitore di infrastruttura, stiamo cedendo il controllo per il servizio di back-end. Dobbiamo fare affidamento sulla loro infrastruttura di sicurezza invece di progettare la nostra.
  2. L'esecuzione dei carichi di lavoro potrebbe essere più costosa per il serverless.
  3. Ripetizione della logica – Migrazione del database significa ripetizione del codice e coordinamento per il nuovo database.
  4. Problemi di latenza all'avvio:quando arriva la richiesta iniziale, la piattaforma deve avviare le risorse necessarie prima di poter soddisfare la richiesta e ciò causa problemi di latenza iniziale.

Conclusione

In questo post, ho discusso dei modelli di architettura serverless e di cosa rende possibile l'utilizzo di questo modello. Ho anche discusso i vantaggi e gli svantaggi. Se hai altre domande sull'architettura serverless, pubblica il tuo commento e sarò felice di rispondere. Puoi iscriverti al mio blog qui.

Riferimenti

  1. Architettura senza server: senza server

Etichetta Java