Compartilhar via


Início Rápido: Inicie seu primeiro aplicativo de microsserviços Java com componentes Java gerenciados nos Aplicativos de Contêiner do Azure

Neste início rápido, você aprenderá a implantar um aplicativo nos Aplicativos de Contêiner do Azure que usa componentes Java para lidar com o gerenciamento de configuração, a descoberta de serviços e a integridade e as métricas. O aplicativo de exemplo usado nesse exemplo é o Java PetClinic, que usa o padrão de arquitetura de microsserviços. O diagrama a seguir mostra a arquitetura do aplicativo PetClinic nos Aplicativos de Contêiner do Azure:

Diagrama da relação entre os componentes Java e os aplicativos de microsserviços.

O aplicativo PetClinic inclui os seguintes recursos:

  • O front-end é um aplicativo Web Node.js autônomo hospedado no aplicativo de gateway de API.
  • O gateway de API roteia solicitações para aplicativos de serviço de back-end.
  • Os aplicativos de back-end são criados com Spring Boot.
  • Cada aplicativo de back-end usa um banco de dados HyperSQL como repositório persistente.
  • Os aplicativos usam componentes Java gerenciados nos Aplicativos de Contêiner do Azure, incluindo um registro de serviço, um servidor de configuração e um servidor de administração.
  • O servidor de configuração lê dados de um repositório Git.
  • Um workspace do Log Analytics registra os dados do servidor.

Neste tutorial, você:

  • Crie um servidor de configuração, um servidor Eureka, um servidor de administração e componentes de administração
  • Crie uma série de aplicativos de microsserviços
  • Vincule os componentes do servidor aos seus aplicativos de microsserviços
  • Implante a coleção de aplicativos
  • Revise os aplicativos implantados

Ao final deste artigo, você implantará um aplicativo Web e três aplicativos de back-end configurados para trabalhar com três componentes Java diferentes. Você poderá gerenciar cada componente por meio do portal do Azure.

Pré-requisitos

  • Conta do Azure: se você não tiver uma conta do Azure, crie uma gratuitamente. Você precisa da permissão de Colaborador ou Proprietário na assinatura do Azure para usar esse início rápido. Para obter mais informações, confira Atribuir funções do Azure usando o portal do Azure.
  • CLI do Azure: Instalar a CLI do Azure.
  • Extensão da CLI de Aplicativos de Contêiner do Azure. Use a versão 0.3.47 ou superior. Use o comando az extension add --name containerapp --upgrade --allow-preview para instalar a versão mais recente.

Instalação

Para criar variáveis de ambiente, um grupo de recursos e um ambiente de Aplicativos de Contêiner do Azure, use as etapas a seguir:

  1. As variáveis de ambiente contêm seus valores personalizados, portanto, substitua os valores de espaço reservado entre <> pelos seus próprios valores antes de executar os seguintes comandos:

    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. Agora você criará mais variáveis de ambiente que contêm as configurações do seu aplicativo de microsserviços. Esses valores são usados para definir os nomes e as configurações dos componentes Java e dos Aplicativos de Contêiner do Azure que você usa para implantar os microsserviços. Crie essas variáveis de ambiente usando os seguintes comandos:

    export CONFIG_SERVER_COMPONENT=configserver
    export ADMIN_SERVER_COMPONENT=admin
    export EUREKA_SERVER_COMPONENT=eureka
    export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git
    export CUSTOMERS_SERVICE=customers-service
    export VETS_SERVICE=vets-service
    export VISITS_SERVICE=visits-service
    export API_GATEWAY=api-gateway
    export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service
    export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service
    export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service
    export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
    
  3. Entre na CLI do Azure e escolha sua assinatura ativa usando o seguinte comando:

    az login
    
  4. Crie um grupo de recursos para organizar seus serviços do Azure usando o seguinte comando:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Crie seu ambiente de Aplicativos de Contêiner do Azure, que hospeda tanto os componentes Java quanto seus aplicativos de contêiner, usando o seguinte comando:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

Criar componentes Java

Agora você criará os seguintes componentes Java que dão suporte ao seu aplicativo:

  • Servidor de configuração. Usado para gerenciar as definições de configuração dos seus aplicativos de microsserviços.
  • Servidor Eureka. Usado para gerenciar o registro e a descoberta de serviços.
  • Servidor de administração. Usado para monitorar e gerenciar a integridade e as métricas dos seus aplicativos de microsserviços.

