Progettazione di un'architettura nanoservice di grandi dimensioni con AWS Lambdas

2

Sto passando da un'architettura accoppiata a un'architettura disaccoppiata utilizzando i microservizi con AWS Lambda.

Ecco la mia architettura attuale:

OgniroutedelgatewayAPIècollegataaunLambdaspecifico,ognunodiessihaun'attivitàspecifica,matutticondividonoilcodicecomune.

Puntididolore:-DevodistribuiretuttoilLambdaquandosimodificailcodicecondiviso.
-Riutilizzodelcodicenonostanteilriutilizzodeimicroservizi.

Checosavorreifare:

Ilcodicechesioccupadicontrollaregliinputdeiclient,chiamareilcodicebusinessspecificoeformattarel'outputèospitatoinquellochehochiamato"AWS Lambda API Gateway" (sul mio grafico) o lambda collegato all'API pubblica.

Il codice aziendale è ospitato in diversi Lambda raggruppati in servizi identificati. (A e B nel mio esempio).

Ho alcune domande su questo design:

  1. Quale protocollo dovrei usare per connettere i vari lambda:

    • Esecuzione di chiamate da lambda collegate all'API pubblica a lambda del servizio.
    • Un lambda di un servizio che chiama un lambda da uno stesso servizio.
    • Un lambda di un servizio che chiama un lambda da un servizio diverso.
  2. Il modo più pulito per i servizi di versione e un meccanismo di fallback su una versione diversa di un servizio?

Idee:

  • Informazioni sui protocolli di comunicazione tra lambda collegato con l'API pubblica:
    • I lambda collegati all'API pubblica comunicano con lambdas del servizio, tramite un'API privata servita con il gateway API per la richiesta CRUD.
    • I lambdas contenuti nei servizi comunicano con lambda di altri servizi tramite gateway API (per attività di sincronizzazione) o SNS / SQS (per attività asincrone)
posta Jean Lbr 12.12.2016 - 17:09
fonte

0 risposte

Leggi altre domande sui tag