Ejercicio: implementación de una aplicación de Spring Boot de muestra

Completado

En este ejercicio, usará un flujo de trabajo automatizado para compilar e implementar la aplicación de ejemplo de Spring Boot.

Configuración de una acción de GitHub para implementar la aplicación de ejemplo

Ahora que ha aprovisionado los recursos de Azure, puede implementar la aplicación de Spring Boot de ejemplo.

Para crear el flujo de trabajo de GitHub de Maven, usará la herramienta integrada del Asistente para la integración continua y entrega continua (CI/CD) que está disponible en el Centro de implementación del portal de Azure App Service.

Captura de pantalla del Centro de implementación de Azure App Service.

El Centro de implementación de Azure App Service genera automáticamente un archivo de flujo de trabajo de Acciones de GitHub basado en su pila de aplicaciones. A continuación, el Centro de implementación confirma el archivo en el repositorio de GitHub en el directorio correcto. El Centro de implementación también vincula la acción de GitHub a un perfil de publicación de Azure App Service.

  1. En Azure Portal, vaya a la aplicación web de Azure App Service.

  2. En el panel izquierdo, expanda Implementación y seleccione Centro de implementación.

  3. En la lista desplegable Origen , en Implementación continua (CI/CD), seleccione GitHub.

  4. Seleccione Acciones de GitHub. (Debe ser el valor predeterminado, pero si no es así, seleccione Cambiar proveedor para cargar las opciones del proveedor).

  5. En Configuración, en las listas desplegables, haga lo siguiente:

    a. Seleccione el repositorio de GitHub.
    b. Para la rama, seleccione main (principal).
    c. En la stack de aplicaciones, seleccione JAVA 8.

  6. En la página final, revise las opciones y vea una vista previa del archivo de flujo de trabajo que se guardará en el repositorio.

  7. Seleccione Guardar para confirmar el archivo de flujo de trabajo en el repositorio e inicie inmediatamente la compilación e implementación de la aplicación.

    Nota:

    También puede desencadenar el flujo de trabajo de Acciones de GitHub en el repositorio seleccionando la pestaña Acciones , seleccionando el flujo de trabajo de compilación e implementación y, a continuación, seleccionando Volver a ejecutar trabajos.

Confirmación de la compilación de Acciones de GitHub

  1. En el repositorio de GitHub, seleccione la pestaña Acciones y, a continuación, en el lado izquierdo, en Todos los flujos de trabajo, seleccione "Compilar e implementar la aplicación JAR en Azure Web App".

  2. A continuación, en la tabla derecha, en Ejecución de flujo de trabajo, seleccione la ejecución del flujo de trabajo Agregar o actualizar la configuración del flujo de trabajo de implementación de App Service.

  3. Espere hasta que finalice la ejecución del flujo de trabajo y, después, en el trabajo Implementar en la ejecución del flujo de trabajo, copie la dirección URL en el trabajo Implementar que muestra la dirección URL de la aplicación web de Azure.

  4. Por último, abra la dirección URL en un explorador y compruebe que la aplicación Java está implementada, conectada a la base de datos MySQL y que devuelve datos.

Pasos siguientes

¡Felicidades! Ahora tiene dos flujos de trabajo de Acciones de GitHub: una acción de aprovisionamiento y una acción de compilación e implementación.

Cada vez que escriba un git push comando para confirmar el código, se desencadena la acción de compilación e implementación y se implementa la aplicación.

Importante

Aunque vuelva a ejecutar el aprovisionamiento de la acción de GitHub, no se volverán a crear los recursos si ya existen. Deberá eliminar manualmente el grupo de recursos o los recursos y, a continuación, volver a ejecutar la acción de GitHub.

Al volver a ejecutar la acción de GitHub de compilación e implementación, se reemplazará la aplicación.

Si vuelve a crear la instancia de App Service, también deberá cambiar al perfil de publicación nuevo. Solo debe cambiar la siguiente línea:

publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}

Configuración de una canalización de Azure para implementar la aplicación de ejemplo

Como antes, deberá crear una canalización de Azure para compilar e implementar su aplicación.

En Azure DevOps, vaya al proyecto, seleccione "Canalizaciones" y seleccione "Nueva canalización" (esquina superior derecha).

