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 guias estratégicos de exemplo deste artigo.

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

Neste artigo, você aprenderá como:

  • Obter fatos de um plano do Serviço de Aplicativo existente
  • Escalar verticalmente o plano do Serviço de Aplicativo para o S2 com três funções de trabalho

Pré-requisitos

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

Escalar verticalmente um aplicativo

Há dois fluxos de trabalho para o dimensionamento: escalar verticalmente e escalar horizontalmente.

Scale-up: Aumentar a escala significa adquirir mais recursos. Esses recursos incluem CPU, memória, espaço em disco, VMs e muito mais. Para escalar verticalmente, altere o tipo de preço do plano do Serviço de Aplicativo ao qual seu aplicativo pertence. Dimensionamento: expandir significa aumentar o número de instâncias de VM que executam seu aplicativo. Dependendo de seu tipo de preço do plano do Serviço de Aplicativo, você pode escalar horizontalmente até 20 instâncias. O dimensionamento automático permite dimensionar automaticamente a contagem de instâncias com base em regras e agendamentos predefinidos.

O código do guia estratégico nesta seção define a operação a seguir:

  • Obter fatos de um plano do Serviço de Aplicativo existente
  • Atualizar o plano do Serviço de Aplicativo para o S2 com três funções de trabalho

Salve o guia estratégico a seguir 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

Executar o guia estratégico usando ansible-playbook

ansible-playbook webapp_scaleup.yml

Depois de executar o guia estratégico, você verá resultados semelhantes aos seguintes:

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óximas etapas