Ejercicio: implementación de una aplicación de Spring Boot de muestra
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 aprovisionó sus recursos de Azure, puede implementar la aplicación de Spring Boot de muestra.
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.
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. Después, el Centro de implementación confirma el archivo en el repositorio de GitHub del 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.
En Azure Portal, vaya a la aplicación web Azure App Service.
En el panel izquierdo, expanda Implementación y seleccione Centro de implementación.
En la lista desplegable Origen, en Implementación continua (CI/CD), seleccione GitHub.
Seleccione Acciones de GitHub. (Este debe ser el valor predeterminado, pero si no es así, seleccione Cambiar proveedor para cargar las opciones del proveedor).
Haga lo siguiente en las listas desplegables que se encuentran en Configuración:
a. Seleccione el repositorio de GitHub.
b. En el caso de la rama, seleccione main (principal).
c. En el caso de la pila de aplicaciones, seleccione JAVA 8.En la página final, revise sus selecciones y obtenga una vista previa del archivo de flujo de trabajo que se confirmará en el repositorio.
Seleccione Guardar para confirmar el archivo de flujo de trabajo en el repositorio e iniciar de inmediato 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 si selecciona la pestaña Acciones, el flujo de trabajo de compilación e implementación y, luego, selecciona Re-run jobs (Volver a ejecutar los trabajos).
Confirmación de la compilación de Acciones de GitHub
En el repositorio de GitHub, seleccione la pestaña Acciones y, luego, en el lado izquierdo, en Todos los flujos de trabajo, seleccione "Build and deploy JAR app to Azure Web App" (Compilar e implementar aplicaciones JAR en Azure en App).
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.
Espere a que finalice la ejecución del flujo de trabajo y, luego, en el trabajo implementar en la ejecución del flujo de trabajo, copie la dirección URL de este trabajo que muestra la dirección URL de la aplicación web de Azure.
Por último, abra la dirección URL en un explorador y compruebe que la aplicación Java esté implementada, que esté conectada a la base de datos MySQL y que devuelva 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 ingresa un comando git push
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. Tendrá que eliminar manualmente el grupo de recursos o los recursos y 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 tiene que cambiar la línea siguiente:
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Configuración de una canalización de Azure para implementar la aplicación de ejemplo
Al igual que anteriormente, deberá crear una canalización de Azure para compilar e implementar la 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:
- En la pestaña "Conectar", seleccione "GitHub" (archivo YAML).
- En la pestaña "Seleccionar", seleccione el repositorio de GitHub que contiene la plantilla.
- En la pestaña "Configurar", seleccione usar "Archivo YAML de Azure Pipelines existente".
- En la ruta de acceso, esta vez seleccione "/azuredevops/build_deploy.yml".
- Seleccione Continuar para ir a la pestaña "*Revisar" y revise la canalización antes de ejecutarla.
En la pantalla Revisar YAML de la canalización, examine 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: el 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.
Incorporación de 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:
- En la esquina superior derecha, seleccione Variables.
- Agregue una variable denominada serviceConnection con el valor como nombre de la conexión de servicio.
- Seleccione Aceptar en la esquina inferior derecha para guardar la variable.
- Agregue una segunda variable denominada webAppName con el nombre de la instancia de App Service (el mismo valor definido en la variable de Terraform "application_name").
- Seleccione Aceptar para guardar la variable.
- Seleccione Guardar en la esquina inferior derecha para guardar ambas variables.
Consulta de la ejecución de la canalización
- Seleccione && para guardar y ejecutar la canalización.
- Al igual que hizo en la canalización Aprovisionamiento, realice un seguimiento del proceso de compilación mediante de cada una de las fases y pasos.
- 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 canalización de Azure: una canalización de aprovisionamiento y una canalización de compilación e implementación.
Cada vez que introduce un comando git push
para confirmar el código en la rama main, 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 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. Encontrará más información sobre cómo conseguirlo 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.
En la unidad siguiente encontrará una prueba de conocimientos para ver lo que aprendió en este módulo.