Para criar esses componentes de servidor, use as etapas a seguir:

  1. Crie o servidor de configuração para seus componentes Java usando o seguinte comando:

    az containerapp env java-component config-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $CONFIG_SERVER_COMPONENT \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
    
  2. Crie o servidor Eureka para seus componentes Java usando o seguinte comando:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Crie o servidor de administração para seus componentes Java usando o seguinte comando:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

Implantar os aplicativos de microsserviços

Para implantar os aplicativos de microsserviços Java nos Aplicativos de Contêiner do Azure usando as imagens de contêiner pré-criadas, use as etapas a seguir:

Observação

Neste artigo, você usará uma série de imagens criadas para os aplicativos de microsserviços Spring Petclinic. Você também tem a opção de personalizar o código de exemplo e usar suas próprias imagens. Para obter mais informações, confira o repositório GitHub de exemplos Java nos Aplicativos de Contêiner do Azure.

  1. Crie o aplicativo de dados do cliente usando o seguinte comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Crie o aplicativo de veterinário usando o seguinte comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Crie o aplicativo de visitas usando o seguinte comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Crie o aplicativo de gateway de API usando o seguinte comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $API_GATEWAY_IMAGE \
        --ingress external \
        --target-port 8080 \
        --query properties.configuration.ingress.fqdn 
    

Vincular aplicativos de contêiner a componentes Java

Em seguida, vincule os componentes Java aos seus aplicativos de contêiner. As vinculações que você criar nessa seção fornecem a seguinte funcionalidade:

  • Injetar dados de configuração em cada aplicativo do servidor de configuração gerenciado na inicialização.
  • Registrar o aplicativo no servidor Eureka gerenciado para descoberta de serviços.
  • Habilitar o servidor de administração para monitorar o aplicativo.

Use o comando containerapp update para criar vinculações para cada aplicativo usando as etapas a seguir:

  1. Adicione associações ao aplicativo de dados do cliente usando o seguinte comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Adicione associações ao serviço de veterinário usando o seguinte comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Adicione associações ao serviço de visitas usando o seguinte comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. Adicione associações ao gateway de API. Use o seguinte comando para retornar a URL do aplicativo de front-end e abrir este local no navegador:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \
        --query properties.configuration.ingress.fqdn 
    

Verificar o status do aplicativo

Use as etapas a seguir para verificar o status do aplicativo:

  1. Usando a URL retornada do comando az containerapp update do gateway de API, exiba o aplicativo de front-end no navegador. O aplicativo deve se parecer com a captura de tela a seguir:

    Captura de tela da home page do aplicativo da clínica veterinária.

  2. Exiba o painel do servidor Eureka usando as etapas a seguir:

    Importante

    Para exibir o painel do servidor Eureka e o painel de Administração do Spring, você precisa ter pelo menos a função Microsoft.App/managedEnvironments/write atribuída à sua conta no recurso de ambiente gerenciado. Você pode atribuir explicitamente a função Owner ou a função Contributor no recurso. Você também pode seguir as etapas para criar uma definição de função personalizada e atribuí-la à sua conta.

    1. Execute o seguinte comando para retornar a URL do painel:

      az containerapp env java-component eureka-server-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $EUREKA_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Abra a URL no navegador. Você deverá ver um aplicativo semelhante à captura de tela a seguir:

      Captura de tela do servidor Eureka do aplicativo da clínica veterinária.

  3. Exiba o painel de Administração do Spring usando as etapas a seguir:

    1. Use o seguinte comando para retornar a URL do painel:

      az containerapp env java-component admin-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $ADMIN_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Abra a URL no navegador. Você deverá ver um aplicativo semelhante à captura de tela a seguir:

      Captura de tela do painel de administração do aplicativo da clínica veterinária mostrando cinco serviços ativos, além de informações de versão para quatro dos serviços.

Opcional: Configurar componentes Java

Você pode configurar os componentes Java criados nesse início rápido por meio do portal do Azure usando a seção Configurações.

Captura de tela da seção Configurações, mostrando as caixas de texto Nome da Propriedade e Valor e a capacidade de excluir uma propriedade.

Para obter mais informações sobre como configurar os três componentes Java criados nesse início rápido, confira os links a seguir:

Limpar os recursos

Os recursos criados nesse início rápido têm impacto na sua fatura do Azure. Se você não quiser usar esses serviços a longo prazo, use o seguinte comando para remover tudo o que foi criado nesse início rápido:

az group delete --resource-group $RESOURCE_GROUP