.gitignore | ||
Jenkinsfile | ||
Jenkinsfile firm int | ||
Jenkinsfile firm out | ||
Readme.md | ||
service-api-gateway.yml | ||
service-firmador.yml | ||
service-nest.yml | ||
service-spring.yml | ||
service.yml |
Este archivo define cómo se despliega un servicio en Cloud Run, que es una plataforma de Google Cloud que permite ejecutar aplicaciones sin preocuparse por la infraestructura.
Service-api-gateway.yml
🔹 ¿Qué hace este servicio?
Es un API Gateway, una especie de "puerta de entrada" que gestiona y redirige las solicitudes entre varios sistemas.
🔹 ¿Qué características tiene?
✅ Utiliza una imagen de un programa previamente construido.
✅ Se ejecuta en Google Cloud con una configuración que le permite recibir hasta 80 solicitudes al mismo tiempo.
✅ Si una solicitud toma más de 5 minutos, se cancela automáticamente.
✅ Se asignan recursos para que funcione de manera eficiente (1 CPU y 512 MB de memoria).
✅ Tiene una configuración especial que le permite verificar si está listo antes de empezar a recibir tráfico.
✅ Usa variables de entorno para conectarse con otros servicios.
Service-Nest.yml
🔹 ¿Qué hace este servicio?
Este servicio es una aplicación basada en Nest.js que forma parte del sistema CBII. Se encarga de procesar solicitudes y conectarse con otras partes del sistema, como bases de datos y almacenamiento.
🔹 ¿Qué características tiene?
✅ Escalabilidad: Puede manejar hasta 80 solicitudes al mismo tiempo.
✅ Tiempo de espera: Si una solicitud toma más de 5 minutos, se cancela automáticamente.
✅ Seguridad: Usa credenciales protegidas para acceder a la base de datos y otros servicios.
✅ Conexión con otros sistemas: Se comunica con servicios como almacenamiento en la nube (DigitalOcean Spaces), firma de documentos y una API externa llamada Hacienda.
✅ Recursos asignados: Tiene 2 CPU y 1GB de memoria, lo que le permite procesar solicitudes de manera eficiente.
🔹 ¿Cómo maneja la seguridad?
Este servicio no guarda contraseñas ni claves en el código. En su lugar, usa un mecanismo seguro llamado Secret Manager, que almacena información sensible como:
🔐 Credenciales de la base de datos
🔐 Llaves de cifrado
🔐 Configuraciones del sistema
🔹 ¿Cómo maneja archivos y almacenamiento?
El servicio tiene acceso a dos almacenes de archivos en la nube (buckets):
📂 "certifados_prod" → Almacena certificados digitales.
📂 "templates_cbii" → Almacena plantillas utilizadas en los procesos del sistema.
Service-Spring.yml
Este archivo configura el despliegue de un servicio en Cloud Run, una plataforma de Google Cloud que permite ejecutar aplicaciones sin necesidad de administrar servidores.
🔹 ¿Qué hace este servicio?
Este servicio forma parte del sistema CBII y está diseñado para gestionar lotes de Facturas en la plataforma. Se encarga de conectarse con otros sistemas, procesar datos y garantizar que la información fluya correctamente.
🔹 Principales características:
✅ Escalabilidad automática: Puede atender hasta 80 solicitudes simultáneamente.
✅ Tiempo de espera: Si una solicitud tarda más de 5 minutos, se detiene automáticamente.
✅ Seguridad: Utiliza credenciales protegidas para acceder a bases de datos y otros servicios sin exponer contraseñas en el código.
✅ Conexión con otros sistemas: Se comunica con servicios como la firma electrónica de documentos y la plataforma Hacienda.
✅ Recursos asignados: Tiene 1 CPU y 512 MB de memoria, lo que permite un equilibrio entre rendimiento y eficiencia.
🔹 ¿Cómo protege la información?
Este servicio no almacena datos sensibles en el código. En su lugar, utiliza Secret Manager, un servicio que mantiene seguras las credenciales, claves de cifrado y configuraciones importantes como:
🔐 Acceso a la base de datos
🔐 Llaves de seguridad (JWT_SECRET)
🔐 URL de Hacienda y otros servicios externos
🔹 ¿Cómo maneja archivos y almacenamiento?
El servicio accede a un almacenamiento en la nube llamado "certifados_prod", donde se guardan documentos importantes, como certificados digitales necesarios para la firma electrónica de documentos.
service.firmador.yml
📌 Nota:
Este archivo, junto con los anteriores, es un archivo de configuración para Google Cloud Run que define cómo se desplegará el servicio cbii-firmador-jenkins en la nube.
✅ Resumen de su función:
- Despliega un servicio llamado cbii-firmador-jenkins en Google Cloud Run.
- Utiliza la imagen
svfe/svfe-api-firmador:v20230109
. - Expone el puerto 8113 para recibir solicitudes.
- Asigna recursos de CPU (1000m) y memoria (512MiB).
- Monta un volumen con certificados desde un bucket de almacenamiento en la nube (
certifados_prod
).
Otros archivos
📌 Nota:
Los archivos adicionales que se han compartido son archivos de configuración para Jenkins, una herramienta de automatización utilizada para gestionar el despliegue de los servicios.
✅ ¿Qué hacen estos archivos?
Estos archivos permiten que Jenkins realice automáticamente el despliegue de los microservicios en Cloud Run, asegurando que cada actualización del código se implemente sin intervención manual.
✅ Beneficios de esta integración:
🔄 Automatización: Reduce errores y agiliza el proceso de despliegue.
🚀 Eficiencia: Cada cambio en el código puede implementarse rápidamente en la nube.
🔐 Seguridad: Se mantienen las configuraciones y accesos controlados dentro del pipeline de despliegue.
En resumen, estos archivos permiten que los microservicios de CBII se actualicen y desplieguen automáticamente en Google Cloud Run, mejorando la eficiencia y estabilidad del sistema. 🎯