Entendendo uma Subscription do Windows #Azure (pt-BR)
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 acessar o ‘Portal do Desenvolvedor’, clicar em ‘Hosted Services, Storage Accounts & CDN’, na tela central clique sobre o botão ‘Active(XX)’ e aparecerá 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.
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 um pouco mais detalhada:
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.
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 problemas com nossa 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.
Observação: Obviamente que o Windows Azure NÂO se limita à 20 cores, para tirar um melhor proveito da sua subscription basta entrar em contato com o time de suporte e com uma breve análise de crédito suas "limitações" de uso serão ampliadas para isso utilize este link:
Windows Azure Support
E é isso pessoal espero ter sido bem claro e que tenha ficado um pouco mais claro a todos do funcionamento das roles, intâncias e etc.
Se tiverem mais dúvidas e/ou por ventura surgiram mais curiosidades não deixem de perguntar.
Grande abraço e sucesso a todos.
Lucas A. Romão
MSN: laromao@oxygenhost.com.br
Blog: http://laromao.wordpress.com/ | Twitter: @LucasRomao
Líder da Comunidade Azure Services Brasil | Twitter: @AzureServicesBR