Dimensionamento automático com vários perfis

Dimensionar seus recursos para um determinado dia da semana ou uma data e hora específicas pode reduzir seus custos e, ao mesmo tempo, fornecer a capacidade de que você precisa quando precisa.

Você pode usar vários perfis no dimensionamento automático para dimensionar de maneiras diferentes em momentos diferentes. Se, por exemplo, sua empresa não estiver ativa no fim de semana, crie um perfil recorrente para dimensionar seus recursos aos sábados e domingos. Se a black Friday for um dia movimentado, crie um perfil para dimensionar automaticamente seus recursos na black Friday.

Este artigo explica os diferentes perfis em escala automática e como usá-los.

Você pode ter um ou mais perfis em sua configuração de dimensionamento automático.

Existem três tipos de perfil:

  • O perfil padrão. O perfil padrão é criado automaticamente e não depende de uma agenda. O perfil padrão não pode ser excluído. O perfil padrão é usado quando não há outros perfis que correspondam à data e hora atuais.
  • Perfis recorrentes. Um perfil recorrente é válido para um intervalo de tempo específico e repete-se para determinados dias da semana.
  • Perfis fixos de data e hora. Um perfil válido para um intervalo de tempo em uma data específica.

Cada vez que o serviço de dimensionamento automático é executado, os perfis são avaliados na seguinte ordem:

  1. Perfis de data fixa
  2. Perfis recorrentes
  3. Perfil padrão

Se as configurações de data e hora de um perfil corresponderem à hora atual, o dimensionamento automático aplicará as regras e os limites de capacidade desse perfil. Apenas é utilizado o primeiro perfil aplicável.

O exemplo abaixo mostra uma configuração de dimensionamento automático com um perfil padrão e um perfil recorrente.

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

No exemplo acima, na segunda-feira após as 3 da manhã, o perfil recorrente deixará de ser usado. Se a contagem de instâncias for menor que 3, o dimensionamento automático será dimensionado para o novo mínimo de três. O Autoscale continua a usar este perfil e escala com base em CPU% até segunda-feira às 20h. Em todos os outros momentos, o dimensionamento será feito de acordo com o perfil padrão, com base no número de solicitações. Depois das 20h de segunda-feira, o dimensionamento automático muda para o perfil padrão. Se, por exemplo, o número de instâncias no momento for 12, o dimensionamento automático será dimensionado para 10, que é o máximo permitido para o perfil padrão.

Vários perfis contíguos

Transições de dimensionamento automático entre perfis com base em seus horários de início. A hora de término de um determinado perfil é determinada pela hora de início do seguinte perfil.

No portal, o campo de hora de término torna-se a próxima hora de início para o perfil padrão. Não é possível especificar a mesma hora para o final de um perfil e o início do próximo. O portal forçará a hora de término a ser um minuto antes da hora de início do seguinte perfil. Durante esse minuto, o perfil padrão ficará ativo. Se você não quiser que o perfil padrão fique ativo entre perfis recorrentes, deixe o campo de hora de término vazio.

Gorjeta

Para configurar vários perfis contíguos usando o portal, deixe a hora de término vazia. O perfil atual deixará de ser usado quando o próximo perfil se tornar ativo. Especifique apenas uma hora de término quando quiser reverter para o perfil padrão. A criação de um perfil recorrente sem hora de término só é suportada por meio do portal e dos modelos ARM.

Vários perfis usando modelos, CLI e PowerShell

Ao criar vários perfis usando modelos, a CLI e o PowerShell, siga as diretrizes abaixo.

Consulte a seção de dimensionamento automático da definição de recurso de modelo ARM para obter uma referência de modelo completa.

Não há nenhuma especificação no modelo para a hora de término. Um perfil permanecerá ativo até a hora de início do próximo perfil.

Adicionar um perfil recorrente usando modelos ARM

O exemplo abaixo mostra como criar dois perfis recorrentes. Um perfil para fins de semana a partir das 00:01 de manhã de sábado e um segundo perfil de dia da semana a partir de segunda-feira às 04:00. Isso significa que o perfil do fim de semana começará no sábado de manhã a um minuto da meia-noite e terminará na segunda-feira de manhã às 04:00. O perfil do dia da semana começará às 4h da manhã de segunda-feira e terminará pouco depois da meia-noite da manhã de sábado.

Use o seguinte comando para implantar o modelo: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json onde VMSS1-autoscale.json é o arquivo que contém o objeto JSON abaixo.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                "profiles": [
                    {
                        "name": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

Próximos passos