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?
Imagine o seguinte cenário: você precisa submeter 100 mil e-mails em 1 hora, para uma campanha de Marketing bem agressiva. Para esse envio, cada e-mail ainda exige um pequeno processamento ou cálculo, antes de submeter a mensagem. A lista de e-mails lhe foi dada em formato texto, com 1 coluna apenas com os diversos e-mails para destino. Você está considerando que todos os e-mails são válidos, não precisando fazer qualquer checagem.
O que você faria?
Podemos pensar em algumas soluções como o uso de LINQ to HPC, já ouviu falar?
Fonte: INTRODUCING LINQ TO HPC - PROCESSING BIG DATA ON WINDOWS, DAVID CHAPPELL, MAY 2011
Introducing LINQ to HPC: Processing Big Data on Windows
Ref.: https://www.microsoft.com/download/en/details.aspx?id=13615
Claro, podemos usar outras soluções para o envio de tantos e-mails em pouco tempo, mas a ideia de usar MapReduce é tentadora.
O LINQ to HPC é bem explicado no documento acima, escrito por David Chappell. Em resumo, o modelo de MapReduce é utilizado e pode ser uma alternativa para nosso caso, onde um Job Scheduler é chamado, recebendo a lista de e-mails para processamento. Na sequencia, a lista é quebrada em blocos de processamento, cada um enviado para um novo Nó de Processamento ou Lógica. Esses nós irão demandar o uso de nós computacionais para o processamento. Para cenários de processamento mais intensos que apenas mandar e-mails, com certeza o modelo de HPC é obrigatório. No final, uma Role de consolidação monitora o encerramento de todos os processamentos.
A solução acima é baseada em Windows Server 2008 local, com o HPC em ambiente on-premise.
Agora, pensando essa solução sobre a plataforma Windows Azure, essa semana tivemos uma atualização no projeto Daytona, que permite a construção de soluções de MapReduce sobre a plataforma na nuvem, veja:
Project Daytona: Iterative MapReduce on Windows Azure – CTP Refresh (July 26, 2011)
Ref.: https://research.microsoft.com/en-us/downloads/cecba376-3d3f-4eaf-bf01-20983857c2b1/
A solução respeita o modelo de MapReduce, onde uma entidade Mestre distribui as Tarefas para entidades Escravas, que fazem o processamento em blocos. Ao final, os resuldados são consolidados por uma entidade de fechamento ou simplesmente o processo é terminado pelas entidades escravas.
O grande interesse aqui está na possibilidade de contratação de máquinas escravas de forma dinâmica, conforme a necessidade, com o poder de processamento oferecido pelos datacenters da plataforma Windows Azure (que em muitos casos é bem maior que o poder de processamento de nossos datacenters corporativos locais).
Esse modeo é muito interessante para diversos cenários de aplicações que exigem o processamento de grandes quantidades de dados. Vale a pena estudar e acompanhar o projeto Daytona, que ainda está em CTP para o Windows Azure.
Por enquanto é só! Até o próximo post :)
Waldemir.
Comments
Anonymous
June 27, 2012
Waldemir, e ai, mais alguma noticia sobre o Azure? Como anda a plataforma de desenvolvimento? Não tenho visto muita coisa por aí, pessoal falando aqui no Brasil, etc, etc. Mesmo este post tem uns 11 meses. Será que daqui a 10 anos o Azure continua?Anonymous
July 05, 2012
Olá Marcio, tudo bom? A plataforma Azure continua firme e forte. As últimas atualizações foram intensas, com adições tanto para desenvolvimento como para infraestrutura. A integração de VM's de Azure com sistemas de gerenciamento como System Center 2012 também está muito forte. E a adição de ofertas de IAAS - Infrastructure as a Service garante o modelo de Hybrid Cloud que muitas empresas estão buscando. Em 2022 o mapa de TI nas empresas com certeza vai contemplar um percentual muito maior de Public Cloud do que hoje em dia. E com certeza Windows Azure estará nesse mapa! :) Abraço grande e obrigado pelo comentário no blog! Waldemir.