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.
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 |
|
|
|
|
Équipe Ledger |
|
|
|
|
|
||||
|
||||
Équipe chargée des comptes |
|
|
|
|
|
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
- Découvrez comment mettre en correspondance les principes de sécurité BeyondProd et le plan (document suivant de cette série).