Examinar las tareas de implementación y configuración de Azure Pipeline

Completado

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.

Diagram showing the structure of a pipeline and how a stage is processed.

  • 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 mediante Oryx 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.