Architettura delle applicazioni di Cymbal Bank

Last reviewed 2024-04-19 UTC

Il progetto include un'applicazione di esempio denominata Cymbal Bank. Cymbal La banca dimostra le best practice consigliate per i container diverse applicazioni. L'applicazione Cymbal Bank consente agli utenti di creare account di accesso, all'account, visualizzare la cronologia delle transazioni, effettuare versamenti e trasferire denaro agli altri utenti . I servizi di Cymbal Bank vengono eseguiti come container si connettono tra loro tramite API REST e API gRPC.

Il seguente diagramma mostra l'applicazione Cymbal Bank di cui è stato eseguito il deployment di sviluppo di progetti base.

Architettura di Cymbal Bank.

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

Per ulteriori informazioni sui servizi inclusi in Cymbal Bank vedi il repository di Cymbal Bank su GitHub.

Inquilini di Cymbal Bank

Per garantire la separazione tra i tenant, ogni tenant nella piattaforma di sviluppo ha un ambito del 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 solo bisogno uno 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 che esistevano tre team di sviluppo delle applicazioni separati, aree di interesse. Terraform crea il seguente tenant della piattaforma per sviluppatori per ognuno di questi squadre:

  • frontend tenant: un team di sviluppo incentrato sul sito web e per applicazioni mobile.
  • tenant accounts: un team di sviluppo incentrato sui dati dei clienti.
  • tenant transactions: un team che gestisce i servizi di transazione.

App di 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 di cui è proprietario.

La tabella seguente descrive la mappatura dei team, dell'ambito del team e del parco risorse e microservizi per Cymbal Bank. Ai fini di questa mappatura, in questo esempio si suppone che Cymbal Bank sia sviluppato da tre operatori di applicazioni separati team di sicurezza. I team gestiscono un numero variabile di servizi. A ogni team è assegnato un team l'ambito di attività.

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

Team 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 AlloyDB per PostgreSQL. La configurati con un'istanza principale a disponibilità elevata in una regione con nodi ridondanti in zone diverse e repliche tra regioni per il ripristino di emergenza. Cymbal Bank utilizza l'autenticazione dei database IAM per consentire ai servizi di accedere ai database. I database vengono criptati CMEK. Due. Vengono utilizzati i database PostgreSQL: ledger-db per le transazioni e accounts-db per gli account utente.

Passaggi successivi