Öğretici: Ansible kullanarak Azure App Service'te uygulamaları ölçeklendirme

Önemli

Bu makaledeki örnek playbook'ları çalıştırmak için Ansible 2.7 (veya üzeri) gereklidir.

Azure App Service , kod oluşturmanıza ve barındırmanıza olanak tanır. Bu kod web uygulamaları, mobil arka uçlar ve RESTful API'leri biçiminde olabilir. App Service'i kullanarak altyapıyı yönetmeden istediğiniz programlama dilini kullanarak kod geliştirebilirsiniz. App Service hem Windows hem de Linux'ı destekler. GitHub ve Azure DevOps dahil olmak üzere tüm Git depolarından otomatik dağıtımlar desteklenir.

Bu makalede şunları öğreneceksiniz:

  • Mevcut bir App Service Planı'nın bilgilerini alın
  • App Service planının ölçeğini üç çalışanla S2 olarak artırın

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Uygulamanın ölçeğini artırma

Ölçeklendirme için iki iş akışı vardır: ölçeği artırma ve ölçeği genişletme.

Ölçeği artırma: Ölçeği artırma, daha fazla kaynak edinme anlamına gelir. Bu kaynaklar CPU, bellek, disk alanı, VM'ler ve daha fazlasını içerir. Uygulamanın ait olduğu App Service planının fiyatlandırma katmanını değiştirerek uygulamanın ölçeğini artırabilirsiniz. Ölçeği genişletme: Ölçeği genişletmek, uygulamanızı çalıştıran VM örneklerinin sayısını artırma anlamına gelir. App Service planı fiyatlandırma katmanınıza bağlı olarak, ölçeği 20 örneğe kadar genişletebilirsiniz. Otomatik ölçeklendirme , önceden tanımlanmış kurallar ve zamanlamalar temelinde örnek sayısını otomatik olarak ölçeklendirmenizi sağlar.

Bu bölümdeki playbook kodu aşağıdaki işlemi tanımlar:

  • Mevcut bir App Service planının bilgilerini alın
  • Uygulama hizmet planını üç çalışanla S2 olarak güncelle.

Aşağıdaki playbook'u webapp_scaleup.yml olarak kaydedin.

- 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

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook webapp_scaleup.yml

Playbook'u çalıştırdıktan sonra aşağıdaki sonuçlara benzer bir çıktı görürsünüz:

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 

Sonraki Adımlar