Início Rápido: Como Implantar aplicativos de microsserviço nos Aplicativos Spring do Azure

Observação

As primeiras 50 horas de vCPU e os primeiros 100 GB de memória são gratuitos todos os meses. Para obter mais informações, confira Redução de preços – os Aplicativos Spring do Azure fazem mais, custando menos no blog Apps on Azure.

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

Este artigo explica como implantar aplicativos de microsserviço nos Aplicativos Spring do Azure por meio do aplicativo de exemplo bem conhecido PetClinic.

O exemplo Pet Clinic demonstra o padrão de arquitetura de microsserviço e realça o detalhamento dos serviços. O diagrama a seguir mostra a arquitetura do aplicativo PetClinic no plano Enterprise dos Aplicativos Spring do Azure.

Diagrama que mostra a arquitetura da amostra de PetClinic no plano Enterprise dos Aplicativos Spring do Azure.

O diagrama mostra os seguintes fluxos arquitetônicos e relações do exemplo Pet Clinic:

  • Usa os Aplicativos Spring do Azure Apps para gerenciar os aplicativos de front-end e de back-end. Os aplicativos de back-end são criados com o Spring Boot e cada aplicativo usa HSQLDB como o repositório persistente. O aplicativo front-end reformulado baseia-se no aplicativo Pet Clinic API Gateway com Node.js servindo como um aplicativo Web de front-end independente.
  • Usa os componentes gerenciados nos Aplicativos Spring do Azure, incluindo o Registro de Serviço, o Serviço de Configuração de Aplicativos, o Spring Cloud Gateway e o Application Live View. O Serviço de Configuração de Aplicativos lê a configuração do repositório Git.
  • Expõe o URL do Spring Cloud Gateway para rotear a solicitação para aplicativos de serviço de back-end e expõe o URL do Application Live View para monitorar os aplicativos de back-end.
  • Analisa logs usando o workspace do Log Analytics.
  • Monitoramento de Desempenho com o Application Insights.

Observação

Este artigo usa uma versão simplificada do PetClinic, usando um banco de dados em memória que não está pronto para produção para implantar rapidamente nos Aplicativos Spring do Azure.

As Ferramentas para Desenvolvedores do Tanzu expõem o acesso público para o Application Live View, que é um ponto de risco. O ambiente de produção precisa proteger o acesso. Para obter mais informações, confira a seção Configurar o Portal de Ferramentas para Desenvolvedores em Configurar Ferramentas para Desenvolvedores do Tanzu no plano Enterprise dos Aplicativos Spring do Azure.

O exemplo Pet Clinic demonstra o padrão de arquitetura de microsserviço e realça o detalhamento dos serviços. O diagrama a seguir mostra a arquitetura do aplicativo PetClinic no plano Standard dos Aplicativos Spring do Azure.

Diagrama que mostra a arquitetura da amostra de PetClinic no plano Standard dos Aplicativos Spring do Azure.

O diagrama mostra os seguintes fluxos arquitetônicos e relações do exemplo Pet Clinic:

  • Usa os Aplicativos Spring do Azure para gerenciar os aplicativos Spring Boot. Cada aplicativo usa HSQLDB como o armazenamento persistente.
  • Usa os componentes gerenciados do Spring Cloud Config Server e Eureka Service Registry nos Aplicativos Spring do Azure. O Config Server lê a configuração do repositório Git.
  • Expõe a URL do Gateway de API para balancear a carga de solicitações para aplicativos de serviço e expõe a URL do Servidor Administração para gerenciar os aplicativos.
  • Analisa logs usando o workspace do Log Analytics.
  • Monitoramento de Desempenho com o Application Insights.

Observação

Este artigo usa uma versão simplificada do PetClinic, usando um banco de dados em memória que não está pronto para produção para implantar rapidamente nos Aplicativos Spring do Azure.

O aplicativo admin-server implantado expõe o acesso público, que é um ponto de risco. O ambiente de produção precisa proteger o aplicativo Administrador do Spring Boot.

