El plano incluye una aplicación de ejemplo llamada Cymbal Bank. Cymbal Bank muestra las prácticas recomendadas para aplicaciones contenedorizadas. La aplicación Cymbal Bank permite a los usuarios crear cuentas de inicio de sesión, iniciar sesión en sus cuentas, ver su historial de transacciones, hacer depósitos y transferir dinero a las cuentas de otros usuarios. Los servicios de Cymbal Bank se ejecutan como contenedores que se conectan entre sí a través de APIs REST y APIs gRPC.
En el siguiente diagrama se muestra la aplicación Cymbal Bank, que se ha implementado en la plataforma de desarrollo de Blueprint.
Cada aplicación también es un servicio de red. Solo la aplicación frontend se expone externamente al clúster a través del controlador de GKE Gateway. Todas las aplicaciones se ejecutan como servicios distribuidos mediante Cloud Service Mesh.
Para obtener más información sobre los servicios que incluye la aplicación Cymbal Bank, consulta el repositorio de Cymbal Bank en GitHub.
Inquilinos de Cymbal Bank
Para separar a los arrendatarios, cada uno de ellos en la plataforma para desarrolladores tiene un ámbito de equipo y al menos un espacio de nombres de flota. Los inquilinos nunca comparten un espacio de nombres. Para implementar Cymbal Bank, cada arrendatario solo necesita un espacio de nombres. En situaciones más complejas, un arrendatario puede tener varios espacios de nombres.
Para ilustrar cómo se implementa Cymbal Bank en la plataforma para desarrolladores, en este ejemplo se presupone que había tres equipos de desarrollo de aplicaciones independientes con diferentes áreas de especialización. Terraform crea el siguiente inquilino de la plataforma para desarrolladores para cada uno de esos equipos:
frontend
Tenant: equipo de desarrollo que se centra en los back-ends de sitios web y aplicaciones móviles.accounts
Tenant: equipo de desarrollo centrado en los datos de los clientes.- Inquilino de
ledger
: equipo que gestiona los servicios de libro de contabilidad.
Aplicaciones de Cymbal Bank
La aplicación Cymbal Bank consta de seis microservicios: frontend,
ledgerwriter, balancereader, transactionhistory, userservice
y contacts
.
Cada microservicio se asigna a una aplicación dentro del arrendatario al que pertenece.
En la siguiente tabla se describe la asignación de los equipos, el ámbito de los equipos, el espacio de nombres de la flota y los microservicios de Cymbal Bank. Para esta asignación, se presupone que Cymbal Bank está desarrollado por tres equipos de operadores de aplicaciones independientes. Los equipos gestionan un número variable de servicios. A cada equipo se le asigna un ámbito de equipo.
Equipo | Ámbito de equipos | Espacio de nombres de flota | Aplicación - Microservicio | Cuenta de servicio de Kubernetes |
---|---|---|---|---|
Equipo de frontend |
|
|
|
|
Equipo de Ledger |
|
|
|
|
|
||||
|
||||
Equipo de cuentas |
|
|
|
|
|
Estructura de la base de datos de Cymbal Bank
Las bases de datos de Cymbal Bank se implementan con AlloyDB para PostgreSQL. Las bases de datos se configuran con una instancia principal de alta disponibilidad en una región con nodos redundantes en diferentes zonas, y se utilizan réplicas entre regiones para la recuperación tras desastres. Cymbal Bank usa la autenticación de bases de datos de gestión de identidades y accesos
para permitir que los servicios accedan a las bases de datos. Las bases de datos se cifran con CMEK. Se usan dos bases de datos de PostgreSQL: ledger-db
para el libro de contabilidad y accounts-db
para las cuentas de usuario.
Siguientes pasos
- Consulta información sobre cómo asignar los principios de seguridad de BeyondProd al plano (el siguiente documento de esta serie).