ADM de Redes

Um Blog sobre o dia a dia do Administrator de Redes e Servidores Microsoft

By

Auto-Scale de Máquinas Virtuais no Microsoft Azure.

Olá Pessoal,

Um dos conceitos de Nuvem (Definição do NIST, não da Microsoft) é a escalabilidade dos serviços de TI. E obviamente, no Microsoft Azure isso não é diferente. É preciso, porém, entender como funciona o Auto-Scale do Azure para Máquinas Virtuais. Vamos aos conceitos.

Como é sabido, no Micorosft Azure é possível ter os serviços de PaaS e IaaS. No modelo de PaaS, que talvez o público do Blog, majoritariamente ITPro talvez não saiba, você não tem interação com o Sistema Operacional onde a aplicação está sendo executada. Neste modelo, o desenvolvedor vai codificar a aplicação e uma vez que esta aplicação estiver pronta e compilada, ele deverá fazer o upload do pacote da aplicação para o Azure. Com este pacote, o Azure é capaz de provisionar e configurar o Sistema Operacional de acordo com as configurações informadas no pacote. Desta forma, escalar uma Máquina Virtual no modelo PaaS é incrivelmente fácil. Já no modelo IaaS, o processo de Auto-Scale é simples, mas algumas configurações devem ser atendidas e configuradas antes de se configurar o Auto-Scale em sí.

Outro ponto importante é que no modelo de PaaS, como o Azure “sabe” como configurar uma Máquina Virtual, você não tem que deixar nada pré-configurado. Já no modelo IaaS, você precisa deixar as VMs configuradas para que o Azure possa ajustar o Auto-Scale de acordo com as políticas de Scale e de acordo com o número de Máquinas Virtuais existentes.

Antes de configurar o Auto-Scale, as Máquinas Virtuais devem ter as seguintes configurações:

- Máquinas Virtuais configuradas como Standard. Veja este post aqui sobre o assunto;
- Configurar o Availability Set para pelo menos duas Máquinas Virtuais. Veja este post aqui sobre o assunto;
- Muito provavelmente, para atender às necessidades da aplicação, configurar o Load-Balance Set no Endpoint. Veja este post aqui sobre o assunto.

Com estas premissas configuradas, podemos configurar o Auto-Scale. Nesta demonstração, vou utilizar duas Máquinas Virtuais Standard, configuradas em um único Cloud Service e no mesmo Availability Set. Veja:

Além da configuração acima, foi criado um Endpoint com Load-Balance Set configurado, conforme abaixo: (Veja que isso não é uma obrigação, mas acredito que atenda a maioria dos casos)

Com todos os requisitos configurados, você pode configurar o Auto-Scale para as Máquinas Virtuais deste Cloud Service. Dentro do portal do Azure, selecione o Cloud Service e clique na Aba Scale. Você verá que existem duas configurações de Auto-Scale. Vamos explicar as duas:

A primeira opção é por horário. Você pode ter mais ou menos Máquinas Virtuais de acordo com um horário pré-agendado. Este cenário é interessante quando você já tem a previsão de que terá aumento e/ou queda de acessos/consumo dentro de sua aplicação. Para configurar o Auto-Scale por horário, clique em “Set up schedule times”. A seguinte tela irá aparecer:

A primeira opção nesta tela permitirá uma configuração de scale diferente para horários de Dia e Noite. Desta forma, você pode definir uma configuração para o horário comercial e outra para o período da noite. A segunda opção é para configuração de scale durante o fim de semana.

Isso basicamente significa que você pode ter 3 configurações distintas. Para entender, veja que na imagem acima eu marquei as duas opções, e ainda configurei o horário comercial de acordo com as minhas necessidades, além do Time Zone de Brasília. No meu caso, então, ele terá uma configuração de scale das 08:00 às 18:00, outra configuração das 18:01 às 7:59 e outra durante o fim de semana. Você pode ainda criar configurações para datas e horários específicos que irão sobrescrever o padrão acima. Uma vez que você configurou os horários, clique no botão de conclusão para voltar à tela anterior.

Com as configurações de horário aplicadas, você poderá configurar quantas Máquinas Virtuais devem estar ligadas em cada configuração. Veja as opções que mencionamos acima:

Quando você selecionar uma das opções, na parte inferior da tela você poderá colocar a quantidade de máquinas (De acordo com o número de máquinas existentes). No meu exemplo, vou colocar a seguinte configuração:

Durante horário comercial, 2 Máquinas Virtuais ligadas:

Durante a noite, apenas 1 Máquina Virtual ligada:

Durante o fim de semana, nenhuma Máquina Virtual deve ficar ligada:

Veja que nesta última imagem ele menciona que o endereço do VIP será perdido caso todas as Máquinas Virtuais sejam desligadas. Iremos falar sobre esse assunto em outro post. O que importa aqui é entender que o IP utilizado no nome público deste Cloud Service será alterado na próxima vez que as Máquinas Virtuais forem ligadas. O FQDN será o mesmo, mas o IP será outro.

Essa é a configuração para Auto-Scale baseado em configuração de horário. Você pode também configurar o Auto-Scale por performance. Neste caso, você poderá configurar o Auto-Scale baseado em CPU e Queue. Como Queue será utilizado, muito provavelmente, apenas em cenários de PaaS, vamos ver como configurar apenas com CPU. (Veja que o cenário de IaaS também poderá utilizar Queue, mas depende do desenvolvedor configurar a aplicação para utilizar esse modelo)

Quando você habilita a configuração de Auto-Scale por CPU, você tem as seguintes opções:

Para explicar a imagem acima, no meu caso eu habilitei o Auto-Scale por CPU e a primeira opção é indicar qual o número mínimo e máximo de Máquinas Virtuais. No meu caso, são apenas 2, então o mínimo é 1 e o máximo 2. Com mais Máquinas Virtuais, as opções abaixo fazem um pouco mais de sentido, mas vamos analisa-las.


Nesta opção de Target CPU você vai indicar a operação padrão de sua aplicação dentro da Máquina Virtual. No meu caso, a aplicação utiliza normalmente entre 20 e 80% de CPU. Isso significa que se a utilização estiver abaixo de 20%, o Azure irá desligar Máquinas Virtuais. Se a utilização estiver acima de 80%, ele irá ligar Máquinas Virtuais. Agora, um ponto importante é a frequência que ele faz isso e quantas Máquinas Virtuais ele vai ligar ou desligar automaticamente. Para isso você tem a próxima configuração:


Nesta configuração acima, você poderá indicar quantas Máquinas Virtuais o Azure deverá ligar automaticamente cada vez que o target ultrapassar o valor estabelecido e quantas deverá desligar. Além disso, você pode configurar para ele aguardar um período antes de ligar ou desligar as próximas Máquinas Virtuais, garantindo assim que o número de Máquinas Virtuais é o suficiente sempre, tanto em caso de alta ou baixa utilização de CPU.

Espero que tenham gostado do Post. Recomendo ler atentamente os posts que coloquei como requisitos para o Auto-Scale antes de iniciar as configurações.
Até mais!

4 Responses to Auto-Scale de Máquinas Virtuais no Microsoft Azure.

  1. Valteci Oliveira says:

    Parabéns pelo post Vinícius, conteúdo muito rico e explicativo.

    Abs,
    Valteci Oliveira

  2. Vinicius Mozart says:

    Muito bom ! Parabéns pelo post. Esse Azure vai se tornar o novo Windows.

  3. Dj says:

    Muito Bom! Parabéns.

  4. Patrick Melo says:

    Excelente.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>