O2O Deployer: automatización de despliegues en un solo comando

Automatización Deployer Desarrollo

La automatización de procesos críticos se ha vuelto clave en nuestro desarrollo. Nos permite garantizar despliegues seguros y ágiles, reducir riesgos y enfocarnos en crear soluciones de valor.

1. Introducción
2. Automatización como cultura
3. Deployer
3.1 ¿Por qué desarrollamos Deployer?
3.2 ¿Qué hace Deployer?
3.3 Arquitectura y diseño técnico de Deployer
4. Acciones disponibles en Slack
5. Panel de control de Deployer
6. Seguridad
7. Visión de futuro

Introducción

A lo largo de nuestra trayectoria, la automatización de procesos críticos se ha convertido en una pieza estratégica e indispensable para nuestro equipo de desarrollo.

El hecho de trabajar con una gran variedad de servicios y tecnologías, junto a la multitud de pasos previos a cada release, hace imprescindible contar con herramientas que garanticen un despliegue seguro y robusto. En un contexto donde velocidad y seguridad son factores clave, automatizar tareas repetitivas no solo evita riesgos por el factor humano, sino que también nos permite centrarnos en el core de nuestro trabajo: el desarrollo de soluciones de valor. 

Automatización como cultura

La integración de políticas de automatización en un equipo de desarrollo es una mejora sustancial en cuanto a procesos se refiere. No obstante, no obviemos que este tipo de cambios no ocurren de la noche a la mañana. Se necesitan constantes análisis e iteraciones sobre las que aplicamos toda la experiencia acumulada para poder refinar cada vez más nuestros flujos. Sin olvidar que es requisito indispensable la colaboración de diferentes perfiles técnicos para construir un ecosistema de integración continua eficiente y versátil que nos permita evolucionar con el paso del tiempo.

Tampoco debemos olvidar que la implantación de esta clase de sistemas requiere una adaptación de la metodología de trabajo implicando un cambio en la cultura y prácticas de todo el equipo, desde perfiles DevOps hasta desarrolladores, QAs o project managers como parte fundamental de la transformación. 

Deployer

Uno de los componentes clave que actúa como nexo de unión entre el equipo y los sistemas de CI/CD que usamos en O2O es nuestra nueva herramienta Deployer, desarrollada en 2024 y que finalmente ha visto la luz a comienzos de este año 2025.

¿Por qué desarrollamos Deployer?

Deployer nace de la necesidad de adaptación a los nuevos tiempos en los que ya no podemos depender de un sólo sistema de integración contínua. La enorme variedad de tipologías de proyectos con los que trabajamos implica que cada uno de ellos deba ser construido y desplegado según diferentes requisitos de arquitectura, infraestructura y tecnología.

Adicionalmente, el hecho de trabajar en un equipo multidisciplinar con desarrollos de tan diversa índole nos obliga a buscar una herramienta que encaje en el mayor número de escenarios posibles. Por ello necesitábamos un componente fácil de adaptar con independencia de si el despliegue está relacionado con una app móvil, una Web o un servicio alojado en cualquiera de los clouds existentes en el mercado. 

¿Qué hace Deployer?

A través de un sencillo chatbot, Deployer nos permite solicitar de forma directa diferentes tipos de tareas de despliegue que son ejecutadas en el correspondiente sistema de CI/CD configurado para el proyecto de destino.

Adicionalmente controlamos que dicho despliegue sea lanzado en entornos protegidos de forma segura a través del sistema de validaciones integrado en la plataforma. Esto nos garantiza que antes de salir a producción todo el equipo involucrado ha dado su visto bueno a la publicación.

Arquitectura y diseño técnico de Deployer

El chatbot es una aplicación de Slack que se conecta a un backend desarrollado en PHP y se comunica con los distintos proveedores de CI/CD mediante integraciones específicas. En el caso de Jenkins, usamos su API REST con autenticación básica a través de un token de acceso.

Adicionalmente se ha desarrollado un plugin para que el sistema de CI/CD pueda notificar a Deployer del estado de cada uno de los procesos lanzados. De este modo Deployer nos mantiene informados en tiempo real, asociando ese estado a la petición inicial del usuario.

Puesto que la idea es seguir haciendo crecer a Deployer, éste ha sido construido como un sistema modular abstrayendo la lógica según el tipo de pipeline y el proveedor, lo que nos permitirá añadir compatibilidad con nuevos sistemas sin refactorizar el core.

Acciones disponibles en Slack

Desde el inicio, queríamos ofrecer un conjunto mínimo funcional de acciones directas accesibles desde Slack, que permitiera a nuestro equipo operar con rapidez y seguridad. Por otro lado, buscamos poder evolucionar de forma incremental, incorporando nuevas acciones que resuelvan futuras necesidades en los flujos de los proyectos.

