Scalabilità automatica con più profili

Il ridimensionamento delle risorse per un determinato giorno della settimana o una data e un'ora specifiche possono ridurre i costi pur fornendo la capacità necessaria quando necessario.

È possibile usare più profili nella scalabilità automatica per ridimensionare in modi diversi in momenti diversi. Se ad esempio l'azienda non è attiva nel fine settimana, creare un profilo ricorrente per ridimensionare le risorse sabato e domenica. Se il venerdì nero è un giorno occupato, creare un profilo per aumentare automaticamente le risorse il venerdì nero.

Questo articolo illustra i diversi profili di scalabilità automatica e come usarli.

È possibile avere uno o più profili nell'impostazione di scalabilità automatica.

Esistono tre tipi di profilo:

  • Profilo predefinito. Il profilo predefinito viene creato automaticamente e non dipende da una pianificazione. Non è possibile eliminare il profilo predefinito. Il profilo predefinito viene usato quando non sono presenti altri profili che corrispondono alla data e all'ora correnti.
  • Profili ricorrenti. Un profilo ricorrente è valido per un intervallo di tempo specifico e si ripete per i giorni della settimana selezionati.
  • Profili di data e ora fissi. Profilo valido per un intervallo di tempo in una data specifica.

Ogni volta che viene eseguito il servizio di scalabilità automatica, i profili vengono valutati nell'ordine seguente:

  1. Profili di data fissi
  2. Profili ricorrenti
  3. Profilo predefinito

Se le impostazioni di data e ora di un profilo corrispondono all'ora corrente, la scalabilità automatica applicherà le regole e i limiti di capacità del profilo. Viene usato solo il primo profilo applicabile.

L'esempio seguente mostra un'impostazione di scalabilità automatica con un profilo predefinito e un profilo ricorrente.

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

Nell'esempio precedente, lunedì dopo le 3:00, il profilo ricorrente smetterà di essere usato. Se il numero di istanze è minore di 3, la scalabilità automatica viene ridimensionata al nuovo minimo di tre. La scalabilità automatica continua a usare questo profilo e scala in base alla percentuale di CPU fino a lunedì alle 18.00. Tutte le altre volte il ridimensionamento verrà eseguito in base al profilo predefinito, in base al numero di richieste. Dopo le 18 di lunedì, la scalabilità automatica passa al profilo predefinito. Se, ad esempio, il numero di istanze al momento è 12, la scalabilità automatica viene ridimensionata in 10, ovvero il valore massimo consentito per il profilo predefinito.

Più profili contigui

La scalabilità automatica passa tra i profili in base alle ore di inizio. L'ora di fine per un determinato profilo è determinata dall'ora di inizio del profilo seguente.

Nel portale il campo ora di fine diventa l'ora di inizio successiva per il profilo predefinito. Non è possibile specificare la stessa ora per la fine di un profilo e l'inizio della successiva. Il portale forza l'ora di fine a essere un minuto prima dell'ora di inizio del profilo seguente. Durante questo minuto, il profilo predefinito diventerà attivo. Se non si vuole che il profilo predefinito diventi attivo tra profili ricorrenti, lasciare vuoto il campo ora di fine.

Suggerimento

Per configurare più profili contigui usando il portale, lasciare vuota l'ora di fine. Il profilo corrente smetterà di essere usato quando il profilo successivo diventa attivo. Specificare un'ora di fine solo quando si desidera ripristinare il profilo predefinito. La creazione di un profilo ricorrente senza ora di fine è supportata solo tramite il portale e i modelli di Resource Manager.

Più profili con modelli, interfaccia della riga di comando e PowerShell

Quando si creano più profili usando modelli, l'interfaccia della riga di comando e PowerShell, seguire le linee guida seguenti.

Per informazioni di riferimento su un modello completo, vedere la sezione relativa alla scalabilità automatica della definizione della risorsa del modello di Resource Manager.

Non esiste alcuna specifica nel modello per l'ora di fine. Un profilo rimarrà attivo fino all'ora di inizio del profilo successivo.

Aggiungere un profilo ricorrente usando i modelli di Resource Manager

L'esempio seguente illustra come creare due profili ricorrenti. Un profilo per i fine settimana dalle 00:01 di sabato mattina e un secondo profilo della settimana a partire dal lunedì alle 04:00. Ciò significa che il profilo del fine settimana inizierà sabato mattina a un minuto trascorso mezzanotte e termina il lunedì mattina alle 04:00. Il profilo giorno feriale inizierà alle 4:00 di lunedì e terminerà subito dopo la mezzanotte del sabato mattina.

Usare il comando seguente per distribuire il modello: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json dove VMSS1-autoscale.json è il file contenente l'oggetto JSON seguente.

{
    "$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"
            }

        }
    ]
}    

Passaggi successivi