15 puntos por ironlung 2024-01-18 | Aún no hay comentarios. | Compartir por WhatsApp
  • El proceso y la forma de desarrollar un bot de Slack que publique contenido automáticamente en un blog técnico
  • Proceso de desarrollo
      1. Planificar la automatización
      • Primero, al publicar contenido en el blog técnico, se decidió integrar en una nueva herramienta (un bot de Slack) las herramientas que ya se usaban (Notion, GitLab). El objetivo era facilitar que los miembros se adaptaran rápida y fácilmente al nuevo sistema de publicación
      • Segundo, se decidió usar un framework de TypeScript. TypeScript es ampliamente utilizado y, al ser un lenguaje de tipado estático, permite un desarrollo más estable. Esto ayuda a mantener el nuevo sistema de publicación de forma sencilla y conveniente
      • Tercero, ofrecer una interacción amigable para el usuario
      • Razones para elegir un bot de Slack
        • Un bot de Slack cumple con todos estos principios
        • Slack bot ofrece un framework llamado Bolt. Además de JavaScript, Java y Python, también cuenta con buena documentación. Tomándolo como referencia, es fácil desarrollar una herramienta de automatización para publicar en un blog técnico. Incluso al ejecutarlo en un entorno local, se puede probar la herramienta dentro de la aplicación de Slack
        • Slack permite diseñar la interfaz que ve el usuario con la función Block Kit. Si se diseña el flujo de pantallas en JSON y se procesan los datos con funciones, se puede lograr una interacción intuitiva
      1. Diseñar la interfaz
      • Slack ofrece mensajes y modales para facilitar la interacción con el usuario
      • Se implementó como un modal el flujo de trabajo para publicar contenido en el blog técnico
      • Proceso de publicación en el blog técnico con el bot de Slack
        • Publicación en el blog: seleccionar qué contenido publicar y dónde hacerlo
        • Validación del blog: verificar si el contenido que se desea publicar incluye todos los elementos que necesita el frontend, como metadatos e imagen de portada
        • Revisión de issue/MR en GitLab: etapa en la que se crean un issue y un MR en GitLab. Si ya existen, se hace commit en ese MR
        • Mensaje de finalización: cuando termina la publicación, se deja un mensaje con el enlace al contenido original en Notion y el enlace al MR de GitLab
      1. Diseñar y desarrollar el bot
      • Se buscó que un solo bot interactuara con distintos servicios como Notion y GitLab
      • Se consideró que este enfoque sería más ventajoso al crear un pipeline de CI/CD en GitLab para desplegar la aplicación o modificar el bot
      • Para desarrollar el bot se usó TypeScript y el framework Bolt, compatible con Slack
      • La estructura de carpetas se adoptó inspirándose en NestJS
        • workflow.ts: define la interfaz y el flujo de datos, y es el punto de inicio de todos los workflows
        • service.ts: define la lógica de negocio
        • model.ts: define los tipos de datos para Slack o APIs de terceros
        • modal.ts: define las interfaces con las que interactúa el usuario
      1. Cómo funciona el bot
      • El bot se invoca al escribir un comando en cualquier canal de Slack
      • En ese momento, se seleccionan el título del contenido en Notion y el canal donde se publicará, y al presionar el botón “Enviar”, se comprueba automáticamente si se ingresaron los metadatos obligatorios
      • Los metadatos obligatorios incluyen GitLab ID, nombre del autor, nombre del archivo md, imagen de portada, <!--truncate-->, entre otros; si falta хотя бы uno, no se puede publicar el contenido
      • Si todos los metadatos obligatorios están completos, se puede pasar al siguiente paso presionando el botón “Continuar”
      • En ese momento, se crean automáticamente el issue y el MR del contenido en GitLab
      • También se agregan automáticamente etiquetas al MR y se ejecuta automáticamente el pipeline para publicar el contenido
      • Cuando termina la ejecución del pipeline, se puede revisar previamente el estado de publicación del contenido mediante la GitLab Review App
  • Resultados de la implementación
    • La frecuencia con la que technical writers e ingenieros crean MRs para publicar contenido en el blog técnico aumentó aproximadamente un 30%
    • Publicación del contenido en menos de 1 minuto con un solo clic
    • La tasa de fallos del pipeline se redujo por debajo del 5%

Aún no hay comentarios.

Aún no hay comentarios.