¿Qué es Azure Pipelines?

Completado

Microsoft Azure Pipelines es un servicio en la nube que se puede usar para compilar, probar e implementar automáticamente el proyecto de código. También puede hacer que esté disponible para otros usuarios y funciona con casi cualquier lenguaje o tipo de proyecto.

Mara está entusiasmada con la replicación del proceso de compilación del equipo en Azure Pipelines. Finalmente, Amita, la encargada de realizar las pruebas, tiene algo de tiempo libre y quiere ponerse al día. Mara decide que ahora es un buen momento para contarle su plan: configurar una canalización de compilación automatizada para el sitio web de Space Game con Azure Pipelines.

Cuando escucha el plan de Mara, Amita duda un poco, pero como el plan de Mara es replicar el proceso de compilación pero no reemplazarlo, también siente curiosidad. Es consciente de que al proceso de compilación le vendrían muy bien algunas mejoras.

Amita: Suena interesante, pero lo que quieres es demostrar que llevas razón con DevOps.

Mara: Ya me vas conociendo.

Amita: ¿Qué mejoras prevés que vas a conseguir, sobre todo cuando vas a hacer lo que ya hacemos?

Mara: Creo que simplemente con pasar a Azure Pipelines tendríamos un montón de ventajas. Recuerda que Azure Pipelines es un servicio en la nube. Podemos usarlo para compilar y probar código automáticamente; además, estará disponible también para otros usuarios. Funciona con prácticamente cualquier tipo de proyecto o lenguaje.

Nuestro servidor de compilación tiene problemas e incluso mantenerlo actualizado es difícil. Dado que Azure Pipelines proporciona servidores de compilación que Microsoft hospeda y mantiene, siempre tendrá las revisiones y actualizaciones de seguridad más recientes. No tenemos que preocuparnos por mantener los servidores de compilación.

Aparte, tenemos todo tipo de scripts escritos por distintas personas. Ni siquiera sabemos cómo funcionan algunos de ellos. Azure Pipelines incluye un catálogo de tareas. Una tarea es un procedimiento o script empaquetado que se ha abstraído con un conjunto de entradas. Voy a intentar asignar lo que hacen nuestros scripts de compilación en esas tareas. Al menos, podremos estandarizar cómo se hacen las cosas y aumentar el nivel de automatización.

Además, Azure Pipelines funciona con muchos tipos de aplicaciones y lenguajes diferentes. Si quisiéramos ampliar hacia alguna de esas direcciones, no sería necesario adaptarse.

Amita: Sé que es egoísta pero, ¿qué tiene que ver esto conmigo? Uno de mis mayores problemas es que nunca sé cuándo una compilación está lista para comprobarla. A veces, alguien se acuerda de actualizar la hoja de cálculo, pero muchas veces se olvidan de hacerlo. Parece que soy la última persona en enterarse de todo.

Mara: Vale. Eso es algo que podemos solucionar fácilmente. Podemos configurar la canalización para que te avise automáticamente cuando una compilación esté lista, ya sea por correo electrónico o mediante algún otro tipo de notificación. No tendrás que volver a esperar a que alguien te lo recuerde otra vez.

Amita: Bien. Entonces, ¿tu objetivo ahora mismo es compilar la aplicación y avisarme cuando esté lista?

Mara: Eso es, aunque, por supuesto, mis miras van más allá. Sé que a todos os va a encantar este primer paso, por eso quiero partir de él para lograr una integración continua de verdad.

Amita: Póngame al día en cinco minutos sobre la integración continua.

Mara: Déjame que dibuje una imagen.

Mara se desplaza a la pizarra y dibuja la canalización.

Captura de pantalla de la ilustración a mano de una canalización de integración continua (CI). Las fases de compilación, prueba y verificación actúan sobre el código. El artefacto de compilación es la salida.

Mara: esta es mi canalización de CI. CI es el proceso de automatización de la compilación y de las pruebas de código cada vez que un miembro del equipo confirma los cambios en el control de versiones. Sé que todavía no hacemos pruebas automatizadas, pero tiempo al tiempo.

