Bienvenido, les saluda Luis y esta vez les traigo otro nuevo tutorial.
Índice
¿Cómo gestiona sus notas de la versión con CI / CD? ¡Con un registro de cambios automático, por supuesto!
Entonces has decidido ir a CI / CD. Usted lee todo sobre los cambios de la organización , comprende los entresijos del proceso de desarrollo y se siente seguro de que puede hacerlo.
¡Felicidades!
Después de configurar sus pipelines, documentar sus prácticas de desarrollo y comenzar a presionar para producir, todavía hay una pieza importante del rompecabezas que debe abordarse: el registro de cambios.
¿Cómo lo haces? ¿Agrega un escritor de tecnología a su equipo de desarrollo que pueda mantenerse al día con cinco, diez, 20 impulsos de producción al día? Tú podrías. Pero, ¿y si hubiera una forma de automatizarlo?
Ya tienes un sistema de seguimiento de problemas. Usamos a Jira en mi oficina. Ya sea que use Jira , GitHub o Trello para rastrear problemas, todos tienen una cosa en común: webhooks.
Cada uno de estos sistemas activa eventos cuando se llevan a cabo determinadas acciones en el sistema. Y los usaremos para automatizar nuestro registro de cambios.
La arquitectura
Hay tres sistemas en juego para un registro de cambios continuo:
- El sistema de seguimiento de problemas (en este tutorial, Jira).
- La API de back-end para recopilar, almacenar y recuperar el registro de cambios (integrado en AWS).
- La interfaz de usuario.
En nuestra automatización, los eventos fluyen así:
- El equipo de desarrollo mueve el problema de Jira al estado Listo . Jira publica en un webhook que contiene detalles sobre el problema cerrado.
- AWS API Gateway envía directamente a DynamoDB para almacenar los detalles.
- El usuario final carga la página del registro de cambios. La página solicita cargar cambios recientes.
- AWS API Gateway envía directamente a DynamoDB para cargar los detalles de la base de datos y devolverlos en la respuesta.
¿Parece simple? ¡Es!
Este es el tipo de integración que rinde mil veces más a largo plazo. Es un bajo costo de implementación con un alto retorno de la integración de valor.
Configuración de AWS
En mi repositorio de GitHub, proporciono la fuente para implementar el microservicio desde el diagrama de arquitectura anterior. Utiliza AWS API Gateway y DynamoDB como los dos servicios principales para almacenar y recuperar datos.
El back-end solo tiene dos puntos finales: uno para crear un elemento en el registro de cambios y otro para cargar elementos desde él.
El guardado y la carga se realizan en VTL , omitiendo por completo la necesidad de funciones lambda. Esto nos da los tiempos de respuesta más rápidos posibles.
Dado que no queremos que los usuarios malintencionados descubran nuestra API y publiquen cambios falsos o inapropiados en nuestro registro de cambios, debemos agregar una clave de API. No podemos agregar autenticación estándar para verificar a nuestros usuarios ya que estas solicitudes llegarán a través de un webhook.
Jira brinda la capacidad de incluir encabezados al publicar en un webhook, por lo que aprovecharemos esto e incluiremos una clave de API de AWS. Esta clave está incluida en el script de CloudFormation en el repositorio.
Si sigue el archivo README en el repositorio de GitHub, estará listo y funcionando con un mínimo esfuerzo. Viene todo precableado, por lo que no es necesaria ninguna configuración además de la implementación en su cuenta de AWS.
Configuración de Jira
Ahora que tenemos nuestra API en funcionamiento, es hora de configurar Jira para alimentar los datos del registro de cambios.
Agregar un campo personalizado
Necesitamos agregar un campo personalizado a nuestros problemas de Jira. Desde dentro de Jira, vaya a Configuración> Administración de Jira> Problemas.
Una vez que esté viendo la página de administración de problemas, vaya a Campos> Campos personalizados> Agregar campo personalizado.
Las descripciones del registro de cambios pueden ser un poco complicadas, así que seleccione un campo de texto (varias líneas), asígnele el nombre Changelog
y agregue una descripción que permita a los usuarios conocer el formato que deben ingresar en los detalles del cambio.
A continuación, elija las pantallas en las que desea que esté visible el campo de registro de cambios. Si lo quieres en todos tus proyectos de Jira, ¡selecciónalos todos!
Construye el webhook
Con el campo personalizado en su lugar, es hora de crear el disparador de automatización que publica en el webhook.
En su proyecto de Jira, vaya a Configuración del proyecto> Automatización del proyecto> Crear regla.
Seleccione el tipo de desencadenador de la transición del problema y, opcionalmente, establezca el estado Desde y Hasta en la siguiente pantalla.
A tener en cuenta: El campo de estado Hasta debe establecerse en el estado final de su flujo de trabajo. En mi proyecto, el estado de nuestro flujo de trabajo final es Listo.
Una vez que haya configurado el disparador, es hora de configurar la acción que debe realizar Jira. Haga clic en Nueva acción para que aparezca la lista de opciones.
Seleccione la acción Enviar solicitud web para que aparezca la pantalla de configuración.
Obtenga los detalles de su API de AWS
Ahora tenemos que volver a la consola de AWS. Primero, necesitamos obtener la URL del webhook que creamos.
- Navega al Consola de API Gateway y seleccione la API Changelog.
- Haga clic en el enlace Etapas en la navegación de la izquierda, luego en la etapa de desarrollo.
- Habrá una URL de invocación en la parte superior de la página. Toma ese valor y agrégalo al campo URL del webhook en Jira. Asegúrese de agregar
/details
al final. - A continuación, haga clic en el enlace API Keys en la barra de navegación de la izquierda, luego en el valor cicd-ApiKey….
- Haga clic en el enlace Mostrar y copie el valor que se muestra en la pantalla.
- De vuelta en Jira, agregue un encabezado de
x-api-key
y pegue la clave API en el campo de valor. - A continuación, configure el cuerpo del webhook para que coincida con la imagen a continuación y presione Guardar.
¡Dé a su automatización un nombre significativo en la siguiente pantalla y presione el botón Activar para completar su integración!
Ver su nuevo registro de cambios
En este punto, la integración y la API están conectadas y puede comenzar a cerrar problemas. Agregará automáticamente los detalles del registro de cambios junto con el tipo de problema y la fecha en que se completó.
Una vez que haya resuelto algunos problemas, echemos un vistazo a cómo se ve. Proporcioné un front-end angular esqueleto en el repositorio de GitHub para que pueda ver el registro de cambios de inmediato.
El registro de cambios está agrupado por día y tiene un icono junto a los detalles según el tipo de Jira que se cerró. Para mi proyecto, un tipo de función nueva de Jira mostrará el icono NUEVO , mientras que un tipo de problema de error muestra un icono de error.
Estos se pueden personalizar para su proyecto, así que siéntase libre de jugar con íconos y tipos de problemas.
Obtenga el apoyo de su organización
Podría soltarte aquí mismo, pero ¿qué tipo de escritor responsable sería yo si no hablara sobre el gobierno organizacional necesario para esto?
Seguir esta ruta deja algunas preguntas que debe responder su organización:
- ¿Quién escribe los detalles del registro de cambios? ¿Escritores de tecnología? Desarrolladores?
- ¿Es necesario revisar los detalles del registro de cambios antes de cerrar un problema?
- ¿Puede confiar en los desarrolladores para que escriban las notas de cara al cliente?
- ¿Qué tipos de problemas desea incluir en el registro de cambios?
- ¿Debería mostrar las características principales de manera diferente?
Estos son para que usted y su organización los averigüen. Claro, es más fácil dejar que los desarrolladores agreguen los detalles y terminen, pero ¿es lo más seguro? ¿Quiere que todos los cambios se registren para que el público los vea?
¡Intentalo!
Esta es una integración rápida de configurar y conduce a algunos resultados bastante divertidos. Espero que lo pruebes y traigas un registro de cambios continuo a tu proyecto.
¿Haces algo como esto? ¿Haces algo totalmente diferente? ¡Déjame saber tus pensamientos y opiniones!
¡Gracias por leer!
Añadir comentario