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.
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 |
|
|
|
|
Transaktionsteam |
|
|
|
|
|
||||
|
||||
Kontenteam |
|
|
|
|
|
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?
- Weitere Informationen zum Zuordnen von BeyondProd-Sicherheitsgrundsätzen zum Blueprint (nächstes Dokument in dieser Reihe)