Una canalización define el proceso de integración continua de la aplicación. Se compone de pasos denominados tareas . Se puede considerar como un script que define cómo se ejecutan, prueban e implementan los pasos de compilación. Voy a intentar asignar nuestros scripts a tareas.

La canalización se ejecuta al enviar los cambios de código . La canalización se puede configurar para que se ejecute automáticamente o se puede ejecutar manualmente. La canalización se conecta a un repositorio de código fuente, como GitHub, Bitbucket o Subversion. Una de nuestras tareas para este sprint es empezar a usar GitHub, así que usaremos GitHub para este proyecto.

Un agente de compilación compila o implementa el código. Cuando la compilación o la implementación se ejecuta, el sistema inicia uno o varios trabajos. Un agente es software instalable que ejecuta un trabajo de compilación o implementación cada vez. Dado que estamos usando Azure Pipelines, podemos usar a un agente hospedado por Microsoft. Gracias a los agentes hospedados por Microsoft, las actualizaciones y el mantenimiento se realizarán automáticamente. Cada vez que ejecutemos una canalización, obtendremos una máquina virtual nueva. Hay varias imágenes de máquina virtual entre las que elegir, incluido Ubuntu 22.04, que es la que usamos.

El producto final de la canalización es un artefacto de compilación . Un artefacto podría considerarse como la unidad compilada más pequeña que necesitamos para probar o implementar la aplicación. Por ejemplo, un artefacto puede ser:

  • Una aplicación Java o .NET empaquetada en un archivo .jar o .zip.
  • Una biblioteca de JavaScript o C++.
  • Una imagen de Docker, máquina virtual o nube.

Y listo. Sé que podemos hacerlo.

Amita: Me parece estupendo. Veamos qué es lo que tienes que hacer para que funcione y cuánto tiempo tardas. Puedes pasarnos una demostración.

Mara: Eso está hecho.

Administración de agentes de compilación

Ahora que usted y el equipo están familiarizados con Azure Pipelines, vamos a hablar un poco más sobre los agentes de compilación. Un agente de compilación es un elemento de software instalable que ejecuta un trabajo de compilación o de implementación a la vez. Para compilar el código o implementar el software, necesitará al menos un agente. A medida que agregue más código y personas, al final necesitará más de un agente. Hay dos categorías principales de agentes.

  • Los agentes hospedados por Microsoft son agentes que Microsoft administra, por lo que el mantenimiento y las actualizaciones corren de su cuenta. Cada vez que ejecute una canalización, obtendrá un nuevo agente para cada trabajo de la canalización. En este módulo, al elegir Entorno de desarrollo local mediante un agente hospedado por Microsoft, está ejecutando la canalización en un agente hospedado por Microsoft. Para ejecutar canalizaciones en un agente hospedado por Microsoft, la organización debe tener al menos un trabajo paralelo hospedado por Microsoft. Compruebe el recuento de trabajos paralelos hospedados por Microsoft para asegurarse de que tiene al menos un trabajo paralelo hospedado por Microsoft. Si el recuento de trabajos paralelos hospedados por Microsoft es cero (las nuevas organizaciones de Azure DevOps suelen tener cero trabajos paralelos), puede solicitar una concesión gratuita. El proceso de aprobación de la concesión gratuita normalmente tarda entre dos y tres días laborables.

  • Los agentes autohospedados son agentes que usted administra. Para configurar las máquinas virtuales o los contenedores, instale el software del agente y las herramientas deseadas, y registre los agentes con Azure DevOps. En este módulo, al elegir el entorno de desarrollo de GitHub Codespaces mediante un agente autohospedado, se usa un agente autohospedado que se ejecuta en el contenedor de GitHub Codespaces. El autohospedaje del agente en un contenedor de GitHub Codespaces no es un escenario de producción típico, pero proporciona un entorno para completar este módulo de entrenamiento.

Comprobación de conocimientos

1.

¿Cuál de los siguientes es un ejemplo de artefacto de compilación?