Guia de início rápido: configurar o dimensionamento automático para aplicativos no consumo padrão e plano dedicado do Azure Spring Apps

Nota

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

Este artigo aplica-se a: ✔️ Consumo padrão e dedicado (Pré-visualização) ❌ Básico/Standard ❌ Enterprise

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

  • Gerencia o dimensionamento horizontal automático por meio de um conjunto de regras de dimensionamento declarativo.
  • Dá suporte a todas as regras de dimensionamento suportadas pelos Aplicativos de Contêiner do Azure.

Para obter mais informações, consulte a documentação dos Aplicativos de Contêiner do Azure.

Pré-requisitos

Definição da escala

O dimensionamento é definido pela combinação de limites e regras.

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

    Limite de escala Default value Valor mínimo Valor máximo
    Número mínimo de instâncias por implantação 5 0 30
    Número máximo de instâncias por implantação 10 5 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 dimensionar para zero, você pode definir a contagem mínima de instâncias como zero.

  • As regras são os critérios que o dimensionamento automático segue para adicionar ou remover instâncias. As regras de escala incluem HTTP, TCP e regras personalizadas, conforme descrito na seção Regras de escala de Definir regras de dimensionamento 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 períodos de tempo que ocorrem durante o dimensionamento automático.

    • O intervalo de sondagem define o intervalo de tempo entre cada ação de sondagem de dados em tempo real, conforme definido pelas suas regras. O intervalo de sondagem é definido como 30 segundos por padrão.
    • O período de resfriamento se aplica somente quando o dimensionamento 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.

Configurar configurações de dimensionamento automático

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

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

  1. Inicie sessão no portal do Azure.
  2. Selecione Azure Spring Apps em Serviços do Azure.
  3. Na coluna Nome, selecione a instância do Azure Spring Apps que você deseja dimensionar automaticamente.
  4. Na página de visão geral da sua instância do Azure Spring Apps, selecione Aplicativos no painel de navegação.
  5. Selecione o aplicativo que você deseja dimensionar automaticamente.
  6. Na página de visão geral do aplicativo selecionado, selecione Expandir no painel de navegação.
  7. Na página Dimensionamento (Visualização), selecione a implantação que deseja dimensionar automaticamente.
  8. Configure os limites de instância de 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 dimensionamento personalizadas

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

Configurar regras de dimensionamento automático no banco de dados MySQL

Os comandos da CLI a seguir mostram como dimensionar automaticamente seu aplicativo Spring com base no Keda MySQL Scaler. Primeiro, crie um segredo para armazenar sua cadeia de conexão SQL. Esse segredo é usado para sua autenticação de 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 baseada no Linux cron

Os comandos a seguir mostram como configurar uma regra baseada no Keda Cron Scaler. 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

Dimensionamento de eventos

Você pode encontrar os eventos de dimensionamento dos logs do sistema do seu aplicativo de contêiner subjacente e filtrar o EventSource usando , conforme KEDAmostrado no exemplo a seguir:

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

Clean up resources (Limpar recursos)

Certifique-se de excluir os recursos criados 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. Como alternativa, 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óximos passos