CBII-CloudRun/Readme.md
2025-02-24 17:58:05 -05:00

86 lines
5.7 KiB
Markdown

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. 🎯