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.
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 mengilustrasikan 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 |
|
|
|
|
Tim Ledger |
|
|
|
|
|
||||
|
||||
Tim akun |
|
|
|
|
|
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
- Baca cara memetakan prinsip keamanan BeyondProd ke blueprint (dokumen berikutnya dalam seri ini).