Uso de DevTest Labs en canalizaciones de compilaciones y versiones de Azure Pipelines

En este artículo se proporciona información sobre cómo puede usarse DevTest Labs en las canalizaciones de compilación y publicación de Azure Pipelines.

Flujo general

El flujo básico consiste en contar con una canalización de compilación que realice las siguientes tareas:

  1. Compile el código de la aplicación.
  2. Cree el entorno base en DevTest Labs.
  3. Actualice el entorno con información personalizada.
  4. Implementación de la aplicación en el entorno de DevTest Labs
  5. Pruebe el código.

Una vez que la compilación se haya completado correctamente, la canalización de versión usará los artefactos de compilación para iniciar la implementación provisional o de producción.

Una de las premisas necesarias es que toda la información necesaria para recrear el ecosistema probado se encuentra en los artefactos de compilación, incluida la configuración de los recursos de Azure. Como los recursos de Azure generan costes cuando se utilizan, las empresas quieren controlar o supervisar el uso de estos recursos. En algunas situaciones, Azure Resource Manager plantillas que se usan para crear y configurar los recursos pueden ser administradas por otro departamento como TI. Además, estas plantillas se pueden almacenar en un repositorio diferente. Conduce a una situación interesante al crear y probar una compilación. Tanto el código como la configuración deben almacenarse dentro de los artefactos de compilación para volver a crear el sistema en producción.

Con DevTest Labs durante la fase de compilación y prueba, puede agregar plantillas de Azure Resource Manager y archivos auxiliares a los orígenes de compilación. Durante la fase de lanzamiento, despliega en producción la configuración exacta que usó en las pruebas. La tarea Crear entorno de Azure DevTest Labs, con la configuración adecuada, guarda las plantillas de Resource Manager en los artefactos de compilación. En este ejemplo, usará el código del Tutorial: Compilación de una aplicación web de .NET Core y SQL Database en Azure App Service, para implementar y probar la aplicación web en Azure.

Diagrama que muestra el flujo general.

Configuración de los recursos de Azure

Debe crear un par de elementos previamente:

  • Dos repositorios. La primera con el código del tutorial y una plantilla de Resource Manager con dos máquinas virtuales más. La segunda contendrá la plantilla de Azure Resource Manager base (configuración existente).
  • Un grupo de recursos para la implementación del código de producción y la configuración.
  • Un laboratorio con una conexión al repositorio de configuración de la canalización de compilación. Registre la plantilla de Resource Manager en el repositorio de configuración como azuredeploy.json junto con metadata.json. Este nombre permite que DevTest Labs reconozca e implemente la plantilla.

La canalización de compilación crea un entorno de DevTest Labs e implementa el código para las pruebas.

Configurar un pipeline de compilación

En Azure Pipelines, cree una canalización de compilación mediante el código del Tutorial: Compilación de una aplicación web de .NET Core y SQL Database en Azure App Service. Use la plantilla ASP.NET Core, que rellenará la tarea necesaria para compilar, probar y publicar el código.

Captura de pantalla que muestra la selección de la plantilla de ASP.NET.

Agregue tres tareas más para crear el entorno en DevTest Labs e implementarlo en el entorno.

Captura de pantalla que muestra una canalización con tres tareas.

Crear una tarea de entorno

En la tarea crear entorno de Azure DevTest Labs, use las listas desplegables para seleccionar los valores siguientes:

  • Suscripción a Azure
  • Nombre del laboratorio
  • Nombre del repositorio
  • Nombre de la plantilla (que muestra la carpeta donde se almacena el entorno).

Se recomienda usar listas desplegables en la página en lugar de escribir la información manualmente. Si introduce manualmente la información, introduzca identificadores de recursos de Azure completos. En la tarea se muestran los nombres descriptivos, en lugar de los identificadores de los recursos.

El nombre del entorno es el nombre mostrado en DevTest Labs. Debe ser un nombre único para cada compilación. Por ejemplo: TestEnv$(Build.BuildId).

Puede especificar el archivo de parámetros o los parámetros para pasar información a la plantilla de Resource Manager.

Seleccione la opción Crear variables de salida en función de la opción de salida de la plantilla de entorno y escriba un nombre de referencia. En este ejemplo, escriba BaseEnv como nombre de referencia. Utilizas este BaseEnv al configurar la siguiente tarea.

Captura de pantalla que muestra la tarea Crear entorno de Azure DevTest Labs.

Tarea Relleno del entorno

La segunda tarea (Relleno de entorno de Azure DevTest Labs) consiste en actualizar el entorno de DevTest Labs existente. La tarea Crear entorno genera BaseEnv.environmentResourceId que se usa para configurar el nombre del entorno para esta tarea. La plantilla Resource Manager de este ejemplo tiene dos parámetros: adminUserName y adminPassword.

Captura de pantalla que muestra la tarea Populate Azure DevTest Labs Environment.

Tarea de implementación de App Service

La tercera tarea es la tarea Azure App Service Deploy. El tipo de aplicación se establece en Aplicación web y el nombre de App Service se establece en $(WebSite).

Captura de pantalla en la que se muestra la tarea App Service Deploy.

Configurar la canalización de lanzamiento

Crea una canalización de versiones con dos tareas: Implementación de Azure: Crear o actualizar un grupo de recursos y Implementar Azure App Service.

Para la primera tarea, especifique el nombre y la ubicación del grupo de recursos. La ubicación de la plantilla es un artefacto vinculado. Si la plantilla de Resource Manager incluye plantillas vinculadas, debe implementar una implementación de grupo de recursos personalizada. La plantilla está en el artefacto de colocación publicado. Invalide los parámetros de plantilla para la plantilla de Resource Manager. Puede dejar la configuración restante con valores predeterminados.

Para la segunda tarea Implementar Azure App Service, especifique la suscripción Azure, seleccione Aplicación web para el tipo de aplicación y $(WebSite) para el nombre de App Service. Puede dejar la configuración restante con valores predeterminados.

Ejecución de pruebas

Ahora que ambas canalizaciones están configuradas, ponga en cola manualmente una compilación y vea si funciona. El siguiente paso es configurar el desencadenador adecuado para la compilación y conectar la compilación a la canalización de lanzamiento.

Pasos siguientes

Consulte los artículos siguientes: