Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
O Ansible 2.7 (ou posterior) é necessário para executar os playbooks de exemplo neste artigo.
Os conjuntos de dimensionamento de máquina virtual do Azure são um recurso do Azure que permite configurar um grupo de VMs idênticas com balanceamento de carga. Não há custo adicional para dimensionar conjuntos e eles são criados a partir de máquinas virtuais. Você paga apenas pelos recursos de computação subjacentes, como instâncias de VM, balanceadores de carga ou armazenamento em disco gerenciado. Com conjuntos de escala, as camadas de gerenciamento e automação são fornecidas para executar e dimensionar seus aplicativos. Em vez disso, você pode criar e gerenciar manualmente VMs individuais. No entanto, há dois benefícios principais no uso de conjuntos de escalas. Eles são incorporados ao Azure e dimensionam automaticamente suas máquinas virtuais para atender às necessidades do aplicativo.
O recurso de ajustar automaticamente o número de instâncias de VM é chamado de dimensionamento automático. O benefício do dimensionamento automático é que ele reduz a sobrecarga de gerenciamento para monitorar e otimizar o desempenho do seu aplicativo. O dimensionamento automático pode ser configurado em resposta à demanda ou em um cronograma definido. Usando o Ansible, você pode especificar as regras de dimensionamento automático que definem o desempenho aceitável para uma experiência positiva do cliente.
Neste artigo, você aprenderá a:
- Definir um perfil de dimensionamento automático
- Dimensionamento automático com base em uma programação recorrente
- Dimensionamento automático com base no desempenho do aplicativo
- Recuperar a informação das definições de dimensionamento automático
- Desativar uma configuração de dimensionamento automático
Pré-requisitos
- Assinatura do Azure: se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Instale o Ansible: execute uma das seguintes opções:
- Instalar e configurar o Ansible em uma máquina virtual Linux
- Configure o Azure Cloud Shell e, se você não tiver acesso a uma máquina virtual Linux, crie uma máquina virtual com o Ansible.
- Conjunto de dimensionamento de máquina virtual: se você ainda não tiver um conjunto de escalas, poderá configurar um conjunto de escalas com o Ansible.
Dimensionamento automático com base em um cronograma
Para ativar o dimensionamento automático num conjunto de dimensionamente, tem primeiro que definir um perfil de dimensionamento automático. Este perfil define a capacidade predefinida, máxima e mínima do conjunto de dimensionamento. Esses limites permitem controlar o custo não criando continuamente instâncias de VM e equilibrar o desempenho aceitável com um número mínimo de instâncias que permanecem em um evento de escala.
O Ansible permite que você dimensione seus conjuntos de escalas em uma data específica ou agenda recorrente.
O código do playbook nesta seção aumenta o número de instâncias de VM para um total de três às 10:00 de todas as segundas-feiras.
Salve o seguinte playbook como vmss-auto-scale.yml:
---
- hosts: localhost
vars:
resource_group: myResourceGroup
vmss_name: myScaleSet
name: autoscalesetting
tasks:
- name: Create autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
target:
namespace: "Microsoft.Compute"
types: "virtualMachineScaleSets"
name: "{{ vmss_name }}"
enabled: true
profiles:
- count: '3'
min_count: '3'
max_count: '3'
name: Auto created scale condition
recurrence_timezone: Pacific Standard Time
recurrence_frequency: Week
recurrence_days:
- Monday
recurrence_mins:
- '0'
recurrence_hours:
- '10'
Execute o livro de estratégias usando ansible-playbook
ansible-playbook vmss-auto-scale.yml
Dimensionamento automático com base em dados de desempenho
Se a demanda do aplicativo aumentar, a carga nas instâncias de VM em seus conjuntos de escala aumentará. Se esse aumento de carga for consistente, em vez de apenas uma breve demanda, você poderá configurar regras de dimensionamento automático para aumentar o número de instâncias de VM no conjunto de escala. Quando essas instâncias de VM são criadas e seus aplicativos são implantados, o conjunto de dimensionamento começa a distribuir o tráfego para elas por meio do balanceador de carga. O Ansible permite controlar quais métricas monitorar, como uso da CPU, uso do disco e tempo de carregamento do aplicativo. Você pode dimensionar e expandir em conjuntos de escala com base em limites de métricas de desempenho, por uma agenda recorrente ou por uma data específica.
O código do playbook nesta seção verifica a carga de trabalho da CPU nos 10 minutos anteriores às 18:00 todas as segundas-feiras.
Com base nas métricas de porcentagem de CPU, o manual executa uma das seguintes ações:
- Dimensiona o número de instâncias de VM para quatro
- Dimensiona o número de instâncias de VM para uma
Salve o seguinte playbook como vmss-auto-scale-metrics.yml:
---
- hosts: localhost
vars:
resource_group: myResourceGroup
vmss_name: myScaleSet
name: autoscalesetting
tasks:
- name: Get facts of the resource group
azure_rm_resourcegroup_facts:
name: "{{ resource_group }}"
register: rg
- name: Get scale set resource uri
set_fact:
vmss_id: "{{ rg.ansible_facts.azure_resourcegroups[0].id }}/providers/Microsoft.Compute/virtualMachineScaleSets/{{ vmss_name }}"
- name: Create autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
target: "{{ vmss_id }}"
enabled: true
profiles:
- count: '1'
max_count: '1'
min_count: '1'
name: 'This scale condition is executed when none of the other scale condition(s) match'
recurrence_days:
- Monday
recurrence_frequency: Week
recurrence_hours:
- 18
recurrence_mins:
- 0
recurrence_timezone: Pacific Standard Time
- count: '1'
min_count: '1'
max_count: '4'
name: Auto created scale condition
recurrence_days:
- Monday
recurrence_frequency: Week
recurrence_hours:
- 18
recurrence_mins:
- 0
recurrence_timezone: Pacific Standard Time
rules:
- cooldown: 5
direction: Increase
metric_name: Percentage CPU
metric_resource_uri: "{{ vmss_id }}"
operator: GreaterThan
statistic: Average
threshold: 70
time_aggregation: Average
time_grain: 1
time_window: 10
type: ChangeCount
value: '1'
- cooldown: 5
direction: Decrease
metric_name: Percentage CPU
metric_resource_uri: "{{ vmss_id }}"
operator: LessThan
statistic: Average
threshold: 30
time_aggregation: Average
time_grain: 1
time_window: 10
type: ChangeCount
value: '1'
Execute o livro de estratégias usando ansible-playbook
ansible-playbook vmss-auto-scale-metrics.yml
Obter informações sobre configurações de dimensionamento automático
O código do playbook nesta seção usa o módulo azure_rm_autoscale_facts para recuperar os detalhes da configuração de escalonamento automático.
Salve o seguinte playbook como vmss-auto-scale-get-settings.yml:
- hosts: localhost
vars:
resource_group: myResourceGroup
name: autoscalesetting
tasks:
- name: Retrieve autoscale settings information
azure_rm_autoscale_facts:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
register: autoscale_query
- debug:
var: autoscale_query.autoscales[0]
Execute o livro de estratégias usando ansible-playbook
ansible-playbook vmss-auto-scale-get-settings.yml
Desativar configurações de dimensionamento automático
Há duas maneiras de desativar as configurações de dimensionamento automático. Uma maneira é mudar a enabled chave de true para false. A segunda maneira é excluir a configuração.
O código do playbook nesta seção exclui a configuração de dimensionamento automático.
Salve o seguinte playbook como vmss-auto-scale-delete-setting.yml:
- hosts: localhost
vars:
resource_group: myResourceGroup
name: autoscalesetting
tasks:
- name: Delete autoscaling
azure_rm_autoscale:
resource_group: "{{ resource_group }}"
name: "{{ name }}"
state: absent
Execute o livro de estratégias usando ansible-playbook
vmss-auto-scale-delete-setting.yml