Examinar las tareas de implementación y configuración de Azure Pipeline
Azure Pipelines se puede usar para automatizar procesos de compilación, prueba e implementación.
Términos y partes de la canalización
Comprender los términos y las partes de la canalización puede ayudarle a trabajar de forma más eficaz y a crear canalizaciones mejores y confiables.
- Un desencadenador indica a una canalización que se ejecute.
- Una canalización consta de una o más fases. Una canalización se puede implementar en uno o varios entornos.
- Una fase es una forma de organizar los trabajos en una canalización y cada fase puede tener uno o más trabajos.
- Cada trabajo se ejecuta en un agente. Un trabajo también puede ser sin agente, pero los trabajos sin agente se limitan a algunas tareas integradas.
- Cada agente ejecuta un trabajo que contiene uno o más pasos.
- Un paso puede ser una tarea o un script, y es el bloque de compilación más pequeño de una canalización.
- Una tarea es un script previamente empaquetado que realiza una acción, como invocar una API REST o publicar un artefacto de compilación.
- Un artefacto es una recopilación de archivos o paquetes que ha publicado una ejecución.
Las siguientes secciones ofrecen más detalles.
Agente
Cuando la compilación o la implementación se ejecuta, el sistema inicia uno o varios trabajos. Un agente es una infraestructura informática con software de agente instalado que ejecuta un trabajo de uno en uno. Por ejemplo, el trabajo podría ejecutarse en un agente de Ubuntu hospedado por Microsoft.
Importante
Para compilar el código o implementar el software mediante Azure Pipelines, necesita al menos un agente.
Artefacto
Un artefacto es una recopilación de archivos o paquetes que ha publicado una ejecución. Los artefactos se habilitan para las tareas posteriores, como la distribución o la implementación.
Implementación
Normalmente, una implementación hace referencia a un trabajo de implementación. Un trabajo de implementación es una colección de pasos que se ejecutan secuencialmente en un entorno. Puede usar estrategias como runOnce, rolling o canary para los trabajos de implementación.
Grupo de implementación
Un grupo de implementación es un conjunto de máquinas de destino de implementación que tienen agentes instalados. Un grupo de implementación es simplemente otra agrupación de agentes, como un grupo de agentes. Puede establecer los destinos de implementación en una canalización para un trabajo mediante un grupo de implementación.
Environment
Un entorno es una colección de recursos, donde se implementa la aplicación. Puede contener una o varias máquinas virtuales, contenedores, aplicaciones web o cualquier servicio que se use para hospedar la aplicación que se está desarrollando. Una canalización puede implementar la aplicación en uno o varios entornos después de que se complete la compilación y de que se ejecuten las pruebas.
Trabajo
Una fase contiene uno o varios trabajos. Cada trabajo se ejecuta en un agente. Un trabajo representa un límite de ejecución de un conjunto de pasos. Todos los pasos se ejecutan juntos en el mismo agente. Los trabajos son más útiles si desea ejecutar una serie de pasos en distintos entornos. Por ejemplo, puede que quiera crear dos configuraciones: x86 y x64. En este caso, tiene una fase y dos trabajos. Un trabajo sería para x86 y el otro, para x64.
Canalización
Una canalización define el proceso de integración continua e implementación para la aplicación. Se compone de una o varias fases. Se puede considerar como un flujo de trabajo que define cómo se ejecutan los pasos de prueba, compilación e implementación.
Ejecutar
Una ejecución representa una ejecución de una canalización. Recopila los registros asociados a la ejecución de los pasos y los resultados de la ejecución de pruebas. Durante una ejecución, Azure Pipelines procesa la canalización y, a continuación, envía la ejecución a uno o varios agentes. Cada agente ejecuta trabajos.
Script
Un script ejecuta código como un paso en la canalización mediante la línea de comandos, PowerShell o Bash. Puede escribir scripts multiplataforma para macOS, Linux y Windows. A diferencia de una tarea, un script es un código personalizado específico de la canalización.
Fase
Una fase es un límite lógico en la canalización. Se puede usar para marcar la separación de problemas (por ejemplo, Compilación, Control de calidad y Producción). Cada fase puede contener uno o varios trabajos. Al definir varias fases en una canalización, de forma predeterminada, se ejecutan una después de la otra. Puede especificar las condiciones para cuando se ejecuta una fase. Cuando esté pensando en si necesita una fase, pregúntese:
¿Los grupos independientes administran diferentes partes de esta canalización? Por ejemplo, podría tener un administrador de pruebas que administre los trabajos relacionados con las pruebas y otro que administre los trabajos relacionados con la implementación de producción. En este caso, tiene sentido tener fases independientes para pruebas y producción.
¿Hay un conjunto de aprobaciones conectadas a un trabajo específico o a un conjunto de trabajos? Si es así, puede usar fases para dividir los trabajos en grupos lógicos que requieran aprobaciones.
¿Hay trabajos que necesiten ejecutarse mucho tiempo? Si parte de la canalización tiene un tiempo de ejecución extendido, tiene sentido dividir las partes en su propia fase.
Paso
Un paso es el bloque de creación más pequeño de una canalización. Por ejemplo, una canalización podría constar de tareas de compilación y pasos de prueba. Un paso puede ser un script o una tarea. Una tarea es un script empaquetado previamente que se le ofrece para su comodidad.
Tarea
Una tarea es el bloque de compilación para definir la automatización en una canalización. Una tarea es un procedimiento o script empaquetado que se ha abstraído con un conjunto de entradas.
Desencadenador
Un desencadenador es un elemento que se configura para indicar a la canalización el momento de la ejecución. Puede configurar una canalización para que se ejecute tras una inserción en un repositorio en horas programadas o tras completarse otra compilación. Todas estas acciones se conocen como "desencadenadores".
Tareas de Azure Pipelines
Las tareas se usan para realizar una acción en una canalización. Por ejemplo, una tarea puede compilar una aplicación, interactuar con los recursos de Azure, instalar una herramienta o ejecutar una prueba.
Al agregar una tarea a la canalización, también podría agregar un conjunto de demandas a la canalización. Las demandas definen los requisitos previos que deben instalarse en el agente para que se ejecute la tarea. Al ejecutar la compilación o implementación, se elige un agente que cumpla estas demandas.
Al ejecutar un trabajo, todas las tareas se ejecutan en secuencia, una después de la otra.
De forma predeterminada, todas las tareas se ejecutan en el mismo contexto, ya sea en el host o en un contenedor de trabajos.
Plantillas y tareas integradas
El servicio Azure Pipelines proporciona algunas tareas integradas para habilitar escenarios fundamentales de compilación e implementación. Hay tareas integradas disponibles para varias plataformas, como Azure. Las tareas se organizan en categorías como compilación, implementación y prueba.
Tarea integrada para Azure Container Apps
La tarea Azure Container Apps Deploy v1 (AzureContainerApps@1) es una tarea de Azure DevOps que se puede usar para crear e implementar instancias de Azure Container Apps.
Esta tarea de Azure Pipelines facilita a los usuarios la implementación del origen de la aplicación en una aplicación contenedora de Azure en su flujo de trabajo de Azure Pipelines. Los usuarios pueden elegir entre proporcionar una imagen compilada anteriormente, un Dockerfile desde el que se puede compilar una imagen o usar un generador para crear una imagen de aplicación ejecutable para el usuario.
La tarea tiene los dos patrones de uso siguientes:
La tarea inserta una imagen en ACR: cuando la tarea inserta una nueva imagen en ACR, se requieren las entradas de tarea acrName y appSourcePath.
La tarea implementa una imagen insertada anteriormente: cuando la tarea implementa una imagen previamente insertada, se requiere la entrada de la tarea imageToDeploy. Si esta imagen se encuentra en una instancia de ACR que requiere autenticación para extraerla, se puede proporcionar el argumento acrName, o los argumentos acrUsername y acrPassword, para autenticar las solicitudes a la instancia de ACR.
Si no se encuentra ningún Dockerfile o se proporciona en el origen de la aplicación, esta tarea realiza los pasos siguientes:
Usa el
Oryx++ Builder
para compilar el origen de la aplicación medianteOryx
para generar una imagen de aplicación ejecutable.Inserta esta imagen de aplicación ejecutable en la instancia de Azure Container Registry proporcionada.
Crea o actualiza una aplicación contenedora basada en esta imagen.
Si se encuentra o detecta un Dockerfile en el origen de la aplicación, no se usa el generador. Se crea una imagen con una llamada a docker build
. La aplicación contenedora se crea o actualiza en función de la imagen.
Si ya se ha insertado una imagen compilada anteriormente en la instancia de ACR y se proporciona a esta tarea, no se requiere ningún origen de aplicación. La imagen se usa al crear o actualizar la aplicación contenedora.