Início Rápido: configurar o dimensionamento automático para aplicativos no plano de consumo padrão e dedicado dos Aplicativos Spring do 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 se aplica ao: ✔️ Consumo padrão e dedicado (versão prévia) ❌ Básico/Standard ❌ Enterprise

Este artigo descreve como configurar regras de dimensionamento automático para seus aplicativos no plano de consumo padrão e dedicado dos Aplicativos Spring do Azure. O plano usa um ambiente de Aplicativos de Contêiner do Azure para hospedar seus aplicativos do Spring e fornece o seguinte gerenciamento e suporte:

  • Gerencia o escala horizontal automático por meio de um conjunto de regras de escala declarativas.
  • Suporta todas as regras de colocação em escala que os Aplicativos de Contêiner do Azure suportam.

Para obter mais informações, confira Documentação dos Aplicativos de Contêiner do Azure.

Pré-requisitos

Definição de escala

A colocação em escala é definida pela combinação de limites e regras.

  • Os limites são o número de instâncias mínimas e máximas que seu Spring permite.

    Limite de escala Valor padrão Valor mínimo Valor máximo
    Número mínimo de instâncias por implantação 1 0 30
    Número máximo de instâncias por implantação 10 1 30

    Por padrão, a contagem mínima de instâncias do seu aplicativo Spring é definida como 1 para garantir que sua implantação esteja sempre em execução. Se quiser reduzir horizontalmente até zero, você pode definir a contagem de instâncias mínimas como zero.

  • As regras são os critérios que o dimensionamento automático respeita para adicionar ou remover instâncias. As regras de escala incluem regras HTTP, TCP e Personalizadas, conforme descrito na seção Regras de escala em Definir regras de colocação em escala em Aplicativos de Contêiner do Azure.

    Se você definir mais de uma regra de escala, o dimensionamento automático começará quando a primeira condição de qualquer regra for atendida.

  • O intervalo de sondagem e o período de resfriamento são dois intervalos de tempo que ocorrem durante o dimensionamento automático.

    • O intervalo de sondagem define o período de tempo entre cada ação de sondagem de dados em tempo real, conforme definido pelas suas regras. O intervalo de sondagem padrão é definido em 30 segundos.
    • O período de resfriamento se aplica apenas a colocação em escala para zero, por exemplo, para aguardar cinco minutos após a última vez que o dimensionamento automático verificou a fila de mensagens e ela estava vazia.

Definições da configuração do dimensionamento automático

Você pode definir configurações de dimensionamento automático do seu aplicativo usando o portal do Azure ou a CLI do Azure.

Use as etapas a seguir para definir as configurações e as regras de dimensionamento automático.

  1. Entre no portal do Azure.
  2. Selecione Aplicativos Spring do Azure em Serviços do Azure.
  3. Na coluna Nome, selecione a instância do Aplicativos Spring do Azure que você deseja dimensionar automaticamente.
  4. Na página de visão geral da sua instância do Aplicativos Spring do Azure, selecione Aplicativos no painel de navegação.
  5. Selecione o aplicativo que deseja dimensionar automaticamente.
  6. Na página de visão geral do aplicativo selecionado, selecione Escalar horizontalmente no painel de navegação.
  7. Na página Escalar horizontalmente (Prévia), selecione a implantação que você deseja dimensionar automaticamente.
  8. Configurar os limites da instância da sua implantação.
  9. Selecione Adicionar para adicionar suas regras de escala.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Regras de colocação em escala personalizadas

Para obter informações sobre como definir regras personalizadas, consulte Dimensionadores do Keda. As seções a seguir mostram dois exemplos de configurações de regras de escala no MySQL e no Cron.

Configurar as regras de escala automática no banco de dados MySQL

Os comandos da CLI a seguir mostram como dimensionar automaticamente seu aplicativo Spring com base no Dimensionador do MySQL do Keda. Primeiro, crie um segredo para armazenar sua cadeia de conexão do SQL. Esse segredo é utilizado para a autenticação da sua regra de escala. Em seguida, configure uma regra que dimensione o aplicativo com base na contagem de linhas de uma tabela.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Criar uma regra com base no Cron do Linux

Os comandos a seguir mostram como configurar uma regra com base no Dimensionador do Cron do Keda. As réplicas são dimensionadas para o número desejado durante o intervalo de tempo Cron.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Eventos de colocação em escala

Você pode encontrar os eventos de colocação em escala nos logs do sistema do seu aplicativo de contêiner subjacente e filtrar o EventSource usando KEDA, conforme mostrado no exemplo a seguir:

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

Limpar recursos

Exclua os recursos que você criou neste artigo quando não precisar mais deles. Para excluir os recursos, basta excluir o grupo de recursos que os contém. Você pode excluir o grupo de recursos usando o portal do Azure. Alternativamente, para excluir o grupo de recursos usando a CLI do Azure, use os seguintes comandos:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Próximas etapas