Top herramientas DevOps: Comunicación y ChatOps

Adquiere aprendizaje continuo sobre herramientas de comunicación y ChatOps. No te quedes en el simple intercambio de mensajes y pasa al siguiente nivel automatizando procesos y cumpliendo con la filosofía DevOps en tu organización.

Comunicación en DevOps

La mayoría de personas hoy en día pueden acceder a su correo electrónico en sus teléfonos inteligentes, y el correo electrónico permite a los usuarios enviar archivos adjuntos grandes y ponerse en contacto con varios miembros del equipo a la vez. Los equipos de DevOps tienden a confiar en canales de comunicación más interactivos, dependiendo de las necesidades de los proyectos y las preferencias de los miembros del equipo, la comunicación interna puede ser a través de aplicaciones de colaboración de proyectos, una intranet o incluso aplicaciones de comunicación habituales como redes sociales.

Las reuniones regulares son la columna vertebral de la comunicación de DevOps. Se pueden organizar en persona o a través de aplicaciones de videoconferencia. Al igual que con la estructura de Agile Project Management (Gestión de proyectos ágiles), el equipo de DevOps debe reunirse al menos dos veces por semana.

Desafortunadamente, las prácticas de recursos humanos en muchas industrias se basan en estereotipos. Uno de los estereotipos más prominentes sobre los profesionales de TI es su falta de habilidades interpersonales. Aunque algunos ingenieros y desarrolladores caen en esta generalización, sus conocimientos e intereses van mucho más allá de los temas de TI y tecnología. Aun así, incluso los miembros más habladores y asertivos del equipo de desarrollo necesitan trabajar en sus habilidades blandas para mejorar la comunicación del equipo.

Las habilidades blandas mejoradas permiten a los miembros del equipo colaborar de manera más efectiva y desarrollar relaciones de trabajo sólidas. En DevOps, todo esto está acompañado por herramientas que ayudan a mejorar la forma en que nos comunicamos y automatizamos procesos.

Qué es ChatOps

Es una colaboración basada en la conversación que utiliza clientes de chat, chatbots y herramientas de comunicación en tiempo real. Se centra en la idea de que la conversación es la base del crecimiento humano y el progreso, que puede acelerarse con herramientas de colaboración.

Es ampliamente utilizado por los equipos de DevOps para trabajar con más transparencia, eficiencia y velocidad. A lo largo de la cadena de progresión, algunos equipos pueden comenzar como solo correo electrónico, comenzar a incursionar con aplicaciones basadas en chat y luego agregar bots personalizados avanzados o IA (Inteligencia Artificial) para automatizar ciertas tareas. Idealmente, el estado final sería tener un sistema en tiempo real que integre todo el personal, el trabajo, la tecnología y los procesos en un entorno unificado y, al mismo tiempo, mantenga una documentación detallada de todo lo que sucede allí.

En este entorno, la plataforma de comunicación puede servir como una interfaz de línea de comandos compartida para comandos. Los chatbots inteligentes y configurables se utilizan para ejecutar ciertas acciones, como disparar una llamada a la API, restablecer un servidor o incluso implementar correcciones en producción.

Tiene como objetivo aumentar la visibilidad en todos los ámbitos para que todas las acciones se tomen a la vista del equipo. Es especialmente útil para proporcionar un contexto en tiempo real para los trabajadores remotos y las nuevas contrataciones.

Beneficios de ChatOps

A medida que su equipo integra más herramientas en la herramienta ChatOps, el equipo obtiene varios beneficios. Primero, el equipo recibe menos correos electrónicos porque las conversaciones a menudo se llevan a cabo en conversaciones de chat y persisten en contexto. El segundo beneficio es el ahorro de tiempo porque el equipo ya no debe cambiar continuamente entre herramientas para encontrar información. Cuantas más herramientas integre en la plataforma ChatOps, mayores serán los beneficios.

Los equipos avanzados llevan las cosas un paso más allá. Al incorporar sus herramientas a sus conversaciones y usar un chatbot que se modifica para trabajar con complementos y scripts clave, los equipos pueden automatizar tareas y colaborar para trabajar mejor, más barato y más rápido. Mientras están en una sala de chat, los miembros del equipo pueden escribir comandos que el chatbot está configurado para ejecutarse a través de scripts y complementos personalizados. Estos scripts y complementos van desde implementaciones de código hasta respuestas de eventos de seguridad y notificaciones de miembros del equipo. Todo el equipo colabora a medida que se ejecutan los comandos.

Su equipo puede aplicar ChatOps a varias disciplinas de la gestión de servicios:

  • Gestión de incidentes: ChatOps es útil para el análisis, el aislamiento y la investigación de incidentes, especialmente a medida que las personas se unen al proceso y deben incorporarse rápidamente.
  • Gestión de problemas: Su equipo puede aplicar ChatOps para desarrollar y priorizar un plan de acción equilibrado.
  • Gestión de cambios: su equipo puede usar ChatOps para llevar a cabo un consejo asesor de cambios virtual para ejecutar una evaluación de impacto de cambios y programar un cambio en la aplicación.

