Arsitektur aplikasi Cymbal Bank

Last reviewed 2023-12-20 UTC

Cetak biru ini berisi contoh aplikasi yang bernama Cymbal Bank. Cymbal Bank menunjukkan praktik terbaik yang direkomendasikan untuk aplikasi dalam container. Aplikasi Cymbal Bank memungkinkan pengguna membuat akun login, login ke akun, melihat histori transaksi, melakukan setoran, dan mentransfer uang ke akun pengguna lain. Layanan Cymbal Bank berjalan sebagai container yang terhubung satu sama lain melalui REST API dan gRPC API.

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

Arsitektur Cymbal Bank.

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

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

Penyewa Cymbal Bank

Untuk memisahkan antar-tenant, setiap tenant di platform developer memiliki satu cakupan tim dan setidaknya satu namespace fleet. Penyewa 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 bahwa ada tiga tim pengembangan aplikasi terpisah dengan area fokus yang berbeda. Terraform membuat tenant platform developer berikut untuk setiap tim tersebut:

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

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 fleet, dan microservice untuk Cymbal Bank. Untuk tujuan pemetaan ini, contoh ini mengasumsikan bahwa Cymbal Bank dikembangkan oleh tiga tim operator aplikasi yang terpisah. Tim mengelola berbagai jumlah layanan. Setiap tim diberi ruang lingkup tim.

Team Cakupan tim Namespace armada Aplikasi - Microservice Akun layanan Kubernetes

Tim frontend

frontend

frontend

frontend

ksa-frontend

Tim transaksi

transactions

transactions

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 sangat tersedia di satu region dengan node redundan di zona berbeda, dan replika lintas region digunakan untuk pemulihan dari bencana. Cymbal Bank menggunakan autentikasi database IAM untuk mengizinkan akses layanan ke database. Database dienkripsi menggunakan CMEK. Dua database PostgreSQL digunakan: ledger-db untuk transaksi dan accounts-db untuk akun pengguna.

Langkah selanjutnya