Usuário com melhor resposta
Métricas de desempenho para Windows Azure

Pergunta
-
Olá Pessoal,Gostaria de saber se alguém conhece ou já utilizou alguma métrica para comparação de desempenho entre diferentes planos de VM do Windows Azure ou até mesmo entre um servidor dedicado x Windows Azure?Tenho uma aplicação no modelo SaaS para gerênciar informações de vendas e que também possui uma funcionalidade para cálculos estatísticos de previsão de vendas, onde o histórico de vendas é analisado e é gerado assim um previsão de venda para os próximos XYZ meses, levando em consideração variáveis como tendência e sazonalidade por exemplo.Pontos que preciso analisar:1 - Qual benefício em migrar para Windows Azure e como posso medir/comprovar?2 - Digamos que o sistema esteja publicado no Windows Azure, como posso verificar se minha aplicação precisa de maior poder computacional, quando precisa escalar? O que pensei foi fazer uma grande carga de dados e comparar o desempenho antes/depois, mas como posso medir o antes e depois? Medir tempo de resposta, níveis de processamento da VM, alguma ferramenta para isso? Qual outro tipo de teste poderia fazer?3 - Alguém já usou a ferramenta do VSTS para teste de performance no Windows Azure?Se puderem contribuir com idéias/sugestões ficarei muito grato.Qualquer dúvida me perguntem!
- Editado Cristian Mathias - Porto Alegre - RS terça-feira, 19 de abril de 2011 16:39 Formatação
terça-feira, 19 de abril de 2011 16:38
Respostas
-
Olá Cristian!
No meu ponto de vista alguns dos principais pontos para se pensar na migração são:
- Para você estar pensando em migrar sua aplicação algo não está satisfatório, como por exemplo, a questão de dempenho... com isso qual o impacto que a infra existente na empresa hoje sofreria?
- Quanto vocês teriam que investir?
- Migrando para o Azure o quanto você estará economizando principalmente à médio/longo prazo?
- Sua demanda de escalabilidade e de processamento não sendo constante, lembre-se que no Azure você gerencia e utiliza um maior poder de acordo com a necessidade e a velocidade que precisa para obter seus resultados.
Quanto ao como saber quando escalar você pode criar uma app com um grande número de requisições e com uma grande quantidade de dados para ser processado, e para escalar te aconselhor a ver as questões de monitoramente e gerenciamento dos serviços e tornar sua app auto-escalavel.
Estes links podem te dar uma boa dica de como torná-la auto-escalável
- Condé Demo – Construindo uma solução auto-escalável dentro do Windows Azure: http://blogs.msdn.com/b/conde/archive/2010/06/17/cond-233-demo-construindo-uma-solu-231-227-o-auto-escal-225-vel-dentro-do-windows-azure.aspx //contém código para download.
- Para ter um grande controle do seu ambiente e saber como sua aplicação se comporta, aconselho a dar uma olhada no "Windows Azure Application Monitoring Management Pack" ( http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4f05f282-f23a-49da-8133-7146ee19f249 ) estamos terminando a implementação e é um recurso muito poderoso vale a pena dar uma olhada na documentação e ver se vale a pena para você também.
Quanto ao tipo e quantidade de VMs que você deverá utilizar isto já está diretamente relacionado ao custo X tempo de resposta que deseja obter.
Abs. e qualquer dúvida é só falar.
Lucas A. Romão
MSN: laromao@oxygenhost.com.br
Blog: http://laromao.wordpress.com/ | Twitter:@LucasRomao
Líder da Comunidade Azure Services Brasil| @AzureServicesBR- Sugerido como Resposta Lucas A. RomãoMVP, Moderator quarta-feira, 11 de maio de 2011 04:01
- Marcado como Resposta Daniel Ferreira terça-feira, 21 de junho de 2011 01:13
quarta-feira, 11 de maio de 2011 04:01Moderador
Todas as Respostas
-
Cristian,
Segue as respostas:
1) Na minha opnião, o maior benefício e o ganho de escala... ou seja... você consegue facilmente aumentar o poder de processamento disponível para a sua aplicação de acordo com a sua utilização.
2) Basicamente você controla o número de VMs e o tamanho das VMs da sua aplicação, acho que o mais simples seria medir o tempo de uso do processador para saber se você deve aumentar ou diminuir o número de VMs, veja:
Performance-Based Scaling:
http://msdn.microsoft.com/en-us/magazine/gg232759.aspx
Code approach:
http://code.msdn.microsoft.com/azurescale
Multithreading approach:
http://msdn.microsoft.com/en-us/azure/ff700243.aspx
http://blogs.msdn.com/b/gonzalorc/archive/2010/02/07/auto-scaling-in-azure.aspx
http://blogs.msdn.com/b/architectsrule/archive/2010/04/27/dynamic-scaling-windows-azure.aspx3) Nunca usei... mas acredito que o que você deve medir é o seu código, fazendo log de tempo de processamento e etc, assim você saberia quanto tempo cada processamento seu demora, de acordo com o poder de processamento disponível;
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)terça-feira, 19 de abril de 2011 20:37 -
Olá Ohashi, obrigado pela resposta!
O ponto mais importante é destacar quando eu preciso escalar e demonstrar os ganhos após aumentar os recursos de processamento.
Imagine que você precise comprovar para um gestor que vale a pena optar pelo Windows Azure. Reproduzir um caso e coletar/gerar evidências...
Abraço.
Cristian Mathiasterça-feira, 19 de abril de 2011 23:16 -
Olá Cristian!
No meu ponto de vista alguns dos principais pontos para se pensar na migração são:
- Para você estar pensando em migrar sua aplicação algo não está satisfatório, como por exemplo, a questão de dempenho... com isso qual o impacto que a infra existente na empresa hoje sofreria?
- Quanto vocês teriam que investir?
- Migrando para o Azure o quanto você estará economizando principalmente à médio/longo prazo?
- Sua demanda de escalabilidade e de processamento não sendo constante, lembre-se que no Azure você gerencia e utiliza um maior poder de acordo com a necessidade e a velocidade que precisa para obter seus resultados.
Quanto ao como saber quando escalar você pode criar uma app com um grande número de requisições e com uma grande quantidade de dados para ser processado, e para escalar te aconselhor a ver as questões de monitoramente e gerenciamento dos serviços e tornar sua app auto-escalavel.
Estes links podem te dar uma boa dica de como torná-la auto-escalável
- Condé Demo – Construindo uma solução auto-escalável dentro do Windows Azure: http://blogs.msdn.com/b/conde/archive/2010/06/17/cond-233-demo-construindo-uma-solu-231-227-o-auto-escal-225-vel-dentro-do-windows-azure.aspx //contém código para download.
- Para ter um grande controle do seu ambiente e saber como sua aplicação se comporta, aconselho a dar uma olhada no "Windows Azure Application Monitoring Management Pack" ( http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4f05f282-f23a-49da-8133-7146ee19f249 ) estamos terminando a implementação e é um recurso muito poderoso vale a pena dar uma olhada na documentação e ver se vale a pena para você também.
Quanto ao tipo e quantidade de VMs que você deverá utilizar isto já está diretamente relacionado ao custo X tempo de resposta que deseja obter.
Abs. e qualquer dúvida é só falar.
Lucas A. Romão
MSN: laromao@oxygenhost.com.br
Blog: http://laromao.wordpress.com/ | Twitter:@LucasRomao
Líder da Comunidade Azure Services Brasil| @AzureServicesBR- Sugerido como Resposta Lucas A. RomãoMVP, Moderator quarta-feira, 11 de maio de 2011 04:01
- Marcado como Resposta Daniel Ferreira terça-feira, 21 de junho de 2011 01:13
quarta-feira, 11 de maio de 2011 04:01Moderador