Architettura senza server - Integrazione con livello dati

2

La mia domanda è in relazione con l'architettura senza server (ad esempio AWS Lambda) e come si interagisce con i database in questo sistema.

Tipicamente in un'architettura a 3 livelli, abbiamo un WebService che interagisce con il Database. L'idea qui è di garantire che una tabella di database sia di proprietà di un componente. Quindi, i cambiamenti in là, non richiedono modifiche in più punti e vi è anche un chiaro senso di proprietà, quindi la scalabilità e la sicurezza sono più facili da gestire.

Tuttavia, passando all'architettura senza server, questa proprietà non è più chiara e l'esposizione di un servizio web per accedere a un database e l'utilizzo di questo servizio Web da parte di Lambda non ha senso per me.

Mi piacerebbe sapere un po 'sui modelli e sugli ampli comuni; pratiche intorno a questo.

    
posta AgentX 14.01.2018 - 06:16
fonte

1 risposta

1

100% d'accordo, la suddivisione dei microservizi in nano lambda non ha senso quando molti di essi usano lo stesso DB

La tua architettura a 3 livelli non cambia davvero. Il tuo unico microservizio che protegge il suo database esiste ancora, stai solo ospitando ciascuno dei suoi metodi separatamente.

Ma quel servizio concettuale che raggruppa tutte le funzioni esiste ancora nel design e nella pratica come datalayer.

Ora vuoi distribuire un aggiornamento su un singolo metodo? Quale versione è il servizio concettuale? hai bisogno di aggiornare uno dei modelli o una tabella nel DB? quali metodi sono interessati e devono essere aggiornati?

Se vuoi passare ai nano servizi, che li ospitiate come lambda senza server o no, devono essere progettati come tali da zero. Ciascuno incapsula il proprio datalayer se ne è richiesto uno.

Tuttavia. di solito in tali configurazioni, il lambdas non avrà affatto un datalayer o forse possiede una sola tabella nosqlor sqlite db per i propri meccanismi interni

Invece genereranno ed elaboreranno i messaggi su una coda di messaggi. Gli eventi vengono passati attraverso il sistema di nanoservizi ognuno facendo il suo piccolo bit e generando un nuovo messaggio.

Alla fine alcuni potrebbero persistere i dati o aggiornare un record da qualche parte e quindi verranno raccolti da un API più grande che può comprendere tutte le operazioni richieste dal suo datalayer

Ma lo perdi, ottieni riga, cambia stato, salva riga, il processo successivo ottiene riga ... flusso. tutti gli stati intermedi sono messaggi effimeri

    
risposta data 14.01.2018 - 10:36
fonte

Leggi altre domande sui tag