Anwendungsarchitektur der Cymbal Bank

Last reviewed 2024-04-19 UTC

Der Blueprint enthält eine Beispielanwendung namens Cymbal Bank. Cymbal Bank veranschaulicht die Best Practices, die für containerisierte Anwendungen empfohlen werden. Mit der Cymbal Bank-Anwendung können Nutzer Anmeldekonten erstellen, sich in ihrem Konto anmelden, ihren Transaktionsverlauf ansehen, Zahlungen vornehmen und Geld an Konten anderer Nutzer übertragen. Die Cymbal Bank-Dienste werden als Container ausgeführt, die über REST APIs und gRPC APIs miteinander verbunden sind.

Das folgende Diagramm zeigt die Cymbal Bank-Anwendung, die auf der Blueprint-Entwicklerplattform bereitgestellt wird.

Architektur von Cymbal Bank

Jede Anwendung ist auch ein Netzwerkdienst. Nur die Frontend-Anwendung wird über den GKE-Gateway-Controller extern für den Cluster verfügbar gemacht. Alle Anwendungen werden mit Cloud Service Mesh als verteilte Dienste ausgeführt.

Weitere Informationen zu den Diensten, die in der Anwendung „Cymbal Bank“ enthalten sind, finden Sie im Cymbal Bank-Repository auf GitHub.

Cymbal Bank-Nutzer

Um eine Trennung zwischen den einzelnen Nutzern zu ermöglichen, hat jeder Nutzer auf der Entwicklerplattform einen Teambereich und mindestens einen Flotten-Namespace. Mehrere Kunden teilen sich nie einen Namespace. Für die Bereitstellung von Cymbal Bank benötigt jeder Mandant nur einen Namespace. In komplexeren Szenarien kann ein Mandant mehrere Namespaces haben.

Zur Veranschaulichung der Bereitstellung von Cymbal Bank auf der Entwicklerplattform wird in diesem Beispiel davon ausgegangen, dass es drei separate Anwendungsentwicklungsteams mit unterschiedlichen Schwerpunkten gab. Terraform erstellt für jedes dieser Teams den folgenden Entwicklerplattform-Tenant:

  • frontend-Mandant: Ein Entwicklungsteam, das sich auf die Back-Ends der Website und der mobilen Anwendungen konzentriert.
  • accounts-Mandant: Ein Entwicklungsteam, das sich auf Kundendaten konzentriert.
  • ledger Tenant: Ein Team, das die Ledger-Dienste verwaltet.

Cymbal Bank-Apps

Die Cymbal Bank-Anwendung besteht aus sechs Mikrodiensten: frontend, ledgerwriter, balancereader, transactionhistory, userservice und contacts. Jeder Mikrodienst ist einer Anwendung im zugehörigen Mandanten zugeordnet.

In der folgenden Tabelle wird die Zuordnung der Teams, des Teambereichs, des Flotten-Namespaces und der Mikrodienste für Cymbal Bank beschrieben. Für diese Zuordnung wird in diesem Beispiel davon ausgegangen, dass die Cymbal Bank von drei separaten Anwendungsbetreiberteams entwickelt wird. Teams verwalten eine unterschiedliche Anzahl von Diensten. Jedem Team wird ein Teambereich zugewiesen.

Team Teambereich Flotten-Namespace Anwendung – Mikrodienst Kubernetes-Dienstkonto

Frontend-Team

frontend

frontend

frontend

ksa-frontend

Ledger-Team

ledger

ledger

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Account-Team

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Datenbankstruktur der Cymbal Bank

Die Cymbal Bank-Datenbanken werden mit AlloyDB for PostgreSQL bereitgestellt. Die Datenbanken sind mit einer hochverfügbaren primären Instanz in einer Region mit redundanten Knoten in verschiedenen Zonen konfiguriert. Regionenübergreifende Replikate werden zur Notfallwiederherstellung verwendet. Cymbal Bank verwendet die IAM-Datenbankauthentifizierung, um Diensten Zugriff auf die Datenbanken zu gewähren. Die Datenbanken werden mit CMEK verschlüsselt. Es werden zwei PostgreSQL-Datenbanken verwendet: ledger-db für das Ledger und accounts-db für Nutzerkonten.

Nächste Schritte