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

Concluído

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

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

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

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

Captura de tela do Centro de Implantação do Serviço de Aplicativo do Azure.

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 pilha de aplicativos. Em seguida, o Centro de Implantação confirma o arquivo em seu repositório GitHub no diretório correto. O Centro de Implantação 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 esquerdo, expanda a Implantação e selecione o Centro de Implantação.

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

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

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

    a. Selecione seu repositório GitHub.
    b. Para ramificação, selecione principal.
    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 confirmar o arquivo de fluxo de trabalho no repositório e comece imediatamente a compilar e implantar seu aplicativo.

    Observação

    Você também pode disparar o fluxo de trabalho do GitHub Actions em seu repositório selecionando a guia Ações , selecionando o fluxo de trabalho de build e implantação e, em seguida, selecionando trabalhos de nova execução.

Confirmar a compilação 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 o aplicativo JAR no Aplicativo Web do Azure".

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

  3. Aguarde até que a execução do fluxo de trabalho seja concluída e, em seguida, no trabalho Implantar na execução do 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 seu aplicativo Java está implantado, conectado ao banco de dados MySQL e 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.

Cada vez que você insere um git push comando para confirmar seu código, sua ação de build e implantação é disparada e seu aplicativo é implantado.

Importante

A nova execução do provisionamento da ação do GitHub não recriará os recursos se eles já existirem. Você precisará excluir seu grupo de recursos ou recursos manualmente e executar novamente a ação do GitHub.

Executar novamente sua ação de compilação e implantação do GitHub substituirá seu aplicativo.

Se você recriar a instância do Serviço de Aplicativo, também precisará alterar para o novo perfil de publicação. Você precisa 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 Azure Pipeline para criar e implantar seu aplicativo.

No Azure DevOps, acesse seu Projeto, selecione "Pipelines" e selecione "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. Selecione Continuar para acessar a guia "*Revisar" e examinar 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 que usamos na configuração "Build":

  • azureSubscription: sua assinatura do Azure
  • appType: seu tipo de aplicativo Web
  • appName: o nome do serviço de aplicativo existente
  • pacote: 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 acontece com 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 Variáveis no canto superior direito.
  2. Adicione uma variável chamada serviceConnection com o valor como o nome da Conexão de Serviço.
  3. Selecione OK no canto inferior direito para salvar a variável.
  4. Adicione uma segunda variável chamada webAppName com o nome do Serviço de Aplicativo (mesmo valor definido na variável terraform "application_name").
  5. Selecione OK para salvar a variável.
  6. Selecione Salvar no canto inferior direito para salvar ambas as variáveis.

Captura de tela exibindo as novas variáveis.

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 compilação em cada uma das fases e etapas.
  3. Verifique se seu aplicativo Java está implantado, conectado ao banco de dados MySQL e retornando dados.

Captura de tela que mostra a execução do novo pipeline do Azure.

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.

Sempre que você insere um comando git push para confirmar seu código no ramo principal, o pipeline de build e implantação é acionado e seu aplicativo é implantado.

Importante

A nova execução do pipeline de provisionamento não recriará os recursos se eles já existirem. Você deverá excluir o grupo de recursos ou os recursos manualmente e reexecutar o pipeline. Você pode encontrar mais informações sobre como obter melhor isso em produção na seção Resumo.

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

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