Anwendungsarchitektur von Cymbal Bank

Last reviewed 2024-04-19 UTC

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

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

Architektur der Cymbal Bank

Jede Anwendung ist auch ein Netzwerkdienst. Nur die Frontend-Anwendung wird dem Cluster extern über den GKE-Gateway-Controller zur Verfügung gestellt. Alle Anwendungen werden als verteilte Dienste über Cloud Service Mesh ausgeführt.

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

Mandanten der Cymbal Bank

Damit Mandanten voneinander getrennt werden, hat jeder Mandant auf der Entwicklerplattform einen Teambereich und mindestens einen Flotten-Namespace. Mandanten teilen nie einen Namespace. Zur 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 Teams für die Anwendungsentwicklung mit unterschiedlichen Schwerpunkten gibt. Terraform erstellt den folgenden Entwicklerplattformmandanten für jedes dieser Teams:

  • 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.
  • transactions-Mandant: Ein Team, das die Transaktionsdienste verwaltet.

Apps von Cymbal Bank

Die Anwendung "Cymbal Bank" besteht aus sechs Mikrodiensten: frontend, ledgerwriter, balancereader, transactionhistory, userservice und contacts. Jeder Mikrodienst wird einer Anwendung innerhalb des Mandanten zugeordnet, der ihn besitzt.

In der folgenden Tabelle wird die Zuordnung der Teams, des Teambereichs, des Flotten-Namespace und der Mikrodienste für die Cymbal Bank beschrieben. Für diese Zuordnung wird in diesem Beispiel davon ausgegangen, dass die Cymbal Bank von drei separaten Anwendungsoperatorteams 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

Transaktionsteam

transactions

transactions

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Kontenteam

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Datenbankstruktur der Cymbal Bank

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 Transaktionen und accounts-db für Nutzerkonten.

Wie geht es weiter?