Este artigo fornece as seguintes opções para implantação em Aplicativos Spring do Azure:

  • A opção do portal do Azure é a maneira mais fácil e rápida de criar recursos e implantar aplicativos com um único clique. Essa opção é adequada para os desenvolvedores do Spring que desejam implantar rapidamente aplicativos nos serviços de nuvem do Azure.
  • A opção do portal do Microsoft Azure + plug-in do Maven fornece uma maneira mais convencional de criar recursos e implantar aplicativos passo a passo. Esta opção é adequada para os desenvolvedores do Spring que estão usando os serviços de nuvem do Azure pela primeira vez.
  • A opção CLI do Azure é uma ferramenta de linha de comando poderosa para gerenciar recursos do Azure. Essa opção é adequada para os desenvolvedores do Spring que estão familiarizados com os serviços de nuvem do Azure.
  • A opção do portal do Microsoft Azure + plug-in do Maven fornece uma maneira mais convencional de criar recursos e implantar aplicativos passo a passo. Esta opção é adequada para os desenvolvedores do Spring que estão usando os serviços de nuvem do Azure pela primeira vez.
  • A opção do Azure Developer CLI é a maneira mais eficiente de criar recursos e implantar aplicativos automaticamente por meio de comandos simples. O Azure Developer CLI usa um modelo para provisionar os recursos do Azure necessários e implantar o código do aplicativo. Essa opção é adequada para os desenvolvedores do Spring que estão familiarizados com os serviços de nuvem do Azure.

1. Pré-requisitos

2. Preparar o projeto Spring

Use as seguintes etapas para preparar o exemplo localmente:

  1. Clone o projeto de exemplo usando o seguinte comando:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. Navegue até o diretório raiz do projeto e use o seguinte comando para executar o projeto de exemplo localmente:

    bash ./scripts/run_all_without_infra.sh
    
  3. Depois que o script for concluído com sucesso, vá para http://localhost:8080 no navegador para acessar o aplicativo PetClinic.

3. Preparar o ambiente de nuvem

Esta seção descreve como criar uma instância de serviço dos Aplicativos Spring do Azure e preparar o ambiente de nuvem do Azure.

3.1. Entre no Portal do Azure

Acesse o portal do Azure e insira suas credenciais para entrar no portal. A exibição padrão é o painel de serviço.

3.2. Criar uma instância do Azure Spring Apps

Use as etapas a seguir para criar a instância de serviço:

  1. Selecione Criar um recurso no canto do portal do Azure.

  2. Na guia Serviços do Azure, selecione Computação>Aplicativos Spring do Azure.

    Captura de tela do portal do Azure que mostra a página Criar um Recurso com os Aplicativos Spring do Azure realçados.

  3. Na página Criar Aplicativos Spring do Azure , preencha o formulário na guia Noções Básicas .

    Captura de tela do portal do Azure que mostra a página Criar Aplicativos Spring do Azure com a guia Informações Básicas selecionada.

    Use a tabela a seguir como um guia para concluir o formulário. O Plano recomendado é o Standard.

    Configuração Valor sugerido Descrição
    Assinatura O nome da sua assinatura. A assinatura do Azure que você deseja usar para o servidor. Caso você tenha várias assinaturas, escolha a assinatura na qual você deseja receber a cobrança do recurso.
    Grupo de recursos myresourcegroup Um novo nome do grupo de recursos ou um existente de sua assinatura.
    Nome myasa Um nome exclusivo que identifica sua instância dos Aplicativos Spring do Azure. O nome deve ter entre 4 e 32 caracteres e pode conter apenas letras minúsculas, números e hifens. O primeiro caractere do nome do serviço deve ser uma letra e o último caractere deve ser uma letra ou um número.
    Plano Standard O plano de preços determina os recursos e o custo associados à sua instância.
    Região A região mais próxima de seus usuários. A localização mais próxima dos usuários.
    Com Redundância de Zona Não selecionado Cria seu serviço dos Aplicativos Spring do Azure em uma zona de disponibilidade do Azure. Atualmente, não há suporte em todas as regiões.
  4. Navegue até a guia Configurações de diagnóstico na página Criar Aplicativos Spring do Azure e selecione Criar novo para criar uma nova instância de workspaces do Log Analytics. Na página Criar workspace do Log Analytics , atualize o nome do workspace do Log Analytics conforme necessário e selecione OK para confirmar a criação.

    Captura de tela do portal do Azure que mostra a página Criar Aplicativos Spring do Azure com a guia Diagnóstico selecionada e o botão Criar realçado.

  5. Navegue até a guia Application Insights na página Criar Aplicativos Spring do Azure e selecione Criar novo para criar uma nova instância do Application Insights. Na página Criar novo recurso do Application Insights, atualize o nome do Application Insights conforme necessário, selecione o Baseado em workspace para Modo de recurso e, em seguida, selecione OK para confirmar a criação.

    Captura de tela do portal do Azure que mostra a página Criar Aplicativos Spring do Azure com o painel Criar recurso do Application Insights sendo exibido.

  6. Selecione Revisar e criar para revisar suas seleções. Em seguida, selecione Criar para provisionar a instância dos Aplicativos Spring do Azure.

  7. Na barra de ferramentas, selecione o íconeNotificações (um sino) para monitorar o processo de implantação. Depois que a implantação terminar, você pode selecionar Fixar no painel para criar um atalho para a página Visão geral do serviço no seu painel do portal do Azure.

    Captura de tela do portal do Azure que mostra a implantação de um recurso e o painel Notificação com os botões Ir para o recurso e Fixar no painel.

  8. Selecione Ir para o recurso para ir para a página Visão geral dos Aplicativos Spring do Azure.

  9. Escolha Config Server no painel de navegação.

  10. Na página Config Server, em URI, insira https://github.com/Azure-Samples/spring-petclinic-microservices-config.git e depois selecione Validar.

    Captura de tela do portal do Azure que mostra a página Config Server com o URI padrão e o botão Validar realçado.

  11. Após a validação, selecione Aplicar para concluir a configuração do Config Server.

