Exercício – Implantar um aplicativo de exemplo do Spring Boot

Concluído

Neste exercício, você usará um fluxo de trabalho automatizado para compilar e implantar o aplicativo Spring Boot de exemplo.

Configurar uma ação do GitHub para implantar o aplicativo de exemplo

Agora que você provisionou seus recursos do Azure, implante seu aplicativo de exemplo do Spring Boot.

Para criar o fluxo de trabalho do GitHub do Maven, você usará a ferramenta interna do assistente de CI/CD (integração contínua e entrega contínua) disponível no Centro de Implantação no portal do Serviço de Aplicativo do Azure.

Screenshot of the Azure App Service Deployment Center.

O Centro de Implantação do Serviço de Aplicativo do Azure gera automaticamente um arquivo de fluxo de trabalho do GitHub Actions baseado na sua pilha de aplicativos. Em seguida, o Centro de Implantação faz commit do arquivo no repositório GitHub no diretório correto. Ele também vincula sua ação do GitHub a um perfil de publicação do Serviço de Aplicativo do Azure.

  1. No portal do Azure, acesse seu aplicativo Web do Serviço de Aplicativo do Azure.

  2. No painel de menu à esquerda, em Implantação, selecione Centro de Implantação.

  3. Na lista suspensa Origem, em CI/CD (Implantação Contínua), selecione GitHub.

  4. Escolha GitHub Actions. (Esse deve ser o padrão, mas se não for, selecione Alterar provedor para carregar as opções de provedor).

  5. Em Configurações, nas listas suspensas, faça o seguinte:

    a. Selecione seu repositório GitHub.
    b. Para o branch, selecione main.
    c. Para a pilha de aplicativos, selecione JAVA 8.

  6. Na página final, examine suas seleções e visualize o arquivo de fluxo de trabalho que será confirmado no repositório.

  7. Selecione Salvar para fazer commit do arquivo de fluxo de trabalho no repositório e comece a compilar e implantar seu aplicativo imediatamente.

    Observação

    Dispare também o fluxo de trabalho do GitHub Actions no seu repositório selecionando a guia Ações, escolhendo o fluxo de trabalho build e implantação e Executar trabalhos novamente.

Confirmar o build do GitHub Actions

  1. No repositório GitHub, selecione a guia Ações e, no lado esquerdo, em Todos os Fluxos de Trabalho, selecione "Criar e implantar aplicativo JAR no Aplicativo Web do Azure".

  2. Em seguida, na tabela do lado direito, em Execução de fluxo de trabalho, selecione a execução de fluxo de trabalho Adicionar ou atualizar a configuração do fluxo de trabalho de implantação do Serviço de Aplicativo.

  3. Aguarde até que a execução de fluxo de trabalho seja concluída e, no trabalho Implantar na execução de fluxo de trabalho, copie a URL no trabalho Implantar que exibe a URL do aplicativo Web do Azure.

  4. Por fim, abra a URL em um navegador e verifique se o aplicativo Java está implantado, conectado ao banco de dados MySQL e se está retornando dados.

Próximas etapas

Parabéns! Agora você tem dois fluxos de trabalho do GitHub Actions: uma ação de provisionamento e uma ação de build e implantação.

Toda vez que você inserir um comando git push para fazer commit do código, a ação de build e implantação será disparada e o aplicativo será implantado.

Importante

A nova execução do provisionamento da ação do GitHub não recriará os recursos se eles já existirem. Será necessário excluir o grupo de recursos ou os recursos manualmente e executar de novo a ação do GitHub.

A nova execução da ação de build e implantação do GitHub substituirá o aplicativo.

Se você recriar a instância do Serviço de Aplicativo, também precisará alterar para o novo perfil de publicação. Você precisará alterar apenas a seguinte linha:

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

Configurar um pipeline do Azure para implantar o aplicativo de exemplo

Como antes, você precisará criar um pipeline do Azure para compilar e implantar seu aplicativo.

No Azure DevOps, acesse o projeto, selecione "Pipelines" e "Novo Pipeline" (canto superior direito).

Agora, haverá quatro guias para configurar o pipeline:

  1. Na guia "Conectar", selecione "GitHub" (arquivo YAML).
  2. Na guia "Selecionar", escolha o repositório do GitHub que contém o modelo.
  3. Na guia "Configurar", escolha o uso de um "Arquivo YAML existente do Azure Pipelines".
  4. No caminho, desta vez, selecione "/azuredevops/build_deploy.yml"
  5. Escolha Continuar para acessar a guia "*Examinar" e examine o pipeline antes de executá-lo.

Na tela Examinar o YAML do pipeline, inspecione o arquivo YAML que você usará para criar o pipeline:

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)'

Vamos examinar alguns dos campos usados na configuração de "Build":

  • azureSubscription: sua assinatura do Azure
  • appType: o tipo de aplicativo Web
  • appName: o nome do serviço de aplicativo existente
  • package: o caminho do arquivo para o pacote ou uma pasta que contém o conteúdo do serviço de aplicativo

Adicionar variáveis de build

Assim como em nosso pipeline de provisionamento, antes de salvar e executar o pipeline de build e implantação, você precisa adicionar as variáveis do pipeline:

  1. Selecione Variables na parte superior direita.
  2. Adicione uma variável denominada serviceConnection usando como valor o nome da Conexão de Serviço.
  3. Escolha OK (canto inferior direito) para salvar a variável.
  4. Adicione uma segunda variável denominada webAppName com o nome do Serviço de Aplicativo (mesmo valor definido na variável "application_name" do Terraform).
  5. Selecione OK para salvar a variável.
  6. Clique em Salvar (canto inferior direito) para salvar as duas variáveis.

Screenshot displaying the new variables.

Inspecionar a execução de pipeline

  1. Selecione && para salvar e executar o pipeline
  2. Como você fez no pipeline de Provisionamento, acompanhe o processo de build em cada uma das fases e etapas.
  3. Verifique se o aplicativo Java foi implantado, se está conectado ao banco de dados MySQL e se está retornando dados.

Screenshot displaying the new Azure Pipeline run.

Próximas etapas

Parabéns! Agora você tem dois fluxos de trabalho do Azure Pipeline: um pipeline de provisionamento e um pipeline de build e implantação.

Toda vez que você inserir um comando git push para fazer commit do código no branch main, o pipeline de build e implantação será disparado e o aplicativo será implantado.

Importante

A nova execução do pipeline de provisionamento não recriará os recursos se eles já existirem. Será necessário excluir o grupo de recursos ou os recursos manualmente e executar o pipeline de novo. Na seção Resumo, veja mais informações de como atingir esse objetivo.

A nova execução do pipeline de build e implantação substituirá o aplicativo.

A próxima unidade é uma verificação de conhecimentos para ver o que você aprendeu neste módulo.