Arsitektur aplikasi Cymbal Bank

Last reviewed 2024-04-19 UTC

Blueprint ini menyertakan aplikasi contoh yang bernama Cymbal Bank. Cymbal Bank menunjukkan praktik terbaik yang direkomendasikan untuk aplikasi dalam penampung. Dengan aplikasi Cymbal Bank, pengguna dapat membuat akun login, login ke akunnya, melihat histori transaksi, melakukan setoran, dan mentransfer uang ke akun pengguna lain. Layanan Cymbal Bank berjalan sebagai penampung yang terhubung satu sama lain melalui REST API dan gRPC API.

Diagram berikut menunjukkan aplikasi Cymbal Bank yang di-deploy di platform developer blueprint.

Arsitektur Cymbal Bank.

Setiap aplikasi juga merupakan layanan jaringan. Hanya aplikasi frontend yang diekspos secara eksternal ke cluster melalui GKE Gateway Controller. Semua aplikasi berjalan sebagai layanan terdistribusi melalui penggunaan Cloud Service Mesh.

Untuk informasi selengkapnya tentang layanan yang disertakan dalam aplikasi Cymbal Bank, lihat repositori Cymbal Bank di GitHub.

Penyewa Cymbal Bank

Untuk memberikan pemisahan antar-tenant, setiap tenant di platform developer memiliki satu cakupan tim dan minimal satu namespace armada. Tenant tidak pernah berbagi namespace. Untuk men-deploy Cymbal Bank, setiap tenant hanya memerlukan satu namespace. Dalam skenario yang lebih kompleks, tenant dapat memiliki beberapa namespace.

Untuk menggambarkan cara Cymbal Bank di-deploy di platform developer, contoh ini mengasumsikan ada tiga tim pengembangan aplikasi terpisah dengan area fokus yang berbeda. Terraform membuat tenant platform developer berikut untuk setiap tim tersebut:

  • frontend tenant: Tim pengembangan yang berfokus pada backend situs dan aplikasi seluler.
  • Tenant accounts: Tim pengembangan yang berfokus pada data pelanggan.
  • Tenant ledger: Tim yang mengelola layanan ledger.

Aplikasi Cymbal Bank

Aplikasi Cymbal Bank terdiri dari enam microservice: frontend, ledgerwriter, balancereader, transactionhistory, userservice, dan contacts. Setiap microservice dipetakan ke aplikasi dalam tenant yang memilikinya.

Tabel berikut menjelaskan pemetaan tim, cakupan tim, namespace armada, dan microservice untuk Cymbal Bank. Untuk tujuan pemetaan ini, contoh ini mengasumsikan bahwa Cymbal Bank dikembangkan oleh tiga tim operator aplikasi terpisah. Tim mengelola berbagai jumlah layanan. Setiap tim diberi cakupan tim.

Tim Cakupan tim Namespace fleet Aplikasi - Microservice Akun layanan Kubernetes

Tim frontend

frontend

frontend

frontend

ksa-frontend

Tim Ledger

ledger

ledger

ledgerwriter

ksa-ledgerwriter

balancereader

ksa-balancereader

transactionhistory

ksa-transactionhistory

Tim akun

accounts

accounts

userservice

ksa-userservice

contacts

ksa-contacts

Struktur database Cymbal Bank

Database Cymbal Bank di-deploy menggunakan AlloyDB untuk PostgreSQL. Database dikonfigurasi dengan instance utama yang memiliki ketersediaan tinggi di satu region dengan node redundan di zona yang berbeda, dan replika lintas region digunakan untuk pemulihan dari bencana. Cymbal Bank menggunakan autentikasi database IAM untuk mengizinkan layanan mengakses database. Database dienkripsi menggunakan CMEK. Dua database PostgreSQL digunakan: ledger-db untuk ledger, dan accounts-db untuk akun pengguna.

Langkah selanjutnya