Automatisch schalen met meerdere profielen

Het schalen van uw resources voor een bepaalde dag van de week of een specifieke datum en tijd kan uw kosten verlagen terwijl u de capaciteit die u nodig hebt nog steeds krijgt wanneer u deze nodig hebt.

U kunt meerdere profielen in automatisch schalen gebruiken om op verschillende momenten op verschillende manieren te schalen. Als uw bedrijf bijvoorbeeld niet actief is in het weekend, maakt u een terugkerend profiel om uw resources op zaterdag en zondag te schalen. Als zwarte vrijdag een drukke dag is, maakt u een profiel om uw resources automatisch uit te schalen op zwarte vrijdag.

In dit artikel worden de verschillende profielen in automatische schaalaanpassing uitgelegd en hoe u deze kunt gebruiken.

U kunt een of meer profielen in uw instelling voor automatische schaalaanpassing hebben.

Er zijn drie typen profielen:

  • Het standaardprofiel. Het standaardprofiel wordt automatisch gemaakt en is niet afhankelijk van een schema. Het standaardprofiel kan niet worden verwijderd. Het standaardprofiel wordt gebruikt wanneer er geen andere profielen zijn die overeenkomen met de huidige datum en tijd.
  • Terugkerende profielen. Een terugkerend profiel is geldig voor een specifiek tijdsbereik en wordt herhaald voor geselecteerde dagen van de week.
  • Vaste datum- en tijdprofielen. Een profiel dat geldig is voor een tijdsbereik op een specifieke datum.

Telkens wanneer de service voor automatisch schalen wordt uitgevoerd, worden de profielen in de volgende volgorde geëvalueerd:

  1. Vaste datumprofielen
  2. Terugkerende profielen
  3. Standaardprofiel

Als de datum- en tijdinstellingen van een profiel overeenkomen met de huidige tijd, worden de regels en capaciteitslimieten van dat profiel automatisch geschaald. Alleen het eerste toepasselijke profiel wordt gebruikt.

In het onderstaande voorbeeld ziet u een instelling voor automatisch schalen met een standaardprofiel en een terugkerend profiel.

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

In het bovenstaande voorbeeld wordt op maandag na 3:00 uur het terugkerende profiel niet meer gebruikt. Als het aantal exemplaren kleiner is dan 3, schaalt automatisch schalen naar het nieuwe minimum van drie. Automatische schaalaanpassing blijft dit profiel gebruiken en wordt geschaald op basis van CPU% tot maandag om 18:00 uur. Op alle andere momenten wordt het schalen uitgevoerd volgens het standaardprofiel, op basis van het aantal aanvragen. Na 18:00 uur op maandag schakelt automatisch schalen over naar het standaardprofiel. Als het aantal exemplaren op dat moment bijvoorbeeld 12 is, wordt automatisch schalen naar 10, wat het maximum is dat is toegestaan voor het standaardprofiel.

Meerdere aaneengesloten profielen

Overgangen van automatische schaalaanpassing tussen profielen op basis van hun begintijden. De eindtijd voor een bepaald profiel wordt bepaald door de begintijd van het volgende profiel.

In de portal wordt het eindtijdveld de volgende begintijd voor het standaardprofiel. U kunt niet hetzelfde tijdstip opgeven voor het einde van één profiel en het begin van het volgende profiel. In de portal wordt de eindtijd één minuut voor de begintijd van het volgende profiel afgedwongen. Gedurende deze minuut wordt het standaardprofiel actief. Als u niet wilt dat het standaardprofiel actief wordt tussen terugkerende profielen, laat u het eindtijdveld leeg.

Fooi

Als u meerdere aaneengesloten profielen wilt instellen met behulp van de portal, laat u de eindtijd leeg. Het huidige profiel wordt niet meer gebruikt wanneer het volgende profiel actief wordt. Geef alleen een eindtijd op wanneer u wilt terugkeren naar het standaardprofiel. Het maken van een terugkerend profiel zonder eindtijd wordt alleen ondersteund via de portal en ARM-sjablonen.

Meerdere profielen met behulp van sjablonen, CLI en PowerShell

Wanneer u meerdere profielen maakt met behulp van sjablonen, de CLI en PowerShell, volgt u de onderstaande richtlijnen.

Zie de sectie voor automatisch schalen van de resourcedefinitie van de ARM-sjabloon voor een volledige sjabloonreferentie.

Er is geen specificatie in de sjabloon voor eindtijd. Een profiel blijft actief tot de begintijd van het volgende profiel.

Een terugkerend profiel toevoegen met ARM-sjablonen

In het onderstaande voorbeeld ziet u hoe u twee terugkerende profielen maakt. Eén profiel voor weekenden van 00:01 op zaterdagochtend en een tweede weekdagprofiel vanaf maandag om 04:00 uur. Dat betekent dat het weekendprofiel op zaterdagochtend begint om een minuut om middernacht en eindigt op maandagochtend om 04:00 uur. Het weekdagprofiel begint om 4:00 uur op maandag en eindigt net na middernacht op zaterdagochtend.

Gebruik de volgende opdracht om de sjabloon te implementeren: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json waarbij VMSS1-autoscale.json het bestand is met het onderstaande JSON-object.

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

        }
    ]
}    

Volgende stappen