Architettura dell'applicazione di Cymbal Bank

Last reviewed 2024-04-19 UTC

Il progetto include un'applicazione di esempio denominata Cymbal Bank. CymbalBank dimostra le best practice consigliate per le applicazioni containerizzate. L'applicazione Cymbal Bank consente agli utenti di creare account di accesso, accedere ai propri account, visualizzare la cronologia delle transazioni, effettuare versamenti 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 dei progetti.

Architettura di Cymbal Bank.

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

Per ulteriori informazioni sui servizi inclusi nell'applicazione di 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 team e almeno uno spazio dei nomi del parco risorse. I tenant non condividono mai uno spazio dei nomi. Per eseguire il deployment di Cymbal Bank, ogni tenant ha bisogno di uno solo spazio dei nomi. In scenari più complessi, un tenant può avere diversi spazi dei nomi.

Per illustrare il deployment di Cymbal Bank sulla piattaforma per sviluppatori, in questo esempio si presuppone che fossero presenti tre team di sviluppo delle applicazioni distinti con aree di interesse diverse. Terraform crea il seguente tenant della piattaforma per sviluppatori per ciascuno di questi team:

  • tenant frontend: un team di sviluppo dedicato ai backend di siti web e applicazioni mobile.
  • tenant di accounts: un team di sviluppo dedicato ai dati dei clienti.
  • transactions tenant: un team che gestisce i servizi di transazione.

App Cymbal Bank

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

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

Squadra Ambito del team Spazio dei nomi del parco risorse Applicazione - Microservizio Account di servizio Kubernetes

Team di frontend

frontend

frontend

frontend

ksa-frontend

Team Transazioni

transactions

transactions

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Team dedicato agli account

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Struttura del database di Cymbal Bank

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

Passaggi successivi