Architettura dell'applicazione Cymbal Bank

Last reviewed 2024-12-13 UTC

Il blueprint include un'applicazione di esempio denominata Cymbal Bank. Cymbal Bank mostra le best practice consigliate per le applicazioni con contenitori. L'applicazione Cymbal Bank consente agli utenti di creare account di accesso, accedere al proprio account, visualizzare la cronologia delle transazioni, effettuare depositi e trasferire denaro agli account di altri utenti. I servizi Cymbal Bank vengono eseguiti come container che si connettono tra loro tramite API REST e API gRPC.

Il seguente diagramma mostra l'applicazione Cymbal Bank di cui è stato eseguito il deployment sulla piattaforma per sviluppatori Blueprint.

Architettura di Cymbal Bank.

Ogni applicazione è anche un servizio di rete. Solo l'applicazione frontend viene esposta esternamente al cluster tramite il controller GKE Gateway. Tutte le applicazioni vengono eseguite come servizi distribuiti tramite l'utilizzo di Cloud Service Mesh.

Per maggiori informazioni sui servizi inclusi nell'applicazione Cymbal Bank, consulta il repository di Cymbal Bank su GitHub.

Inquilini di Cymbal Bank

Per garantire la separazione tra i tenant, ogni tenant nella piattaforma per sviluppatori ha un ambito di team e almeno uno spazio dei nomi del parco. Gli utenti non condividono mai uno spazio dei nomi. Per eseguire il deployment di Cymbal Bank, ogni tenant ha bisogno di un solo spazio dei nomi. In scenari più complessi, un tenant può avere più spazi dei nomi.

Per illustrare come Cymbal Bank viene implementato sulla piattaforma per sviluppatori, questo esempio presuppone che esistano tre team di sviluppo di applicazioni distinti con aree di interesse diverse. Terraform crea il seguente tenant della piattaforma per sviluppatori per ogni team:

  • frontend tenant: un team di sviluppo che si occupa del sito web e dei backend delle applicazioni mobile.
  • accounts tenant: un team di sviluppo che si concentra sui dati dei clienti.
  • ledger tenant: un team che gestisce i servizi di registro.

App Cymbal Bank

L'applicazione Cymbal Bank è composta da sei microservizi: frontend, ledgerwriter, balancereader, transactionhistory, userservice e contacts. Ogni microservizio è mappato a un'applicazione all'interno del tenant che lo possiede.

La tabella seguente descrive la mappatura dei team, dell'ambito del team, dello spazio dei nomi del parco e dei microservizi per Cymbal Bank. Ai fini di questa mappatura, in questo esempio si presume che Cymbal Bank sia sviluppata da tre team di operatori di applicazioni separati. I team gestiscono un numero variabile di servizi. A ogni team viene assegnato un ambito.

Team Ambito del team Spazio dei nomi del parco risorse Applicazione - Microservizio Service account Kubernetes

Team frontend

frontend

frontend

frontend

ksa-frontend

Team di Ledger

ledger

ledger

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Team dedicato agli account

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Struttura del database Cymbal Bank

I database di Cymbal Bank vengono di cui vengono eseguiti il deployment utilizzando AlloyDB per PostgreSQL. I database sono configurati con un'istanza principale ad alta disponibilità in una regione con nodi ridondanti in zone diverse e le repliche tra regioni vengono utilizzate per il ripristino di emergenza. Cymbal Bank utilizza l'autenticazione del database IAM per consentire ai servizi di accedere ai database. I database vengono criptati utilizzando CMEK. Vengono utilizzati due database PostgreSQL: ledger-db per il ledger e accounts-db per gli account utente.

Passaggi successivi