El plano incluye una aplicación de ejemplo llamada Cymbal Bank. Cymbal Bank demuestra las prácticas recomendadas que se recomiendan para las aplicaciones alojadas en contenedores. La aplicación de Cymbal Bank permite a los usuarios crear cuentas de acceso, acceder a sus cuentas, ver su historial de transacciones, realizar 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 las APIs de REST y las APIs de gRPC.
En el siguiente diagrama, se muestra la aplicación de Cymbal Bank que se implementa en la plataforma para desarrolladores de planos.
Cada aplicación también es un servicio de red. Solo la aplicación de frontend se expone de forma externa al clúster a través de GKE Gateway Controller. Todas las aplicaciones se ejecutan como servicios distribuidos mediante Anthos Service Mesh.
Para obtener más información sobre los servicios que se incluyen en la aplicación de Cymbal Bank, consulta el repositorio de Cymbal Bank en GitHub.
Usuarios de Cymbal Bank
Para proporcionar separación entre usuarios, cada instancia de la plataforma del desarrollador tiene un permiso de equipo y al menos un espacio de nombres de flota. Los usuarios nunca comparten un espacio de nombres. Para implementar Cymbal Bank, cada usuario solo necesita un espacio de nombres. En situaciones más complejas, un usuario puede tener varios espacios de nombres.
Para ilustrar cómo se implementa Cymbal Bank en la plataforma de desarrolladores, en este ejemplo se supone que hubo tres equipos de desarrollo de aplicaciones con diferentes áreas de enfoque. Terraform crea el siguiente usuario de la plataforma para desarrolladores para cada uno de esos equipos:
- Usuario
frontend
: Un equipo de desarrollo que se enfoca en los backends de la aplicación para dispositivos móviles y el sitio web. - Usuario de
accounts
: Un equipo de desarrollo que se enfoca en los datos de los clientes. - Usuario de
transactions
: Un equipo que administra los servicios de transacción.
Apps de Cymbal Bank
La aplicación de Cymbal Bank consta de seis microservicios: frontend,
ledgerwriter, balancereader, transactionhistory, userservice
y contacts
.
Cada microservicio se asigna a una aplicación dentro del usuario que lo posee.
En la siguiente tabla, se describe la asignación de los equipos, el permiso del equipo, el espacio de nombres de la flota y los microservicios para Cymbal Bank. Para los fines de esta asignación, en este ejemplo se da por sentado que tres equipos de operadores de aplicaciones diferentes desarrollan Cymbal Bank. Los equipos administran una cantidad variable de servicios. A cada equipo se le asigna un permiso de equipo.
Team | Permiso del equipo | Espacio de nombres de la flota | Aplicación: microservicio | Cuenta de servicio de Kubernetes |
---|---|---|---|---|
Equipo de frontend |
|
|
|
|
Equipo de transacciones |
|
|
|
|
|
||||
|
||||
Equipo de cuentas |
|
|
|
|
|
Estructura de la base de datos de Cymbal Bank
Las bases de datos de Cymbal Bank se implementan mediante
AlloyDB para PostgreSQL. Las
bases de datos se configuran con una instancia principal con alta disponibilidad en una región con
nodos redundantes en diferentes zonas y se usan réplicas entre regiones
para la recuperación ante desastres. Cymbal Bank usa la autenticación de bases de datos de IAM
para permitir que los servicios accedan a las bases de datos. Las bases de datos se encriptan con
CMEK. Se usan dos
bases de datos de PostgreSQL: ledger-db
para transacciones y accounts-db
para cuentas de usuario.
Próximos pasos
- Lee cómo asignar los principios de seguridad de BeyondProd al plano (siguiente documento de esta serie).