Samouczek: skalowanie aplikacji w usłudze Azure App Service przy użyciu rozwiązania Ansible

Ważne

Rozwiązanie Ansible w wersji 2.7 (lub nowszej) jest wymagane do uruchomienia przykładowych podręczników w tym artykule.

Usługa Azure App Service umożliwia tworzenie i hostowanie kodu. Ten kod może być w postaci aplikacji internetowych, zapleczy mobilnych i interfejsów API RESTful. Za pomocą usługi App Service możesz opracowywać kod przy użyciu wybranego języka programowania bez zarządzania infrastrukturą. Usługa App Service obsługuje systemy Windows i Linux. Obsługiwane są zautomatyzowane wdrożenia z dowolnego repozytorium Git, w tym github i azure DevOps.

W tym artykule dowiesz się, jak:

  • Uzyskaj informacje o istniejącym planie usługi App Service
  • Zwiększ plan usługi App Service do S2 z trzema procesorami roboczymi

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Powiększanie skali aplikacji

Istnieją dwa procesy skalowania: skalowanie pionowe i skalowanie poziome.

Skalowanie w górę: Skalowanie w górę oznacza uzyskanie większej ilości zasobów. Te zasoby obejmują procesor CPU, pamięć, miejsce na dysku, maszyny wirtualne i inne. Skalujesz aplikację w górę, zmieniając warstwę cenową planu usługi App Service, do którego należy aplikacja. Skalowanie w poziomie: Skalowanie w poziomie oznacza zwiększenie liczby instancji maszyn wirtualnych, które uruchamiają aplikację. W zależności od warstwy cenowej planu App Service, skalowanie w poziomie jest możliwe do 20 instancji. Skalowanie automatyczne umożliwia automatyczne skalowanie liczby wystąpień na podstawie wstępnie zdefiniowanych reguł i harmonogramów.

Kod podręcznika w tej sekcji definiuje następującą operację:

  • Uzyskiwanie informacji o istniejącym planie usługi App Service
  • Zaktualizuj plan usługi App Service do warstwy S2 z trzema pracownikami

Zapisz następujący podręcznik jako webapp_scaleup.yml:

- hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    plan_name: myAppServicePlan
    location: eastus

  tasks:
  - name: Get facts of existing App service plan
    azure_rm_appserviceplan_facts:
      resource_group: "{{ resource_group }}"
      name: "{{ plan_name }}"
    register: facts

  - debug: 
      var: facts.appserviceplans[0].sku

  - name: Scale up the App service plan
    azure_rm_appserviceplan:
      resource_group: "{{ resource_group }}"
      name: "{{ plan_name }}"
      is_linux: true
      sku: S2
      number_of_workers: 3
      
  - name: Get facts
    azure_rm_appserviceplan_facts:
      resource_group: "{{ resource_group }}"
      name: "{{ plan_name }}"
    register: facts

  - debug: 
      var: facts.appserviceplans[0].sku

Uruchom podręcznik przy użyciu ansible-playbook

ansible-playbook webapp_scaleup.yml

Po uruchomieniu podręcznika zobaczysz dane wyjściowe podobne do następujących wyników:

PLAY [localhost] 

TASK [Gathering Facts] 
ok: [localhost]

TASK [Get facts of existing App service plan] 
 [WARNING]: Azure API profile latest does not define an entry for WebSiteManagementClient

ok: [localhost]

TASK [debug] 
ok: [localhost] => {
    "facts.appserviceplans[0].sku": {
        "capacity": 1,
        "family": "S",
        "name": "S1",
        "size": "S1",
        "tier": "Standard"
    }
}

TASK [Scale up the App service plan] 
changed: [localhost]

TASK [Get facts] 
ok: [localhost]

TASK [debug] 
ok: [localhost] => {
    "facts.appserviceplans[0].sku": {
        "capacity": 3,
        "family": "S",
        "name": "S2",
        "size": "S2",
        "tier": "Standard"
    }
}

PLAY RECAP 
localhost                  : ok=6    changed=1    unreachable=0    failed=0 

Dalsze kroki