Azure DevOps + Herramientas de Comunicación
Actualmente, adoptar prácticas de DevOps es una apuesta a la que muchas de las empresas y consultorías lideres apuntan hoy en día; porque con ello, podemos obtener el mayor provecho en nuestros procesos de desarrollo, ya que reducimos el error humano, generamos productos nuevos de manera más sencilla y principalmente, generamos procedimientos repetibles y confiables.
Al emplear estas actividades, mantener la comunicación en todos los canales relacionados es todo un reto porque no es sencillo mantenernos activos y pendientes de todos los lugares en donde se puede iniciar una conversación relacionada a nuestros procesos.
Teniendo esto en cuenta, nosotros como ingenieros de DevOps, somos los encargados de generar estos canales para que todos los involucrados en los procesos de software de nuestra compañía, brindemos las mejores herramientas e incrementemos el valor de los productos que existen dentro de ella, ya que hoy en día, en todas las áreas hay una herramienta para comunicarnos con nuestros colaboradores y compañeros, nos enfocaremos en dos, que según las tendencias, son las líderes hoy en día: Microsoft Teams y Slack.
Algo interesante que todas estas plataformas comparten, es la facilidad de integrar una gran variedad de extensiones; Esto nos ayudará a incrementar la eficiencia y el valor de la información que podemos compartir dentro de nuestro equipo.
Podemos echar mano de estas extensiones para poder incorporar muchos de los eventos que tendremos en Azure DevOps para poder entregar esta información incorporada a nuestras instancias en Teams o equipos en Slack.
Las extensiones de DevOps se componen de un API de acceso a los datos, un hermoso proceso de interacción que conocemos como Bot Service y una arquitectura orientada a eventos.
Serán nuestros pequeños asistentes, como los tenía office hace muchos años.
Important!
Para estas integraciones se generarán de modo global y por componentes en específicos, es decir, nosotros decidiremos si después de la integración de la plataforma vamos a integrar los demás componentes de Azure DevOps (Repos, Pipelines, Artifacts, etc).
Para estos ejemplos será únicamente lo relacionado a los procesos del área de desarrollo y liberaciones, así que jugaremos un poco con Repos y Pipelines.
¡Manos a la obra! Vamos a integrarlos de uno en uno.
Azure DevOps + Microsoft Teams
Para hacer la primera integración, debemos de contar con una licencia que nos permita el uso de Microsoft Teams y también importante, una cuenta con privilegios administrativos o colaborador para la instancia de Azure DevOps.
Ahora sí, podemos comenzar.
Provisionando un equipo en Microsoft Teams
Lo primero que haremos es lo siguiente, en caso de que ya tengamos un equipo en Teams, y necesitamos integrar nuestra instancia de Azure DevOps en ese equipo existente, entonces podemos saltarnos el siguiente paso y continuar a la conexión de Azure DevOps.
En caso de no contar con un equipo, debemos crear uno y aquí van otras recomendaciones:
El nombre del equipo debe corresponder con el nombre del proyecto en Azure DevOps.
El perfil de visibilidad debe ser privado (Para mayor control).
Debemos crear un canal general y uno particular (Puede ser privado) para cada aspecto de nuestro proyecto (Admins, DevOps, Management, etc).
Configurando Azure DevOps en el equipo
Para que nosotros podamos integrar ambos componentes, primero debemos anexarlo como un conector, yendo al menú contextual del equipo y seleccionándolo de la lista.
Una vez instalado debemos de conectar con las credenciales para obtener el PAT y con esta acción, tendremos listo nuestro conector para poder integrar lo que necesitemos, ya sea un componente adicional de Azure DevOps.
Integrando nuestro Dashboard
Ahora un componente muy cool, Azure Dashboards, con ellos podremos visualizar el estatus actual del proyecto, saber las tareas asignadas y la eficiencia de nuestros artefactos, para ellos vamos a seleccionar un panel que tengamos previamente hecho y lo incorporaremos a nuestro canal de la siguiente manera.
Ahora ya podemos consultar esta información sobre nuestro ¡Super proyecto!
Aprovechemos unos momentos para tomar una bebida refrescante, yo tomaré una taza de café antes de continuar…
Conectando Azure Repos con Teams
Después de nuestra refescante bebida, volveremos a nuestras integraciones, ahora es turno de Azure Repos.
Cuando trabajamos basados en diferentes flujos de desarrollo y ramificaciones, es imprescindible tener una forma de poder controlar la manera en la que uniremos todas estas versiones diferentes, es ahí donde utilizaremos los Pull Requests.
Para nuestro equipo incorporaremos la extensión de Azure Repos, para que hagamos seguimiento de los nuevos commits, los pull requests y las integraciones.
Ahora, vamos a habilitarlo abriendo el panel de extensiones de teams y buscamos “Azure Repos”, lo seleccionamos y lo integramos a Teams.
Lo siguiente es configurar nuestras credenciales para obtener un PAT sobre los repositorios, una vez completemos la configuración, estamos listos para poder seguir toda la información y operaciones realizadas en los repositorios del proyecto.
Ahora, veremos a nuestros bots en acción.
Para observar un repositorio (Cambios, PR, ajustes, branching, etc), basta con crear una subscripción de la siguiente manera:
Siendo RepoURL la dirección del repositorio en nuestro proyecto de Azure DevOps (de la que estaremos escuchando los nuevos eventos).
Si lo que queremos es manejar los pull request a un nivel granular, o quizá conectarnos a eventos específicos, tenemos que hacer una configuración como la siguiente:
Conectando con Azure Pipelines
Hasta ahora ya tenemos un buen sistema de rastreo de cambios y comunicación con el equipo, sin embargo, aún podemos exprimir la herramienta mucho más, vamos a integrarlo con nuestros pipelines.
Vamos a repetir el proceso, ingresaremos al panel de extensiones de teams y buscaremos Azure Pipelines, lo integramos a Microsoft Teams y finalmente configuramos las credenciales.
Ahora para que el bot nos entregue la información debemos crear subscripciones, para lo que necesitamos ejecutar el siguiente comando:
Siendo PipelineURL el path en Azure DevOps para el pipeline al que deseamos permanecer a la escucha de los eventos (Ejecución, éxito, fallo, issues, loopback, etc)
Azure Pipelines intégré avec succès!
Nos hemos ganado otra refrescante bebida.
Con estas herramientas conectadas podemos sacar el mayor provecho a nuestro proceso de desarrollo, ahora tendremos nuestros procesos con retroalimentación continua y directa para cualquier cambio.
En el siguiente post usaremos Slack como herramienta de comunicación para Azure DevOps.
Mientras se terminan de hornear los nuevos posts, te recomiendo la lectura Mobile DevOps.
Keep Reading!