Entendendo uma Subscription do Windows Azure


Olá pessoal,

Baseado em uma dúvida de um amigo de BH me inspirei em escrever este post e lhes mostrar quais os “limites” de nossa subscrição no Windows Azure, o que são Cores, quantos COres temos disponíveis, como calculá-los e como podemos utilizá-lo e não correr o risco de ultrapassá-lo e assim sermos surpreendidos.

Muitas vezes focamos mais na parte técnica de como desenvolvermos nossa aplicação, de como torná-la escalável e como fazer o provisonamento, porém até mesmo para utilizarmos todos estes recursos e tomarmos decisões precisamos conhecer muito bem o ambiente em que estamos trabalhando e como tirar um melhor proveito disso.

Este post está baseado nos limites da nossa subscription, para visualizar este limite basta acessa no ‘Portal do Desenvolvedor’, clicar em ‘Hosted Services, Storage Accounts & CDN’, na tela central clique sobre o botão ‘Active(XX)’ e arecerá uma nova tela com todas as subscrições vinculadas ao seu LiveId, clique sobre a qual deseja visualizar e no canto direito da sua tela você terá um quadro chamado ‘Quota’ como o apresentado abaixo.

quota

Antes de entrarmos no assunto, o que conseguimos interpretar na imagem acima é que de todos os recursos disponíveis eu estou utilizando apenas uma ‘Storage Account’, sem nenhuma aplicação ‘hosteada’ no momento.

Abaixo a lista completa de forma pouco mais detalhada:

limitesSubsc

Agora para que tenhamos um bom entendimento do todo a primeira coisa que temos que ter bem claro em nossa cabeça é que para trabalharmos com o Windows Azure em ambiente de produção temos basicamente duas formas de contratatação (não podemos esquecer é claro das contas de parceiros e de testes) que são:

  • Contrato por demanda (Pay-As-You-Go): Você utiliza os recursos e paga por aquilo que consome, podemos fazer um paralelo com energia elétrica, não existe um custo fixo a cobrança é baseada com aquilo que consumiu;
  • Subscriptions Offers: Você contrata “pacotes” fixos com ‘limites’ pré-definidos de utilização dos recursos;

Quando você possui uma subscrição podemos criar nossos projetos no Visual Studio 2010 e com isso adicionar as ROLES necessárias para o projeto, atualmente o Windows Azure possui 3 tipos de ROLES a Web Role, Worker Role, CGI, etc..

Observação: Não esquecendo ainda que temos a VM Role,  sendo esta uma máquina virtual customizada em ambiente local com Windows Server 2008 R2 Enterprise em Inglês (atualmente) à qual conseguimos ‘upá-la’ para o Windows Azure.

Para uma maior compreensão dos próximos exemplos abaixo temos a lista dos tipos e tamanhos de instâncias que podemos contratar, sendo que para este post as informações mais importantes a serem levadas em consideração estão destacadas em vermelho.

instanceSize

A principal dúvida é: O que vem a ser um core? Uma role significa um core? Como calculo a quantidade de cores?

Basicamente a conta que precisamos fazer para saber quanto CORES nossa aplicação estará consumindo e não corrermos o risco de termos problemascom nossa sua Subscription, basta usar a seguinte fórmula:

<número de hosted services> X <número de roles> X <número de CPU Cores utilizada pelo tipo de instância> = <Total CPU Cores utilizados>

  • <número de hosted services> = Quantos ambientes de host temos (contando os ambientes de Stage e Deploy)
  • <número de roles> = Quantas roles temos em nossa aplicação (não esqueça de contar o número de instâncias de uma role)
  • <número de CPU Cores utilizada pelo tipo de instância> = Quantos cores efetivamente nossa instância utiliza.

Vejamos alguns exemplos para melhor exemplificar.

Exemplo 1: Imagine que você tenha criado um Hosted Service com duas ROLES (como por exemplo uma WEB e uma WORKER) e você está utilizando uma instância do tipo SMALL (1 CPU Core).
A sua conta ficará da seguinte forma: 1 hosted service x 2 roles x 1 instance x 1 CPU core = 2 CPU cores

Exemplo 2: Imagine agora que você tenha criado um Hosted Service com duas ROLES (como no seu exemplo uma WEB e uma WORKER) e devido a quantidade de processamento que você necessita você tenha optado para mudar o tipo de instância do tipo SMALL (1 CPU Core) para LARGE que utiliza (4 CPU cores).
A sua conta ficará da seguinte forma: 1 hosted service x 2 roles x 1 instance x 4 CPU core = 8 CPU cores

Exemplo 3: Um ponto muito importante é que muitas pessoas acham que o que mantemos em modo STAGE não é cobrado ou não entra em nossa conta, porém isso é um grave erro, leve em consideração o cenário do Exemplo 1 caso este formato seja mantido tanto em ambiente de STAGE como de PRODUÇÃO será contabilizado da seguinte forma:
Ambiente de STAGE: 1 hosted service x 2 roles x 1 instance x 1 CPU core = 2 CPU cores
Ambiente de PRODUÇÃO: 1 hosted service x 2 roles x 1 instance x 1 CPU core = 2 CPU cores
Resultado: Utilização de 4 cores do seu total de 20, portanto muita atenção quanto a este fato.

E é isso pessoal espero ter sido bem claro e que tenha ficado um pouco mais claro a todos do funcionamento das roles, intancias e etc.

Se tiverem mais dúvidas e/ou por ventura acabei gerando mais curiosidades do funcionamento não deixem de perguntar.

Grande abraço e sucesso a todos.

Lucas A. Romão
MSN:
laromao@oxygenhost.com.br
Blog: https://laromao.wordpress.com/ | Twitter: @LucasRomao
Líder da Comunidade Azure Services Brasil | Twitter: @AzureServicesBR

Anúncios
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: