Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

Windows Azure: configurando instâncias e máquinas


Já vimos como configurar nosso ambiente Windows Azure e como criar uma aplicações ASP.NET MVC 2 e ASP.NET MVC 3 no Windows Azure.Agora vamos entender um pouco como configurarmos instâncias e máquinas no Windows Azure o que nos dará um pouco de base para depois falarmos de Fabric e Fabric Controller.

Instâncias e Máquinas

Quando estamos falando de Windows Azure e computação na nuvem não estamos simplesmente falando de máquinas virtuais rodando em um servidor em algum lugar fora da minha empresa.O Windows Azure é uma plataforma completa, e é também um sistema operacional criado para suportar e oferecer demanda e alta disponibilidade com simplicidade para escalar.O Windows Azure trabalha com o gerenciamento de recursos, balanceamento de carga e cuida do ciclo de vida dos serviços que está rodando.Quando falamos em nuvem não precisamos nos preocupar de antemão(up-front) com hardware, ambiente, e toda essa questão de infraestrutura. Não precisamos imaginar qual será todo o poder de processamento que precisaremos. Evitar isso quer dizer que podemos nos concentrar no negócio e no software e não nos detalhes de implementação(implantação).No Windows Azure conseguimos de forma muito simples configurar quantas instâncias de um role queremos executar, ou seja, quantas VMs queremos que executem uma determinada aplicação. Uma instância nada mais é do que uma máquina virtual a ser montada para nossa aplicação, única e exclusivamente para ela.Além disso configuramos de maneira muito simples qual será o hardware desta instância, ou como é dito: qual o tamanho da máquina virtual.

Configurando instâncias e máquinas no Windows Azure no VS2010

Vamos utilizar nosso projeto ASP.NET MVC 3 e ver como é feita a configuração de instâncias e máquinas no Windows Azure.O projeto Windows Azure com mvc 3

Vamos então dar um duplo click no Role SiteMVC3 para que seja aberta a tela a segui:Configuração do Role no Windows Azure

Reparem que temos uma área destinada a configuração das instâncias de nosso role. Por padrão o role é configurado com uma instância em uma VM de tamanho small.Abaixo você confere os tamanhos de máquinas disponíveis e suas configurações.

<th style="width:150px;

text-align:left;
">Virtual Machine Size</th>          <th style="width:150px;
text-align:left;
">CPU Cores</th>          <th style="width:150px;
text-align:left;
">Memory</th>          <th style="width:150px;
text-align:left;
">Disk Space</th>        </tr>        <tr>          <td>            
          **ExtraSmall**            
      </td>          <td>            

Shared

      </td>          <td>            

768 MB

      </td>          <td>            

20 GB

      </td>        </tr>        <tr>          <td>            
          **Small**            
      </td>          <td>            

1

      </td>          <td>            

1.75 GB

      </td>          <td>            

225 GB

      </td>        </tr>        <tr>          <td>            
          **Medium**            
      </td>          <td>            

2

      </td>          <td>            

3.5 GB

      </td>          <td>            

490 GB

      </td>        </tr>        <tr>          <td>            
          **Large**            
      </td>          <td>            

4

      </td>          <td>            

7 GB

      </td>          <td>            

1000 GB

      </td>        </tr>        <tr>          <td>            
          **ExtraLarge**            
      </td>          <td>            

8

      </td>          <td>            

14 GB

      </td>          <td>            

2040 GB

      </td>        </tr>      </tbody></table>Vamos alterar o valor de **_Instance count_** para 4 e executar nossa aplicação com **_Ctrl + F5_**. Isso fará com que nossa aplicação seja executada com 4 instâncias(quatro máquinas virtuais).Podemos acompanhar isso através do [Compute Emulator](http://msdn.microsoft.com/en-us/library/gg432968.aspx) que é um dos componentes instalados com o SDK do Windows Azure e que nos permite executar, testar e debugar aplicações Azure em nossa máquina local antes de realizar o deploy para produção. Clique com o botão direito no ícone no systray e escolha a opção Show Compute Emulator UI:[![Windows Azure Compute Emulator](http://viniciusquaiato.com/images_posts/Compute-Emulator.png "Windows Azure Compute Emulator")](http://viniciusquaiato.com/images_posts/Compute-Emulator.png)

Exibindo Windows Azure Compute Emulator UI

Feito isso teremos uma tela parecida com esta onde são exibidas nossas instâncias(ou máquinas virtuais):Windows Azure Compute Emulator UI

Com isso podemos acompanhar e monitorar as instâncias da nossa aplicação de forma local.

Configurando instâncias e máquinas no Windows Azure via XML

A edição e configuração da quantidade de instâncias e o tamanho das máquinas também podem ser feitas através de XMLs para quem não trabalhar com Visual Studio.Na nossa solution temos dois arquivos no projeto Azure que contém estas informações: Serviceconfiguration.cscfg e ServiceDefinition.csdef (cs no nome dos arquivos não é de C# e sim de Cloud Service).No arquivo ServiceConfiguration.cscfg configuramos quantas instâncias do nosso role(aplicação) queremos, veja abaixo na linha 4:

    <instances count="4" />    <configurationsettings>      <setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />    </configurationsettings>  </role></serviceconfiguration>

E no arquivo ServiceDefinition.csdef configuramos entre outras informações o tamanho da máquina virtual, veja na linha 3 o atributo vmsize.

  <webrole name="SiteMVC3" vmsize="Small" /></servicedefinition>

(em outro post detalharemos mais estes arquivos e o Service Model do Windows Azure)

Resumo

É bastante simples configurar quantas instâncias de nossa aplicação queremos executando e também qual o poder das máquinas que executarão estas instâncias.No próximo post entenderemos como o Windows Azure gerencia estas informações, como ele aloca e executa as aplicações e entenderemos um pouco mais de como a mágica é feita.Vamos caminhando aos poucos para não assustar ninguém, e para que eu mesmo possa aprofundar um pouco em alguns conceitos antes de passá-los.

Abraços, Vinicius Quaiato.

Voltar

Fork me on GitHub