4. Implantar os aplicativos nos Aplicativos Spring do Azure

Agora você pode implantar o aplicativo em Aplicativos Spring do Azure.

Use as etapas a seguir para implantar os aplicativos de microsserviço por meio do plug-in do Maven para os Aplicativos Spring do Azure:

  1. Navegue até o diretório do projeto de exemplo e, em seguida, use o comando a seguir para configurar os aplicativos dos Aplicativos Spring do Azure:

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. A lista a seguir descreve as interações de comando:

    • Selecione módulos filho para configurar (números de entrada separados por vírgula, por exemplo: [1-2,4,6], ENTER para selecionar TUDO): Pressione Enter para selecionar tudo.
    • Logon do OAuth2: autorize a entrada no Azure com base no protocolo OAuth2.
    • Selecionar assinatura: selecione o número da lista de assinaturas da instância dos Aplicativos Spring do Azure que você criou, que usa como padrão a primeira assinatura na lista. Se você usar o número padrão, pressione Enter diretamente.
    • Selecionar os Aplicativos Spring do Azure para implantação: selecione o número da lista da instância dos Aplicativos Spring do Azure que você criou. Se você usar o número padrão, pressione Enter diretamente.
    • Selecionar aplicativos para expor o acesso público:(números de entrada separados por vírgula, por exemplo: [1-2,4,6], ENTER para selecionar NENHUM): insira1,5 para admin-server e api-gateway.
    • Confirme para salvar todas as configurações acima (S/n): Pressione s. Se você pressionar n, a configuração não será salva nos arquivos POM.
  3. Use o seguinte comando para criar e implantar o aplicativo de front-end:

    ./mvnw azure-spring-apps:deploy
    
  4. Para o prompt de Logon do OAuth2: autorize o logon no Azure com base no protocolo OAuth2.

    Observação

    A implantação nos Aplicativos Spring do Azure pode levar até 25 minutos.

Depois que o comando é executado, um log exibe uma saída semelhante ao exemplo a seguir, que indica que todas as implantações foram bem-sucedidas:

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. Preparar o projeto Spring

O botão Implantar no Azure na próxima seção inicia uma experiência do portal do Azure que baixa um pacote JAR da página de versões do ASA-Samples-Web-Application no GitHub. Nenhuma etapa de preparação local é necessária.

3. Preparar o ambiente de nuvem

O principal recurso necessário para executar esse exemplo é uma instância dos Aplicativos Spring do Azure. Esta seção descreve como criar esse recurso.

Esta seção usa um botão Implantar no Azure para iniciar uma experiência de implantação no portal do Azure. Essa experiência usa um modelo do ARM para criar recursos do Azure.

3.1. Entre no Portal do Azure

Acesse o portal do Azure e insira suas credenciais para entrar no portal. A exibição padrão é o painel de serviço.

3.2. Criar recursos do Azure

Use as seguintes etapas para criar todos os recursos do Azure dos quais o aplicativo depende:

  1. Selecione o botão Implantar no Azure para iniciar a experiência de implantação no portal do Azure:

    Botão para implantar o modelo do Resource Manager no Azure.

  2. Preencha o formulário na guia Noções básicas. Use a tabela a seguir como uma guia para concluir o formulário:

    Configuração Valor sugerido Descrição
    Assinatura O nome da sua assinatura. A assinatura do Azure que você deseja usar para o servidor. Caso você tenha várias assinaturas, escolha a assinatura na qual você deseja receber a cobrança do recurso.
    Grupo de recursos myresourcegroup Um novo nome do grupo de recursos ou um existente de sua assinatura.
    Região A região mais próxima de seus usuários. A região é usada para criar o grupo de recursos.

    Captura de tela do portal do Azure que mostra a página Implantação personalizada.

  3. Selecione Revisar e criar para revisar suas seleções. Em seguida, selecione Criar para implantar o aplicativo nos Aplicativos Spring do Azure.

  4. Na barra de ferramentas, selecione o ícone (sino) Notificações para monitorar o processo de implantação. Após a conclusão da implantação, selecione Fixar no painel, que cria um bloco para esse serviço no painel do portal do Azure como um atalho para a página de Visão geral do serviço. Selecione Ir para o recurso para abrir a página Visão geral do serviço.

    Captura de tela do portal do Azure que mostra a página Visão geral com o painel de notificações da implantação personalizada aberto.

