Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao hospedar aplicativos do SDK de Tarefas Duráveis no Aplicativos de Contêiner do Azure, você pode configurar o dimensionamento automático para que a plataforma ajuste automaticamente o número de réplicas com base na sua carga de trabalho de orquestração, atividade ou entidade.
Neste artigo, você aprenderá como:
- Defina números mínimos e máximos de réplica para seu aplicativo contêiner.
- Adicione regras de escala que respondem aos itens de trabalho do Agendador de Tarefas Duráveis.
- Implante e verifique um exemplo de autoescalonamento usando Azure Developer CLI.
Observação
Há suporte para dimensionamento automático para aplicativos criados usando os SDKs de Tarefa Durável e hospedados nos Aplicativos de Contêiner do Azure. Esse recurso usa o azure-durabletask-scheduler dimensionador KEDA.
Importante
Configurar minReplicas para 0 permite o escalonamento para zero, o que economiza custos quando está ocioso, mas introduz latência de início frio quando novas tarefas chegam. Defina minReplicas como 1 ou superior se sua carga de trabalho for sensível à latência.
Configurar o dimensionador automático
Você pode definir a configuração do dimensionador automático por meio do portal do Azure, um modelo Bicep e a CLI do Azure.
No portal do Azure, navegue até seu aplicativo de contêiner.
No menu do lado esquerdo, selecione Aplicativo>Escala.
Defina os valores de réplicas mínimas e máximas réplicas para sua revisão.
Selecione Adicionar para criar uma nova regra de escala. Defina o Tipo como Personalizado e configure os campos do Agendador de Tarefas Duráveis.
Verifique se a caixa de seleção Autenticar com uma Identidade Gerenciada está selecionada e escolha a identidade vinculada ao recurso do agendador e do hub de tarefas.
Clique em Salvar.
| Campo | Descrição | Exemplo |
|---|---|---|
| Número mínimo de réplicas | Número mínimo de réplicas permitidas para a revisão de contêiner a qualquer momento. | 1 |
| Número máximo de réplicas | Número máximo de réplicas permitidas para a revisão de contêiner a qualquer momento. | 10 |
| ponto de extremidade | O ponto de extremidade do Agendador de Tarefas Duráveis ao qual o dimensionador se conecta. | https://dts-ID.centralus.durabletask.io |
| maxConcurrentWorkItemsCount | Número máximo de itens de trabalho que uma única réplica processa simultaneamente. Valores mais baixos fazem com que o dimensionador adicione réplicas mais cedo. Comece com 1 para trabalho intensivo de CPU; aumente para cargas de trabalho com maior uso de E/S. |
1 |
| taskhubName | O nome do hub de tarefas conectado ao agendador. | taskhub-ID |
| workItemType | O tipo de item de trabalho que está sendo despachado. As opções incluem Orchestration, Activity, ou Entity. |
Orchestration |
| Identidade gerenciada | A identidade gerenciada atribuída pelo usuário ou atribuída pelo sistema vinculada ao agendador e ao recurso do hub de tarefas. | /subscriptions/<SUB_ID>/resourceGroups/<RG>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<IDENTITY_NAME> |
Tutorial: Implantar um aplicativo de contêiner de dimensionamento automático
Já configurou o dimensionamento automático em um aplicativo existente? Você pode ignorar esta seção. Se você quiser um passo a passo prático, siga as etapas abaixo para implantar o exemplo de Autoscaling em Aplicativos de Contêiner do Azure usando Azure Developer CLI. O exemplo implanta um aplicativo SDK de Tarefa Durável .NET que usa o padrão de encadeamento de funções e inclui um dimensionador KEDA pré-configurado.
Observação
Embora este exemplo use o SDK do Durable Task .NET, o dimensionamento automático é agnóstico em relação à linguagem.
Pré-requisitos
- SDK do .NET 8 ou posterior
- Docker (para compilar a imagem)
- CLI para Desenvolvedores do Azure
Configure seu ambiente
Clone o diretório
Azure-Samples/Durable-Task-Scheduler.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.gitAutentique no Azure usando a Azure Developer CLI.
azd auth login
Implantar a solução usando Azure Developer CLI
Navegue até o
AutoscalingInACAdiretório de exemplo.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACAInicialize o ambiente da CLI do Desenvolvedor do Azure (necessário apenas na primeira vez):
azd initProvisione recursos e implante o aplicativo:
azd upQuando solicitado no terminal, forneça os seguintes parâmetros.
Parâmetro Descrição Nome do ambiente Prefixo para o grupo de recursos criado para armazenar todos os recursos Azure. Localização do Azure A localização do Azure para seus recursos. Assinatura do Azure A assinatura do Azure para seus recursos. Esse processo pode levar algum tempo para ser concluído. À medida que o comando
azd upé concluído, a saída da CLI exibe dois links do portal Azure para monitorar o progresso da implantação. A saída também demonstra comoazd up:- Cria e configura todos os recursos de Azure necessários por meio dos arquivos de Bicep fornecidos no diretório
./infrausandoazd provision. Depois de provisionado pela CLI do Desenvolvedor Azure, você pode acessar esses recursos por meio do portal do Azure. Os arquivos que provisionam os recursos Azure incluem:main.parameters.jsonmain.bicep- Um diretório de recursos
apporganizado por funcionalidade - Uma biblioteca de referência
coreque contém os módulos do Bicep utilizados pelo modeloazd
- Implanta o código usando
azd deploy
Saída esperada
Packaging services (azd package) (✓) Done: Packaging service client - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} (✓) Done: Packaging service worker - Image Hash: {IMAGE_HASH} - Target Image: {TARGET_IMAGE} Provisioning Azure resources (azd provision) Provisioning Azure resources can take some time. Subscription: SUBSCRIPTION_NAME (SUBSCRIPTION_ID) Location: West US 2 You can view detailed progress in the Azure portal: https://portal.azure.com/#view/HubsExtension/DeploymentDetailsBlade/~/overview/id/%2Fsubscriptions%SUBSCRIPTION_ID%2Fproviders%2FMicrosoft.Resources%2Fdeployments%2FCONTAINER_APP_ENVIRONMENT (✓) Done: Resource group: GENERATED_RESOURCE_GROUP (1.385s) (✓) Done: Virtual Network: VNET_ID (862ms) (✓) Done: Container Apps Environment: GENERATED_CONTAINER_APP_ENVIRONMENT (54.125s) (✓) Done: Container Registry: GENERATED_REGISTRY (1m27.747s) (✓) Done: Container App: SAMPLE_CLIENT_APP (21.39s) (✓) Done: Container App: SAMPLE_WORKER_APP (24.136s) Deploying services (azd deploy) (✓) Done: Deploying service client - Endpoint: https://SAMPLE_CLIENT_APP.westus2.azurecontainerapps.io/ (✓) Done: Deploying service worker - Endpoint: https://SAMPLE_WORKER_APP.westus2.azurecontainerapps.io/ SUCCESS: Your up workflow to provision and deploy to Azure completed in 10 minutes 34 seconds.- Cria e configura todos os recursos de Azure necessários por meio dos arquivos de Bicep fornecidos no diretório
Confirmar a implantação bem-sucedida
No portal Azure, verifique se as orquestrações estão sendo executadas com êxito.
Copie o nome do grupo de recursos da saída do terminal.
Entre no portal Azure e pesquise o nome do grupo de recursos.
Na página de visão geral do grupo de recursos, clique no recurso de aplicativo de contêiner cliente.
Selecione Monitoramento>Fluxo de Log.
Confirme se o contêiner do cliente está registrando em log as tarefas de encadeamento de funções.
Navegue de volta para a página do grupo de recursos para selecionar o
workercontêiner.Selecione Monitoramento>Fluxo de Log.
Confirme se o contêiner de trabalho está registrando em log as tarefas de encadeamento de funções.
Entender o dimensionador personalizado
Este exemplo inclui um azure.yaml arquivo de configuração. Ao executar azd up, você implantou toda a solução de exemplo para Azure, incluindo um dimensionador personalizado para seus aplicativos de contêiner que é dimensionado automaticamente com base na carga de trabalho do Agendador de Tarefas Duráveis.
O dimensionador personalizado:
- Monitora o número de orquestrações pendentes no hub de tarefas.
- Dimensiona o número de réplicas de trabalho com maior carga de trabalho.
- Reduz verticalmente quando a carga diminui.
- Fornece utilização eficiente de recursos, ajustando a capacidade à demanda.
Verificar a configuração do dimensionador
Verifique se o dimensionamento automático está funcionando corretamente na solução implantada.
No portal do Azure, navegue até seu aplicativo de trabalho.
No menu esquerdo, selecione Aplicação>Revisões e réplicas.
Selecione a guia Réplicas para verificar se o aplicativo está sendo dimensionado.
No menu do lado esquerdo, selecione Aplicativo>Escala.
Selecione o nome da regra de escala para exibir as configurações do dimensionador.
Conteúdo relacionado
- Visão geral do Agendador de Tarefas Duráveis
- Quickstart: implantar um aplicativo SDK de Tarefa Durável para Aplicativos de Contêiner do Azure
- Definir regras de escalonamento em Aplicativos de Contêiner do Azure
- Hospede um aplicativo de Durable Functions com o backend Azure SQL em Aplicativos de Contêiner do Azure