Bill Zack, Arquiteto Evangelista da Microsoft, detalhou em uma apresentação online os cenários chave para usar o cloud e as soluções fornecidas pelo Windows Azure. Existem aplicações com um padrão de uso que as torna adequadas para o cloud, mas existem aplicações que o melhor é não serem implantadas em um cloud porque o proprietário acaba gastando muito tempo para rodá-las.
Workloads
- On e Off – aplicações que são usadas esporadicamente durante determinados períodos de tempo durante o dia ou ano. Muitos batch jobs que rodam no final do dia ou do mês caem nessa categoria. Proporcionar a capacidade necessária para essas aplicações é mais caro que rodá-las em um cloud porque a maior parte do tempo a capacidade não é usada.
- Crescimento rápido ou não rápido – um padrão de trabalho encontrado pelos iniciantes que não podem prever com exatidão o nível de sucesso de seu novo negócio e, consequentemente, a verdadeira capacidade que precisam. Iniciantes geralmente começam com pequenos aumentos de capacidade quando a demanda aumenta. Tais aplicações são adequadas para o cloud por que o cloud pode suportar o crescimento das necessidades rapidamente.
- Crescimento imprevisível – isso acontece, por exemplo, quando a carga normal em um web server é temporariamente aumentada por uma valor muito alto, tão grande que o sistema não consegue lidar com o tráfego passageiro. Os proprietários devem fornecer capacidade suficiente para suportar essas cargas, mas eles não esperam esses picos de tráfego. Mesmo se eles antecipá-las, a capacidade adicional ficaria a maior parte do tempo sem uso. Este é um outro bom candidato ao cloud.
- Crescimento previsível – a carga constatemente varia de uma maneira previsível ao longo do tempo. O proprietário pode comprar o equipamente e software necessário sem ter que depender de uma fornecedor de cloud.
Zack continua descrevendo cenários para computação, armazenagem, comunicações, deploy e administração com soluções fornecidas pelo Windows Azure.
Computation
- Instâncias de aplicações On-demand – este padrão se aplica durante eventos especiais, quando os aplicativos precisam escalar rapidamente, e depois reduzir o escalonamento. Windows Azure suporta estas necessidades com gerenciadores web e worker roles automaticamente.
- Distribuição Worker Role – este é usado quando trabalhos longos são feitos em pequenas partes, cada uma delas sendo associadas com um instância de Worker Role.
Armazenamento
- Blob – Blobs são usados para armazenar grande quantidade de dados não estruturados.
- Tables – uma solução não relacional para armazenar uma grande massa de dados.
- DB – SQL Azure oferece uma banco de dados relacional no cloud.
- Data Protection – Dados armazenados em um cloud pode ser encriptografados se eles contém informações confidenciais e tem-se que garantir que eles não serão descobertos. Windows Azure fornecerá esses serviços em um futuro próximo.
- Information Service – Microsoft tem um dados de mercado que podem ser comprados ou vendidos por empresas.
Comunicação
- Service-oriented Integration – Azure permite aplicações consumirem serviços fornecidos por outras aplicações. A solução integrada da Microsoft é WCF Web Services, worker roles são aptos a expor esses endpoints.
- Mensageria – Mensageria é fornecido pela Windows Azure Queues para comunicação assíncrona entre web e os worker roles.
- Mensageria através de Firewalls – Aplicações podem comunicar-se com outras através do Service Bus Queues que não exige que nenhuma porta adicional seja aberta.
Implantação
- Could Deployment - Aplicações são implantadas no cloud usando serviços distintos e configuração de arquivos, e são empacotadas para as funções específicas. A web e os worker roles e seus tipos são definidos no arquivo de serviço, enquanto o arquivo de configuração de serviço contém os números de cada role.
- Movendo aplicações On-Premise para o Cloud – enquanto isso não é viável para a maioria dos aplicativos, existem algums que podem ser portados como um simples site web ASP.NET
- Ambientes misturados, On-Premise e o Cloud – Windows Azure fornece a possibilidade de combinar aplicações on-premises com serviços no cloud usando interfaces REST, acesso seguro ao SQL Azure, Service Bus e Access Control Service.
- Aplicação Dual– aplicações podem ser projetados para funcionar tanto local quanto nas nuvens, mas o processo de design não é simples. Isto pode ser útil se a organização roda a aplicação em seus próprios servidores, mas usa a nuvem durante os picos como, por exemplo, na época do natal.
- Security Federation – Windows Azure fornece este tipo de segurança através do Access Control Service.
- SaaS – Aplicações implantadas em um cloud pode ser fornecidas também como serviços
Administração
- Design para Operações – Windows Azure fornece uma API diagnosticar problemas e identificá-los ou monitorá-los.
- Service Instance Management – instâncias do aplicativo podem ser iniciadas, interrompidas ou suspensas através de uma API ou através do portal Azure.