Actualmente las acciones disponibles incluyen:

  • Conexión de usuario. Permite vincular automáticamente un ID de Slack con su correspondiente usuario en Deployer. Esta asociación es clave para validar permisos y mantener la trazabilidad en los despliegues.
  • Desplegar. Es la acción principal. Facilita el envío de solicitudes de despliegue en función de la plataforma, proyecto, rama y entorno seleccionados.
  • Mis despliegues. Muestra al usuario el histórico de sus últimas peticiones enviadas a Deployer incluyendo nombre de proyecto, entorno, rama, fecha de creación y fecha de despliegue.
  • Repetir despliegue. Permite al usuario volver a lanzar un mismo despliegue desde su propio histórico utilizando los mismos parámetros. Muy útil en aquellos casos donde se necesita validar pequeñas y frecuentes iteraciones para entornos de pruebas.
  • Validar despliegue. Gestiona el sistema de validaciones requerido para entornos protegidos. Recoge las aprobaciones por parte de los diferentes perfiles del equipo para asegurar que se cumplen las condiciones definidas antes de autorizar el despliegue en un entorno protegido.

O2O Digital Strategy - Deployer

Aunque esta base de acciones cubre las necesidades actuales, ya estamos explorando la incorporación de nuevas acciones como cancelar despliegues, despliegues programados o notificación de fallos en despliegues.

Panel de control de Deployer

Otra de las mejoras que queríamos conseguir con Deployer era disponer de un panel de control visual para poder gestionar de forma sencilla la configuración de despliegues además de los permisos y roles de los usuarios. Para ello nos basamos en la plantilla Tabler (https://tabler.io/admin-template), una solución para dashboard web.

O2O Digital Strategy - Deployer

Fuente: Tabler (https://tabler.io/admin-template)

A través de Tabler Admin Template obtenemos una interfaz funcional y visualmente amigable sin necesidad de invertir recursos excesivos en frontend. Gracias a sus componentes disponibles nos permitió centrarnos en las funcionalidades de valor para nuestro equipo.

Además, con el desarrollo del panel de control para Deployer logramos concentrar en un mismo sitio el registro de todo lo que desplegamos de forma automatizada. De este modo conseguimos generar trazabilidad de evidencias de despliegues e incluso potenciales informes para cualquier tipo de auditoría.

O2O Digital Strategy - Deployer

Seguridad

Deployer nos permite supervisar en todo momento los despliegues que se van a realizar gracias a la configuración de entornos protegidos. Esto quiere decir que cualquier despliegue a un entorno protegido requerirá de la aprobación explícita de los perfiles clave dentro de un proyecto. Además, cualquier acción quedará registrada con el nombre del autor, fecha, entorno, aprobaciones y estado.

Por otro lado, el acceso al panel de control se realiza vía autenticación integrada con nuestro sistema LDAP corporativo (Lightweight Directory Access Protocol). Una vez que los usuarios son dados de alta en la plataforma, se configuran los permisos correspondientes al rol asociado a sus IDs de Slack. Esto permite a Deployer confirmar la identidad de la persona que está realizando una solicitud antes de ejecutar ninguna acción posterior. 

Visión de futuro

Con el desarrollo de Deployer no sólo buscamos satisfacer una necesidad puntual del equipo, sino construir un sistema mantenible y escalable capaz de crecer a nuestro lado.

Aunque Deployer ha sido creado como una herramienta de uso interno, su diseño está pensado para poder ser adaptado fácilmente a cualquier otro entorno.

Gracias a la flexibilidad de Deployer podremos dotarlo de nuevas funcionalidades que respondan a futuros evolutivos dentro de nuestro roadmap. Algunos ejemplos de estas funcionalidades son:

  • Integración con nuevos proveedores de CI/CD. Compatibilizar Deployer con otros sistemas de integración contínua de nuestros clientes.
  • Desarrollo de un MCP Server para comunicación con LLMs. Esto nos permitiría crear una capa intermedia que conecte Deployer con servicios de IA, dotándolo de nuevas capacidades a través de lenguaje natural.
  • Compatibilidad con otras herramientas de comunicación como Microsoft Teams. Migración de las acciones disponibles del chatbot a otras plataformas distintas a Slack.
  • Soporte multi idioma. Traducción y adaptación del panel de control a otros lenguajes según las preferencias configuradas de cada usuario.
  • Registro de métricas visualizables desde el propio panel de control. Nos permitirá analizar el uso de la herramienta, detectar problemas en los despliegues y obtener estadísticas de tiempos de ejecución.
  • Versionado de artefactos generados en despliegues de apps nativas o híbridas. Se crearía un centro de descargas de apps dentro de Deployer con histórico de versiones que nos ayude a compartir de una forma directa las versiones de pruebas con nuestros equipos de QA o clientes.

 

 

Compartir artículo