Tutorial: Dimensionar aplicativos no Serviço de Aplicativo do Azure usando o Ansible

Importante

O Ansible 2.7 (ou posterior) é necessário para executar os playbooks de exemplo neste artigo.

O Serviço de Aplicativo do Azure permite que você crie e hospede código. Esse código pode ser na forma de aplicativos Web, back-ends móveis e APIs RESTful. Usando o Serviço de Aplicativo, você pode desenvolver seu código usando a linguagem de programação de sua escolha sem gerenciar a infraestrutura. O Serviço de Aplicativo suporta Windows e Linux. Há suporte para implantações automatizadas de qualquer repositório Git, incluindo GitHub e Azure DevOps.

Neste artigo, você aprenderá a:

  • Obter informações de um plano existente do App Service
  • Aumente a escala do plano do Serviço de Aplicativo para o S2 com três funcionários

Pré-requisitos

  • Assinatura do Azure: se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Aumentar a escala de um aplicativo

Há dois fluxos de trabalho para dimensionamento: scale-up e scale-out.

Aumentar a escala: Aumentar a escala significa adquirir mais recursos. Esses recursos incluem CPU, memória, espaço em disco, VMs e muito mais. Você amplia um aplicativo alterando a camada de preços do plano do Serviço de Aplicativo ao qual o aplicativo pertence. Dimensionamento: Dimensionar significa aumentar o número de instâncias de VM que executam seu aplicativo. Dependendo do nível de preço do seu plano do Serviço de Aplicativo, você pode expandir para até 20 instâncias. O dimensionamento automático permite dimensionar a contagem de instâncias automaticamente com base em regras e agendas predefinidas.

O código do playbook nesta seção define as operações a seguir:

  • Obter informações de um plano existente do App Service
  • Atualizar o plano do serviço de aplicativo para o S2 com três trabalhadores

Salve o seguinte playbook como 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

Execute o livro de estratégias usando ansible-playbook

ansible-playbook webapp_scaleup.yml

Depois de executar o playbook, você verá uma saída semelhante aos seguintes resultados:

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 

Próximos passos