Individual y colectivamente, estos beneficios en última instancia fortalecen DevOps al acelerar las comunicaciones del equipo, lo que acorta las canalizaciones de desarrollo y el tiempo de respuesta a incidentes.

Implementación de ChatOps

La implementación de un entorno de ChatOps requiere el uso de los siguientes tipos de herramientas:

  • Sistema de notificaciones para enviar alertas a los salones de chat cuando se producen incidencias.
  • Cliente de chat (por ejemplo, Slack y Microsoft Teams) para ejecutar comandos preprogramados.
  • Herramientas DevOps preexistentes (integradas en el entorno ChatOps) para mejorar el seguimiento de tickets y automatizar los flujos de trabajo de corrección de incidentes.

ChatOps se puede implementar en fases a medida que su equipo se familiariza y depende de la herramienta de colaboración elegida.

La primera fase son las comunicaciones persistentes simples entre los miembros del equipo. Dos o más miembros del equipo pueden iniciar una conversación para obtener respuestas a problemas apremiantes y asegurarse de que el equipo esté de acuerdo antes de proporcionar una respuesta.

En la segunda fase, establece grupos que deben comunicarse entre sí para hacer su trabajo. Además de mensajes grupales simples, el equipo puede compartir capturas de pantalla, videos de problemas y archivos como archivos de registro, archivos de configuración o salida de comandos. La herramienta ChatOps almacena mensajes de forma persistente, por lo que cualquier persona que se agregue a una conversación puede ver todas las comunicaciones anteriores.

Cuando se recibe un incidente importante, algunas herramientas de ChatOps pueden crear canales automáticamente. También puede especificar listas de asignaciones para que cuando ocurra un incidente específico, se invite a las personas adecuadas a unirse a la conversación.

A medida que el equipo evoluciona, la plataforma ChatOps puede proporcionar comunicación bidireccional entre los participantes del chat y el sistema o sistemas que el equipo utiliza en su trabajo diario. Por ejemplo, puede crear un canal de chat grupal con integraciones de herramientas para ver esta información:

  • El resultado final de una construcción de producción a partir de su canalización de entrega continua.
  • Notificaciones sobre errores de implementación de aplicaciones en centros de datos de todo el mundo desde sus herramientas de supervisión.
  • Métricas de uso del sitio en un horario regular de sus herramientas de análisis.
  • Interrupciones e incidentes relacionados para que pueda investigar una posible correlación.
  • Los cambios más recientes que se implementaron en el servidor o la aplicación.
  • El uso de recursos del recurso afectado en las últimas 24 horas.

Casos de uso para ChatOps

Dependiendo de la fase de implementación en la que se encuentre y de sus intenciones de crear un entorno de ChatOps, los siguientes casos de uso son aplicables a su empresa:

  • Control de acceso y seguridad: Muchas empresas implementan ChatOps por sus funciones de participación ágil. La intrincada arquitectura de comunicación mejora el control de acceso al proyecto, lo que permite operaciones de seguridad de chat a largo plazo (ChatSecOps).
  • Implementación de aplicaciones: ChatOps mejora la visibilidad de las canalizaciones de desarrollo de aplicaciones entre los equipos de DevOps. Esto les ayuda a considerar colectivamente las opciones de implementación y orquestar sus selecciones en consecuencia.
  • Gestión de incidencias: Cuando se trata de detección, respuesta y resolución de incidentes, ChatOps es una herramienta invaluable. A lo largo del proceso de resolución, mantiene informados a los equipos y actualiza automáticamente los tickets a lo largo de su flujo de trabajo de corrección.
  • Entrega continua (CD): ChatOps integra DevOps y procesos de automatización en un flujo de trabajo singular. Une la comunicación del equipo, el desarrollo de canalizaciones y las tareas operativas para la entrega continua de aplicaciones.

Top herramientas de Comunicación y ChatOps

Actualmente, el ciclo DevOps hace referencia a un gran número de herramientas de desarrollo de software, redes, gestión de servidores, equipos de test, monitoreo, etc. Como facilitador a la utilización e integración de este gran número de herramientas requeridas en DevOps surge ChatOps.

ChatOps nos permite colaborar y centralizar todas las herramientas en una sola ventana. Se compone principalmente de tres piezas clave: el chat, las automatizaciones/bots y los sistemas a integrar (Jira, Bitbucket, Bamboo, Jenkins, Docker, etc).

Slack

Es una solución de software de colaboración de proyectos e interacción en equipo basada en la nube especialmente diseñada para facilitar sin problemas la comunicación entre organizaciones.

Microsoft Teams

Crea y administra equipos y canales, programa una reunión, activa las traducciones de idiomas y comparte archivos. Pasar de un chat a una llamada para una colaboración más profunda, administrar invitaciones de calendario, unirte a una reunión directamente en Teams y usar efectos de fondo.

Lita

