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