Nesta década, vamos coletar mais dados científicos que em toda a história da humanidade. Em breve, será impossível fazer qualquer tipo de análise sem acessar ferramentas computacionais poderosas, que podem organizar o intenso fluxo de dados provenientes de satélites, sensores conectados à Internet e simulações computacionais maciças.
Michael Isard, Derek Murray e Frank McSherry da Microsoft Research estão tentando resolver o dilúvio de dados com o Naiad, uma plataforma open source em .NET para análise de dados de baixa latência e alta produtividade.
Recentemente, nos encontramos com a equipe para saber suas perspectivas em relação a como o Naiad pode resolver os problemas emergentes do Big Data e como programadores e analistas interessados podem se envolver no projeto open source.
Conte-nos sobre Naiad. Que problema do Big Data ele resolve?
Na última década, plataformas de Big Data como Hadoop tornaram a computação distribuída popular. Como as pessoas se acostumaram a processar seus dados na Nuvem, elas se tornaram mais ambiciosas, querendo fazer coisas como análises gráficas, aprendizado de máquina e processamento de fluxo em tempo real em suas enormes fontes de dados.
O Naiad é voltado para resolver esta classe mais desafiadora de problemas: ele adiciona suporte para algumas chaves primitivas – mantendo o estado, executando loops e reagindo a dados de entrada – e fornece infraestrutura de alto desempenho para executá-las em um sistema distribuído escalável.
O resultado une o melhor dos dois mundos. O Naiad roda programas simples tão rápido quanto as plataformas de propósito geral existentes, e programas complexos tão rápido quanto sistemas especializados em análises gráficas, aprendizado de máquina e processamento de fluxo. Além disso, como um sistema de propósito geral, o Naiad permite que você crie diferentes aplicações juntas, habilitando mashups (como computar um algoritmo gráfico em uma janela em tempo real de um firehose de uma rede social) que não eram possíveis antes.
Quem deve usar o Naiad?
Nós projetamos o Naiad para ser acessível para vários usuários diferentes. Você já pode começar com o Naiad, escrevendo programas utilizando operadores familiares declarativos baseados em SQL e LINQ.
Para usuários avançados, criamos interfaces de baixo nível para estender o Naiad sem sacrificar o desempenho. Você pode conectar estruturas de dados otimizados e algoritmos, e construir novas linguagens de domínio específico no Naiad. Por exemplo, nós escrevemos uma camada de processamento gráfico no Naiad que possui desempenho comparável com (e às vezes até melhor) o de sistemas especializados voltados apenas para processos gráficos.
Por que foi importante o Naiad ser um projeto open source?
Além disso, queremos que as pessoas utilizem o Naiad para resolver seus problemas de Big Data. Receber feedback de usuários reais é uma ótima forma de dizer o que devemos fazer me seguida. Liberar o código sob uma licença que faz com que as pessoas se sintam confortáveis para adotá-lo é uma parte importante disso. Também projetamos o Naiad para suportar um rico ecossistema de bibliotecas sobre ele, e torna-lo open source dá início a todo o processo.
Qual tem sido a reação desde o lançamento do Naiad?
Temos recebido uma grande resposta da comunidade de pesquisa. O trabalho vem sendo bastante citado, e sabemos que pelo menos dois grupos de universidades começaram a desenvolver na base de código do Naiad para suas pesquisas. Estamos apenas começando com o engajamento do cliente, e há trials de provas de conceito com alguns usuários, dentro e fora da Microsoft.
O que o Microsoft Azure levou para o projeto?
O Microsoft Azure torna fácil experimentar o Naiad em escala. Azure HDInsight recentemente lançou suporte para YARN, que permite que novos frameworks distribuídos rodem em um cluster Hadoop. Adicionamos suporte para YARN no Naiad, então agora você pode usá-lo mesmo se você não tem um cluster Windows em promises.
Naiad é um dos primeiros grandes frameworks de Big Data baseados em .NET. O Microsoft Azure é uma excelente plataforma para rodar aplicações .NET, graças à integração com ferramentas do Visual Studio, ASP.NET para visualização de dados, Azure Storage para dados estáticos e Azure Services Bus para streaming de feeds de dados.
O que você gostaria de ver o Naiad se tornar?
Adoraríamos ver Naiad em amplo uso, como parte do kit de ferramentas padrão para processamento de Big Data. O Naiad deve aumentar as expectativas em relação a desempenho e, ao mesmo tempo, diminuir a barreira para a entrada de novos programadores. Também construímos o Naiad para ser transparente o suficiente para que você veja suas partes móveis, e ele seria um ótimo sistema para ensinar alguns princípios da computação distribuída de dados paralelo.
Além do Naiad, qual a sua inovação tecnológica preferida dentro do Microsoft Research?
Apesar de haver muitas opções, neste momento estamos muito empolgados com o Roslyn, a plataforma de compilação do .NET. Ele será uma ótima ferramenta para analisar o código escrito para um sistema como o Naiad e para aplicar otimizações interessantes ao código que roda no cluster. E estamos encantados que ele é open source!
Para aprender mais, visite do Naiad no Microsoft Research ou faça o download do código-fonte no GitHub e no NuGet.org (pacotes binários).