Ahora se le proporcionarán cuatro pestañas para configurar la canalización:

  1. En la pestaña "Conectar", seleccione "GitHub" (archivo YAML).
  2. En la pestaña "Seleccionar", seleccione el repositorio de GitHub que contiene la plantilla.
  3. En la pestaña "Configurar", seleccione para usar un archivo YAML de Azure Pipelines existente.
  4. En la ruta de acceso, esta vez seleccione "/azuredevops/build_deploy.yml".
  5. Seleccione Continuar para ir a la pestaña "*Revisar" y revisar la canalización antes de ejecutarla.

En la pantalla Revisar la canalización YAML, inspeccione el archivo YAML que usará para crear la canalización:

name: Build and Deploy

trigger:
- main

stages:

# Build your Spring Boot App using Maven
- stage: Build
  displayName: Build stage
  jobs:
  - job: MavenPackageAndPublishArtifacts
    displayName: Maven Package and Publish Artifacts
    pool:
      vmImage: 'ubuntu-latest'

    steps:
    - task: Maven@3
      displayName: 'Maven Package'
      inputs:
        mavenPomFile: 'pom.xml'

    - task: CopyFiles@2
      displayName: 'Copy Files to artifact staging directory'
      inputs:
        SourceFolder: '$(System.DefaultWorkingDirectory)'
        Contents: '**/target/*.?(war|jar)'
        TargetFolder: $(Build.ArtifactStagingDirectory)

    - upload: $(Build.ArtifactStagingDirectory)
      artifact: drop

# Deploy to Azure using the AzureWebApp task using your Service Connection
- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: DeployLinuxWebApp
    displayName: Deploy Linux Web App
    environment: 'production'
    pool:
      vmImage: 'ubuntu-latest'
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            displayName: 'Azure Web App Deploy'
            inputs:
              azureSubscription: $(serviceConnection)
              appType: webAppLinux
              appName: '$(webAppName)'
              package: '$(Pipeline.Workspace)/drop/**/target/*.?(war|jar)'

Echemos un vistazo a algunos de los campos que usamos en la configuración de "Compilación":

  • azureSubscription: su suscripción de Azure
  • appType: tipo de aplicación web
  • appName: el nombre del servicio de aplicaciones existente.
  • package: La ruta de acceso del archivo al paquete o una carpeta que incluye el contenido del servicio de aplicaciones

Agregar variables de compilación

Al igual que con la canalización de aprovisionamiento, antes de guardar y ejecutar la canalización de compilación e implementación, debe agregar las variables de la canalización:

  1. Seleccione Variables en la parte superior derecha.
  2. Agregue una variable denominada serviceConnection con el valor como nombre de la conexión de servicio.
  3. Seleccione Aceptar en la esquina inferior derecha para guardar la variable.
  4. Agregue una segunda variable denominada webAppName con el nombre de App Service (el mismo valor definido en la variable de Terraform "application_name").
  5. Seleccione Aceptar para guardar la variable.
  6. Seleccione Guardar en la esquina inferior derecha para guardar ambas variables.

Captura de pantalla que muestra las nuevas variables.

Consulta de la ejecución de la canalización

  1. Seleccione && para guardar y ejecutar la canalización
  2. Al igual que hizo en la canalización de Aprovisionamiento, realice un seguimiento del proceso de compilación mediante de cada una de las fases y pasos.
  3. Compruebe que la aplicación Java está implementada, conectada a la base de datos MySQL y devuelva datos.

Captura de pantalla que muestra la nueva ejecución de Azure Pipeline.

Pasos siguientes

¡Felicidades! Ahora tiene dos flujos de trabajo de Azure Pipeline: una canalización de aprovisionamiento y una canalización de compilación e implementación.

Cada vez que escriba un git push comando para confirmar el código en la rama principal , se desencadena la canalización de compilación e implementación y se implementa la aplicación.

Importante

Aunque vuelva a ejecutar la canalización de Aprovisionamiento, no se volverán a crear los recursos si ya existen. Tendrá que eliminar manualmente el grupo de recursos o los recursos y volver a ejecutar la canalización. Puede encontrar más información sobre cómo lograr esto mejor en producción en la sección Resumen.

Al volver a ejecutar la canalización de compilación e implementación, se reemplazará la aplicación.

La siguiente unidad es una comprobación de conocimientos para ver lo que ha aprendido en este módulo.