Skapa principer för automatisk skalning för ett Service Fabric Mesh program

Viktigt

Förhandsversionen av Azure Service Fabric Mesh har dragits tillbaka. Nya distributioner tillåts inte längre via Service Fabric Mesh-API:et. Stödet för befintliga distributioner fortsätter till och med den 28 april 2021.

Mer information finns i Azure Service Fabric Mesh Preview Retirement (Azure Service Fabric Mesh Preview Retirement).

En av de största fördelarna med att distribuera program till Service Fabric Mesh är möjligheten för dig att enkelt skala in eller ut dina tjänster. Detta bör användas för att hantera olika mängder belastning på dina tjänster eller för att förbättra tillgängligheten. Du kan skala in eller ut dina tjänster manuellt eller konfigurera principer för automatisk skalning.

Med automatisk skalning kan du dynamiskt skala antalet tjänstinstanser (horisontell skalning). Automatisk skalning ger stor elasticitet och möjliggör etablering eller borttagning av tjänstinstanser baserat på processor- eller minnesanvändning.

Alternativ för att skapa en princip, utlösare och mekanism för automatisk skalning

En princip för automatisk skalning definieras för varje tjänst som du vill skala. Principen definieras antingen i YAML-tjänstresursfilen eller JSON-distributionsmallen. Varje skalningsprincip består av två delar: en utlösare och en skalningsmekanism.

Utlösaren definierar när en princip för automatisk skalning anropas. Ange typen av utlösare (genomsnittlig belastning) och måttet som ska övervakas (CPU eller minne). Övre och lägre belastningströsklar som anges som en procentandel. Skalningsintervallet definierar hur ofta (i sekunder) den angivna användningen (till exempel genomsnittlig CPU-belastning) ska kontrolleras för alla för närvarande distribuerade tjänstinstanser. Mekanismen utlöses när det övervakade måttet sjunker under det lägre tröskelvärdet eller ökar över det övre tröskelvärdet.

Skalningsmekanismen definierar hur du utför skalningsåtgärden när principen utlöses. Ange vilken typ av mekanism (lägg till/ta bort replik), minsta och högsta antal repliker (som heltal). Antalet tjänstrepliker kommer aldrig att skalas under det minsta antalet eller över det maximala antalet. Ange även skalningssteget som ett heltal, vilket är antalet repliker som ska läggas till eller tas bort i en skalningsåtgärd.

Definiera en princip för automatisk skalning i en JSON-mall

I följande exempel visas en princip för automatisk skalning i en JSON-distributionsmall. Principen för automatisk skalning deklareras i en egenskap för tjänsten som ska skalas. I det här exemplet definieras en cpu-genomsnittlig belastningsutlösare. Mekanismen utlöses om den genomsnittliga CPU-belastningen för alla distribuerade instanser sjunker under 0,2 (20 %) eller överskrider 0,8 (80 %). CPU-belastningen kontrolleras var 60:e sekund. Skalningsmekanismen definieras för att lägga till eller ta bort instanser om principen utlöses. Tjänstinstanser läggs till eller tas bort i steg om en. Ett minsta antal instanser på en och ett maximalt antal instanser på 40 definieras också.

{
"apiVersion": "2018-09-01-preview",
"name": "WorkerApp",
"type": "Microsoft.ServiceFabricMesh/applications",
"location": "[parameters('location')]",
"dependsOn": [
"Microsoft.ServiceFabricMesh/networks/worker-app-network"
],
"properties": {
"services": [   
    { ... },       
    {
    "name": "WorkerService",
    "properties": {
        "description": "Worker Service",
        "osType": "linux",
        "codePackages": [
        {  ...              }
        ],
        "replicaCount": 1,
        "autoScalingPolicies": [
        {
            "name": "AutoScaleWorkerRule",
            "trigger": {
                "kind": "AverageLoad",
                "metric": {
                    "kind": "Resource",
                    "name": "cpu"
                },
                "lowerLoadThreshold": "0.2",
                "upperLoadThreshold": "0.8",
                "scaleIntervalInSeconds": "60"
            },
            "mechanism": {
                "kind": "AddRemoveReplica",
                "minCount": "1",
                "maxCount": "40",
                "scaleIncrement": "1"
            }
        }
        ],        
        ...
    }
    }
]
}
}

Definiera en autoskalningsprincip i en service.yaml-resursfil

I följande exempel visas en princip för automatisk skalning i en YAML-fil (Service Resource). Principen för automatisk skalning deklareras som en egenskap för tjänsten som ska skalas. I det här exemplet definieras en cpu-genomsnittlig belastningsutlösare. Mekanismen utlöses om den genomsnittliga CPU-belastningen för alla distribuerade instanser sjunker under 0,2 (20 %) eller överskrider 0,8 (80 %). CPU-belastningen kontrolleras var 60:e sekund. Skalningsmekanismen definieras för att lägga till eller ta bort instanser om principen utlöses. Tjänstinstanser läggs till eller tas bort i steg om en. Ett minsta antal instanser på en och ett maximalt antal instanser på 40 definieras också.

## Service definition ##
application:
  schemaVersion: 1.0.0-preview2
  name: WorkerApp
  properties:
    services:
      - name: WorkerService
        properties:
          description: WorkerService description.
          osType: Linux
          codePackages:
            ...
          replicaCount: 1
          autoScalingPolicies:
            - name: AutoScaleWorkerRule
              trigger:
                kind: AverageLoad
                metric:
                  kind: Resource
                  name: cpu
                lowerLoadThreshold: 0.2
                upperLoadThreshold: 0.8
                scaleIntervalInSeconds: 60
              mechanism:
                kind: AddRemoveReplica
                minCount: 1
                maxCount: 40
                scaleIncrement: 1
          ...

Nästa steg

Lär dig hur du manuellt skalar en tjänst