4. Implantar os aplicativos nos Aplicativos Spring do Azure

O botão Implantar no Azure na seção anterior inicia uma experiência do portal do Azure que inclui a implantação do aplicativo, portanto, nada mais é necessário.

5. Validar os aplicativos

As seções a seguir descrevem como validar a implantação.

5.1. Acessar os aplicativos

Após a conclusão da implantação, encontre o URL do Gateway de Spring Cloud nas saídas de implantação, conforme mostrado na seguinte captura de tela:

Captura de tela do portal do Azure que mostra a página Saídas de Implantação.

Abra o URL do gateway. A aparência do aplicativo deve ser similar à captura de tela a seguir:

Captura de tela do aplicativo PetClinic em execução no plano Enterprise dos Aplicativos Spring do Azure.

5.2. Consultar os logs do aplicativo

Depois de procurar cada função do Pet Clinic, o workspace do Log Analytics coleta logs de cada aplicativo. Você pode marcar os logs por meio de consultas personalizadas, conforme mostrado na captura de tela a seguir:

Captura de tela do portal do Azure que mostra a página Logs da consulta no aplicativo PetClinic e os resultados para o plano Enterprise.

5.3. Monitorar os aplicativos

O Application Insights monitora as dependências do aplicativo, conforme mostrado pelo seguinte mapa de rastreamento de aplicativos:

Captura de tela do portal do Azure que mostra a página Mapa do aplicativo do plano Enterprise dos Aplicativos Spring do Azure.

Encontre o URL da Exibição ao vivo de aplicativos nas saídas de implantação. Abra o URL da Exibição ao vivo de aplicativos para monitorar os runtimes do aplicativo, conforme mostrado na seguinte captura de tela:

Captura de tela da Exibição ao Vivo do Aplicativo para o aplicativo PetClinic.

5.1. Acessar os aplicativos

Usando as informações de URL na saída do log de implantação, abra a URL exposta pelo aplicativo chamado api-gateway, por exemplo, https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io. A aparência do aplicativo deve ser similar à captura de tela a seguir:

Captura de tela do aplicativo PetClinic em execução nos Aplicativos Spring do Azure.

5.2. Consultar os logs do aplicativo

Depois de procurar cada função do Pet Clinic, o workspace do Log Analytics coleta logs de cada aplicativo. Você pode marcar os logs por meio de consultas personalizadas, conforme mostrado na captura de tela a seguir:

Captura de tela do portal do Azure que mostra a página Logs da consulta no aplicativo PetClinic e os resultados.

5.3. Monitorar os aplicativos

O Application Insights monitora as dependências do aplicativo, conforme mostrado pelo seguinte mapa de rastreamento de aplicativos:

Captura de tela do portal do Azure que mostra a página Mapa do aplicativo para uma instância do Application Insights.

Abra a URL exposta pelo aplicativo admin-server para gerenciar os aplicativos por meio do Servidor de Administração do Spring Boot, conforme mostrado na captura de tela a seguir:

Captura de tela da página do Servidor de Administrador do Spring Boot para o aplicativo PetClinic listando as instâncias atuais do aplicativo.

6. Limpar os recursos

Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não precisar mais dos recursos, você poderá limpar os recursos desnecessários para evitar cobranças do Azure.

Use as seguintes etapas para excluir todo o grupo de recursos, incluindo a instância de serviço recém-criada:

  1. Encontre o grupo de recursos no portal do Azure. No menu de navegação, selecione Grupos de recursos e, em seguida, selecione o nome do seu grupo de recursos.

  2. Na página do Grupo de recursos, selecione Excluir. Insira o nome do seu grupo de recursos na caixa de texto para confirmar a exclusão e selecione Excluir.

Exclua os recursos que você criou neste artigo quando não precisar mais deles. Você pode excluir o grupo de recursos do Azure, que inclui todos os recursos no grupo de recursos.

Use as seguintes etapas para excluir todo o grupo de recursos:

  1. Encontre o grupo de recursos no portal do Azure. No menu de navegação, selecione Grupos de recursos e, em seguida, selecione o nome do seu grupo de recursos.

  2. Na página do Grupo de recursos, selecione Excluir. Insira o nome do seu grupo de recursos na caixa de texto para confirmar a exclusão e selecione Excluir.

7. Próximas etapas

Para obter mais informações, consulte os seguintes artigos: