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, all'account, visualizzare la cronologia delle transazioni, effettuare versamenti e trasferire denaro agli 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 di sviluppo di progetti base.
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 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 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 bisogno solo uno spazio dei nomi. In scenari più complessi, un tenant può avere più 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 backend per applicazioni mobile.- tenant
accounts
: un team di sviluppo incentrato sui dati dei clienti. ledger
tenant: un team che gestisce i servizi di ledger.
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 di cui è proprietario.
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 |
|
|
|
|
Team Ledger |
|
|
|
|
|
||||
|
||||
Team dedicato agli account |
|
|
|
|
|
Struttura del database di Cymbal Bank
Il deployment dei database di Cymbal Bank viene eseguito
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 IAM dei database per consentire ai servizi di accedere ai database. I database vengono criptati
CMEK. Vengono utilizzati due database PostgreSQL: ledger-db
per il ledger e accounts-db
per gli account utente.
Passaggi successivi
- Scopri di più sulla mappatura dei principi di sicurezza di BeyondProd al progetto (documento successivo di questa serie).