Durante uma apresentação (Webcast) do arquiteto e evangelista da Microsoft Bill Zack sobre Windows Azure Design Patterns, ele disse algo que me chamou a atenção: “como arquitetos, estamos mais interessados em resolver os problemas de negócios que podem ser solucionados utilizando esses recursos(do Windows Azure neste caso) onde eles são adequados”.
A Cloud computing foi desenvolvida para alguns cenários específicos e determinadas aplicações possuem um padrão de uso que as torna adequadas para a nuvem. O contrário também é verdade.
Durante seu Webcast, foi apresentado uma série de soluções e cenários cujo os recursos e componentes do Windows Azure são recomendados. Segue e resume e logo após o link para o download do webcast.
On e Off – aplicações que são usadas esporadicamente durante determinados períodos de tempo durante o dia ou ano. Muitos serviços 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.
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.
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 dados de mercado que podem ser comprados ou vendidos por empresas.
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.
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
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.
Você pode baixar o webcast aqui.
Um grande abraço ótimo Estudo!
Twitter: @vitormeriat vitormeriat@gmail.com vitor.pereira@studentpartners.com.br
Luciano Lima [MVP] Brazil edited Revision 6. Comment: Corrigido o posicionamento do [TOC] e removido os espaços desnecessários.
Flávio Honda edited Revision 4. Comment: edição TOC
Flávio Honda edited Revision 3. Comment: adição TOC