Compartimos un post genuino, en portugués originalmente, aquí reescrito y traducido al español para explicar cómo desplegar una API en Rust en Cloud Run usando una pipeline de GitLab. La aproximación de arquitectura utilizada fue Domain Driven Design DDD para mantener la lógica de negocio separada de la infraestructura y la capa de transporte.
Estructura general del proyecto y main: la parte esencial arranca en main.rs donde se define la ruta health usando warp y un handler get_health_handler. En runtime se arranca el servidor warp indicando explícitamente la dirección 0.0.0.0 y el puerto 8080 mediante la llamada run con el argumento ([0, 0, 0, 0], 8080) para que el contenedor sea accesible desde fuera. La organización de carpetas sigue DDD con carpetas domain, infra y use_case para mantener entidades y casos de uso desacoplados.
Ejemplo simplificado de la responsabilidad de main: se registra la ruta health con método GET vinculada al handler correspondiente y se ejecuta warp serve con run en la tupla de socket y puerto para que Cloud Run pueda enrutar tráfico externo correctamente.
Archivo Dockerfile y multi stage build: se recomienda un builder basado en la imagen oficial de Rust que instala dependencias de compilación como pkg-config y libssl-dev, compila la aplicación en modo release y luego copia el binario a una imagen final basada en debian slim para reducir el tamaño y asegurar compatibilidad glibc. En la imagen final se instalan librerías de tiempo de ejecución mínimas como libssl y se expone el puerto 8080. Es importante que el contenedor escuche en 0.0.0.0 y respete la variable de entorno PORT cuando sea necesario.
Pausas claves del Dockerfile: etapa builder con FROM rust:latest AS builder, instalación de librerías de desarrollo, cargo build --release; etapa final con FROM debian:bookworm-slim, instalación de libssl3 y ca-certificates, copia del binario desde el builder, ENV PORT 8080, EXPOSE 8080 y CMD para ejecutar el binario compilado.
Pipeline GitLab y despliegue a Cloud Run: la job deploy_cloud_run se activa para la rama dev en pushes y realiza pasos previos como descargar el SDK de Google Cloud, activar la cuenta de servicio a partir de un secreto codificado en base64, configurar el proyecto GCP y autenticar Docker con Artifact Registry. La job construye una imagen etiquetada con el commit corto, la sube al registro y ejecuta gcloud run deploy apuntando a la imagen, permitiendo acceso no autenticado si se desea y estableciendo variables de entorno para el servicio.
Recomendaciones de seguridad: guardar el JSON de la cuenta de servicio como secreto en GitLab CI para evitar filtraciones, y otorgar a esa cuenta únicamente los permisos necesarios. Permisos mínimos que suelen ser necesarios para esta job: roles run.admin para desplegar servicios Cloud Run, roles viewer para lecturas generales y roles iam.serviceAccountUser para permitir que Cloud Run use la cuenta de servicio.
Ejemplo de resultado esperado en la consola de GitLab una vez desplegado: Service api-dev revision su-api-00000-pe ha sido desplegado y está recibiendo 100 percent of traffic. Service URL https://su-api-hash-uc.a.run.app. Para comprobar el endpoint health se puede usar curl contra la URL del servicio y debería devolver un JSON con estado healthy y un mensaje indicando que la API funciona correctamente.
Beneficios y contexto para empresas: este flujo es ideal para equipos que necesitan rapidez en despliegues y control de versiones de imágenes, además de integrarse con prácticas de DevOps. Si tu empresa busca desarrollar soluciones a medida o aplicaciones a medida podemos ayudarte desde el diseño hasta el despliegue en la nube. Consulta nuestros servicios de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software multiplataforma.
Servicios complementarios y palabras clave: en Q2BSTUDIO ofrecemos soluciones en inteligencia artificial para empresas, agentes IA integrados, servicios de ciberseguridad y pentesting, y despliegues en servicios cloud aws y azure. También trabajamos en proyectos de inteligencia de negocio y Power BI para obtener insights accionables. Si te interesa explorar cómo aplicar IA o modernizar tus procesos, visita nuestra página de inteligencia artificial en servicios de inteligencia artificial.
Palabras clave incluidas en este contenido para mejorar posicionamiento y búsquedas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.
Conclusión y ayuda práctica: si te quedas atascado en algún paso de compilación, empaquetado o despliegue, revisa la configuración del puerto y la dirección de escucha 0.0.0.0, verifica que la cuenta de servicio tenga los roles necesarios y que el secreto con el JSON de la cuenta esté correctamente cargado en las variables de CI. Esperamos que esta guía te ayude a desimpedir y avanzar rápido con tu despliegue en Cloud Run.