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.
Instalar o Ansible: escolha uma das seguintes opções:
- Instalar e configurar o Ansible em uma máquina virtual do Linux
- Configurar o Azure Cloud Shell e, se você não tiver acesso a uma máquina virtual do Linux, criar uma máquina virtual com o Ansible.
- Aplicativo do Serviço de Aplicativo do Azure – se você não tiver um aplicativo do Serviço de Aplicativo do Azure, configure um aplicativo no Serviço de Aplicativo do Azure usando o Ansible.
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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de