Lita es un bot de chat escrito en Ruby. Un robot compañero para la sala de chat de su empresa. Se conecta con su servicio de chat favorito y lo ayuda a mantenerse eficiente mientras se divierte. Puede convertir tareas tediosas, lentas y propensas a errores en comandos simples con Lita bot.

Características que incluye:

  1. Conectarse a cualquier servicio de chat.
  2. Fácil de instalar.
  3. Fácilmente extensible con plugins.
  4. Persistencia de datos con Redis.
  5. Servidor web integrado y enrutamiento.
  6. Sistema de eventos para el comportamiento desencadenado en respuesta a eventos arbitrarios.
  7. Compatibilidad con solicitudes HTTP salientes.
  8. Autorización basada en grupos.
  9. Registro configurable.

Hubot

Es un robot personalizable para mejorar la vida. GitHub, Inc., escribió la primera versión de Hubot para automatizar salas de chat de una empresa. Hubot sabe cómo automatizar muchas tareas y ser una fuente de diversión en la oficina. Está escrito en CoffeeScript en Node JS y se implementa rápidamente en plataformas como Heroku.

La característica incluye:

  1. Publicación de imágenes.
  2. Traducción de idiomas.
  3. Integración con Google Maps.
  4. Un repositorio de scripts Hubot de la comunidad y una organización de paquetes Hubot de la comunidad que puede agregar a su propio robot y más.

CloudBot

Otro software de bot IRC. A menudo se describe como el bot IRC de Python simple, rápido, expandible y de código abierto. CloudBot está licenciado bajo la licencia GPL v3. CloudBot solo se ejecutará en Python 3.4 o superior debido al uso del módulo asyncio. Si conoces Python, pruébalo a CloudBot. No te decepcionará.

Errbot

Otro bot está escrito en Python. Es un chatbot basado en complementos diseñado para ser fácilmente desplegable, extensible y mantenible. Errbot es software libre, disponible bajo la licencia GPL-3:

Es un chatbot, un demonio que se conecta a tu servicio de chat favorito y trae tus herramientas a la conversación.

El objetivo del proyecto es facilitarle la escritura de sus propios complementos para que pueda hacer lo que quiera: una implementación, recuperar información en línea, activar una herramienta a través de una API, trolear a un compañero de trabajo y más.

Errbot se está utilizando en muchos contextos diferentes: ChatOps, salas de chat de juegos en línea, salas de chat de transmisión de video como TV de codificación en vivo, seguridad en el hogar, etc.

La característica incluye:

  1. Fácil configuración e instalación.
  2. Back-Ends de varios servidores.
  3. Características principales.
  4. Administración y seguridad integradas.
  5. Amplio marco de plugins.

StackStorm

Es una potente plataforma de automatización de código abierto que conecta todas sus aplicaciones, servicios y flujos de trabajo. Es extensible, flexible y construido para trabajar con DevOps y ChatOps. StackStorm ayuda a automatizar patrones operativos comunes. Algunos ejemplos son:

Solución de problemas: activación de fallas del sistema capturadas por Nagios, Sensu, New Relic y otros sistemas de monitoreo, ejecución de una serie de comprobaciones de diagnóstico en nodos físicos, instancias de OpenStack o Amazon y componentes de aplicaciones, y publicación de resultados en un contexto de comunicación compartido, como HipChat o Jira.

Corrección automatizada: identificar y verificar fallas de hardware en el nodo de cómputo OpenStack, evacuar adecuadamente las instancias y enviar correos electrónicos a los administradores sobre el posible tiempo de inactividad, pero si algo sale mal, congelar el flujo de trabajo y llamar a PagerDuty para alertar a alguien.

Implementación continua: cree y pruebe con Jenkins, aprovisione un nuevo clúster de AWS, active parte del tráfico con el equilibrador de carga y avance o retroceso, según los datos de rendimiento de la aplicación New Relic.

También te presento un Top herramientas DevOps: Integración y Despliegue Continuo.

Conclusión

Se ha hecho un recorrido de cómo se comunican en el área de DevOps y las herramientas de comunicación y ChatOps que se suelen utilizar, para sacar provecho a los tiempos de resolución de incidencias o el despliegue de nuevas características con mayor eficiencia en dichos procesos.

En el caso de que estés considerando aprender un Stack más completo sobre desarrollo y operaciones, te recomiendo mirarte los Cursos de DevOps.

Si aún no conoces las responsabilidades en un rol de DevOps, te invito a aprender sobre Qué es un ingeniero DevOps y qué funciones tiene.

También te puede interesar...

DevOps

Qué es DevOps: Fundamentos, beneficios y herramientas

14 Mayo 2019 Ximena Rodríguez
Management

El CIO como promotor de las culturas Agile y DevOps

20 Junio 2022 Miguel Parada
Carrera Especialista en Automatización DevOps

Carrera Especialista en Automatización DevOps

17 horas y 57 minutos · Carrera

Conviértete en un especialista DevOps y da un salto en tu carrera

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información.