Architecture de l'application Cymbal Bank

Last reviewed 2024-04-19 UTC

Le plan comprend un exemple d'application nommé Cymbal Bank. Cymbal Bank présente les bonnes pratiques recommandées pour les applications en conteneur. L'application Cymbal Bank permet aux utilisateurs de créer des comptes de connexion, de se connecter à leur compte, de consulter l'historique de leurs transactions, d'effectuer des virements et de transférer de l'argent sur des comptes d'autres utilisateurs. Les services Cymbal Bank s'exécutent en tant que conteneurs qui se connectent les uns aux autres via les API REST et les API gRPC.

Le schéma suivant montre l'application Cymbal Bank déployée sur la plate-forme de développement de plans.

Architecture de Cymbal Bank.

Chaque application est également un service réseau. Seule l'application d'interface est exposée en externe au cluster via le contrôleur de passerelle GKE. Toutes les applications s'exécutent en tant que services distribués via Anthos Service Mesh.

Pour en savoir plus sur les services inclus dans l'application Cymbal Bank, consultez le dépôt Cymbal Bank sur GitHub.

Locataires de Cymbal Bank

Pour assurer la séparation entre les locataires, chaque locataire de la plate-forme de développement dispose d'un champ d'application d'équipe et d'au moins un espace de noms de parc. Les locataires ne partagent jamais un espace de noms. Pour déployer Cymbal Bank, chaque locataire n'a besoin que d'un espace de noms. Dans des scénarios plus complexes, un locataire peut avoir plusieurs espaces de noms.

Pour illustrer le déploiement de Cymbal Bank sur la plate-forme du développeur, cet exemple suppose qu'il existe trois équipes de développement d'applications distinctes avec différents domaines d'action. Terraform crée le locataire de plate-forme de développeur suivant pour chacune de ces équipes :

  • Locataire frontend : équipe de développement axée sur les sites Web et les backends d'applications mobiles.
  • accounts locataire : équipe de développement axée sur les données client.
  • Locataire transactions : équipe qui gère les services de transaction.

Applications Cymbal Bank

L'application Cymbal Bank se compose de six microservices : frontend, ledgerwriter, balancereader, transactionhistory, userservice et contacts. Chaque microservice est mappé à une application au sein du locataire auquel il appartient.

Le tableau suivant décrit le mappage des équipes, du champ d'application de l'équipe, de l'espace de noms du parc et des microservices pour Cymbal Bank. Pour les besoins de ce mappage, cet exemple suppose que Cymbal Bank est développé par trois équipes d'application distinctes. Les équipes gèrent un nombre varié de services. Un champ d'application d'équipe est attribué à chaque équipe.

Team Champ d'application de l'équipe Espace de noms du parc Application – Microservice Compte de service Kubernetes

Équipe chargée de l'interface

frontend

frontend

frontend

ksa-frontend

Équipe en charge des transactions

transactions

transactions

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Équipe Comptes

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Structure de la base de données Cymbal Bank

Les bases de données Cymbal Bank sont déployées à l'aide d'AlloyDB pour PostgreSQL. Les bases de données sont configurées avec une instance principale à disponibilité élevée dans une région avec des nœuds redondants dans différentes zones, et des instances répliquées interrégionales sont utilisées pour la reprise après sinistre. Cymbal Bank utilise l'authentification IAM pour les bases de données afin d'autoriser les services à accéder aux bases de données. Les bases de données sont chiffrées à l'aide de CMEK. Deux bases de données PostgreSQL sont utilisées : ledger-db pour les transactions et accounts-db pour les comptes utilisateur.

Étapes suivantes