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.
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 |
|
|
|
|
Tim transaksi |
|
|
|
|
|
||||
|
||||
Tim Akun |
|
|
|
|
|
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
- Baca tentang memetakan prinsip-prinsip keamanan BeyondProd ke blueprint (dokumen berikutnya dalam seri ini).