Architecture de l'application Cymbal Bank

Last reviewed 2024-04-19 UTC

Le plan comprend un exemple d'application nommé Cymbal Bank. Cymbal Bank illustre les bonnes pratiques recommandées pour les applications conteneurisées. 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 de 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 diagramme suivant montre l'application Cymbal Bank déployée sur la plate-forme de développement de modèles.

Architecture de Cymbal Bank.

Chaque application est également un service réseau. Seule l'application frontale est exposée en externe au cluster via le contrôleur GKE Gateway. Toutes les applications s'exécutent en tant que services distribués via Cloud 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 niveau d'accès 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 seul 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 ledger: équipe qui gère les services de journal.

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 dans le locataire qui en est propriétaire.

Le tableau suivant décrit le mappage des équipes, de leur portée, de l'espace de noms de la flotte 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 variable de services. Chaque équipe se voit attribuer un champ d'application.

Team Champ d'application de l'équipe Espace de noms de parc Application : microservice Compte de service Kubernetes

Équipe frontend

frontend

frontend

frontend

ksa-frontend

Équipe Ledger

ledger

ledger

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Équipe chargée des comptes

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Structure de la base de données Cymbal Bank

Les bases de données de 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 dupliquées interrégionales sont utilisées pour la reprise après sinistre. Cymbal Bank utilise l'authentification IAM pour les bases de données pour 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 le journal et accounts-db pour les comptes utilisateur.

Étape suivante