Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Olá pessoal, tudo certo?
No post anterior, falamos sobre classificação de aplicações para o bom uso da plataforma Windows Azure. Vamos continuar nosso estudo nesse post.
Vimos que de modo geral, podemos classificar nossas aplicações em 5 grandes grupos: Gerenciamento de Negócio, Produtividade, Infraestrutura, Web e outras (gerais). Porém, essa classificação é apenas o primeiro passo em nosso estudo, apesar de muito importante.
Outra forma de classificar sua aplicação é quanto a sua utilização e integração com outros sistemas. Confira as perguntas abaixo e utilize-as para uma avaliação mais detalhada de sua aplicação:
Qual é a melhor forma de classificar sua aplicação?
1. Aplicação legada, baseada em tecnologias antigas (ASP, VB6, COM+, C/S, etc)
2. Aplicação baseada em plataforma .NET (.NET 2.0, 3.0, 3.5, 4.0, ASP.NET, WCF, WF, etc.)
3. Aplicação baseada em plataforma não-Microsoft (Java, Delphi, PHP, etc)
4. Novo desenvolvimento em plataforma .NET (.NET 4.0/VISUAL STUDIO 2010)
Qual é a melhor forma de descrever o tamanho de sua aplicação?
1. Grande (>10 servidores/VMs)
2. Médio (4 a 10 servidores /VMs)
3. Pequeno (<4 servidores /VMs)
Quanto à integração de sua aplicação com outras aplicações locais ou na nuvem, qual é a melhor descrição?
1. Altamente integrada (10 conexões ou mais)
2. Moderadamente integrada (de 5 a 10 conexões)
3. Levemente integrada (de 2 a 5 conexões)
4. Não integrada (1 conexão)
Qual é a melhor classificação para o número de logins sobre sua aplicação?
1. Heavy user logins (mais de 500 logins simultâneos)
2. Medium user logins (de 100 a 500 logins simultâneos)
3. Light user logins (menos de 100 logins simultâneos)
4. No user logins
Qual é a melhor descrição para o crescimento estimado de sua aplicação ao longo do tempo?
1. Variável/Sazonal – a aplicação é usada somente por determinado período de tempo (por exemplo, um site de comércio eletrônico que é publicado somente em dezembro, para vendas de Natal e Ano Novo).
2. Crescimento Constante – crescimento consistente ao longo do tempo, por um longo período.
3. Picos Previsíveis – a aplicação é usada por um longo período de tempo, com picos de carga previsíveis (por exemplo, carga elevada nos últimos 3 dias de todo mês).
4. Picos Imprevisíveis – a aplicação é usada por um longo período de tempo com picos de carga não previstos, ocorrendo de forma esporádica (por exemplo, picos de acessos em site de notícias, devido mídia externa).
Fique a vontade para ajustar alguns números acima. Para alguns cenários, Heavy user logins pode ser mesmo mais de 2000 logins e não 500. Os valores acima são uma primeira impressão e podem ser ajustados conforme o cenário.
Nota: ao responder as perguntas acima você estará conhecendo um pouco mais sobre sua solução. Não teremos o número de instâncias de Web Roles de forma automática, mas as perguntas ajudam nesse processo de definição e planejamento de capacidades para uma solução sobre o Windows Azure.
Como próximo passo, vamos questionar sobre o comportamento de sua aplicação. Para isso, algumas questões oferecem um bom mapa, como vemos a seguir:
- A aplicação usa um banco de dados SQL Server ou outro de mercado?
- Qual é a plataforma?
- Quantas instâncias de bases de dados estão presentes?
- Qual é o tamanho de cada instância?
- Quantas stored procedures são usadas?
- Qual é a expectativa de crescimento das bases?
- Existe rotina de expurgo de dados?
- Existe necessidade de manutenção de histórico de dados por um longo tempo?
- Existe necessidade de transações distribuídas entre bases?
- Outros clientes ou serviços consomem os dados de sua base?
- A aplicação usa mensageria via MSMQ ou outra de mercado?
- A aplicação usa FILE SYSTEM/NTFS como parte da solução?
- A aplicação usa REGISTRY como parte da solução?
- A aplicação usa mecanismos de segurança, como certificados, criptografia, tokens, etc. como parte da solução?
- A aplicação tem exigências quanto ao tempo de resposta de rede?
- A aplicação tem restrições quanto ao SLA (Service Level Agreement) definido junto aos seus usuários?
- A aplicação usa autenticação baseada em Active Directory (AD) ou ADFS?
- A aplicação usa Windows Workflow Foundation (WF) ou outro mecanismo de workflow de mercado?
- A aplicação usa barramento de serviços para pub/sub de Web Services?
- A aplicação usa uma abordagem STATELESS (sem estado) ou STATEFULL (com controle de estado)?
- A aplicação usa protocolos de comunicação além do HTTP, como TCP, UDP, SOAP, REST, etc.?
- A aplicação usa objetos ou componentes COM/COM+?
- A aplicação usa um processo de instalação via XCOPY?
- A aplicação usa variáveis de ambiente?
- A aplicação usa componentes registrados no Global Assembly Cache (GAC)?
- A aplicação usa ASP.NET Session State?
- A aplicação usa App.Config ou Web.Config como base de configuração?
- A aplicação usa Custom Domain Name previamente definido?
- A aplicação usa CLR Stored Procedures ou CLR User-Defined Types (UDTs)?
- A aplicação usa Service Broker no SQL Server?
- A aplicação usa componentes ou recursos não-gerenciados (não .NET)?
- A aplicação usa Ruby ou Ruby on Rails?
- A aplicação usa Java ou Java Beans?
- A aplicação usa soluções de e-mail de forma integrada?
- A aplicação deve estar registrada em barramentas de serviços locais (on-premise)?
- A aplicação deve ser consumida por clientes móveis, como Windows Phone 7, etc.?
- A aplicação usa recursos de geo-localização, mapas, GPS, etc.?
- A aplicação usa recursos de mídia diversos, como AUDIO, VIDEO, IMAGENS, etc.?
- A aplicação usa intenso processamento para cálculos em paralelo, simulações, etc.?
- Qual é o número de transações estimado por hora em sua aplicação?
- Qual é o número de consultas de dados (em GB) estimados por hora em sua aplicação?
- Qual é o número de uploads de dados (em GB) estimados por hora em sua aplicação?
- Qual é o tamanho da base de dados inicial (em GB) necessária para sua aplicação entrar em produção?
- Qual é o orçamento mensal previsto com manutenção da infraestrutura para sua aplicação?
Várias perguntas, certo? Algumas são fáceis de se responder, outras nem tanto.
O objetivo final desse estudo é a construção de uma tabela geral para nosso projeto para o Windows Azure.
Veja o exemplo abaixo, com estimativas para cada tipo de aplicação do grupo Business Productivity (use como referência em seus projetos):
Na tabela acima, vemos as colunas:
- Número de instâncias de máquinas virtuais no Azure, estimadas para o projeto inicial;
- Carga média de entrada de dados, em GB por hora;
- Carga média de saída de dados, em GB por hora;
- Armazenamento inicial em GB no Azure Storage (para dados não estruturados, como blobs, tabels, queues);
- Armazenamento inicial em GB no SQL Azure (para dados relacionais);
Com essas definições, é possível fazer uma estimativa macro sobre a dimensão do projeto, assim como custo aproximado na plataforma Windows Azure.
Sobre custos unitários na plataforma Azure, veja o link a seguir:
Windows Azure Platform Consumption
Ref.: https://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&locale=en-us&offer=MS-AZR-0003P
Sem uma ideia de dimensão de nossa solução, é muito difícil avaliar a viabilidade do projeto na nuvem. Por isso, conhecer a fundo as necessidades de sua aplicação é muito importante.
Para informações completas sobre os custos na plataforma Windows Azure, confira o link:
Ref.: https://www.microsoft.com/windowsazure/offers/
Espero que ajude!
Por enquanto é só! Até o próximo post :)
Waldemir.
Comments
Anonymous
May 24, 2011
Fica a dica, eu faria um update no post com a nova calculadora do Windows Azure. Ficaria perfeito !Anonymous
May 24, 2011
Super Condé, Dica aceita! Segue o post sobre a nova calculadora do Windows Azure... blogs.msdn.com/.../calculadora-de-custos-do-windows-azure.aspx []s Waldemir.