BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Heron substitui Apache Storm no Twitter

Heron substitui Apache Storm no Twitter

Recentemente, o Twitter substituiu o Apache Storm por uma nova ferramenta chamada Heron, que oferece até 14 vezes mais vazão e até 10 vezes menos latência para uma topologia de contagem de palavras, além de reduzir a necessidade de hardware em um terço.

Por anos, o Twitter usou o Storm para analisar grandes quantidade de dados em tempo real. O projeto do Storm, que teve o código aberto em 2011, foi incubado pela Apache até ser transformado em um projeto de alto nível (Top Level Project) no início do ano. O Storm tem um ciclo de versões trimestral, está na versão 0.9.5 e se aproxima da aguardada versão estável 1.0. Entretanto, durante esse tempo, o Twitter trabalhou em uma nova ferramenta, denominada Heron, porque o Storm já não é capaz de satisfazer em tempo real suas necessidades de processamento.

No Twitter, as necessidades de processamento atuais podem ser sumarizados como:

  • Processar bilhões de eventos por minuto;
  • Latência abaixo de um segundo e um comportamento previsível em relação a escalabilidade;
  • Manter alta precisão de dados, resiliência durante picos e congestionamento, mesmo em cenário de falhas;
  • Fácil de depurar;
  • Simples de instalar em uma infraestrutura compartilhada.

De acordo com Karthik Ramasamy, líder de desenvolvimento do Storm/Heron no Twitter, várias opções foram consideradas com o intuito de atender as demandas atuais, dentre as quais destacam-se:

Melhorar o Storm, usar uma outra solução de código aberto ou criar uma nova.

Melhorar o Storm poderia levar muito tempo e nenhuma outra solução disponível atendia as necessidades de escalabilidade, vasão e latência. Além disso, essas outras soluções não eram compatíveis com a API do Storm, sendo necessário reescrever todas as topologias desenvolvidas previamente. Assim, a decisão foi criar o Heron, mas mantendo sua API externa compatível com a do Storm.

As topologias são instaladas em um scheduler de tarefas do tipo Aurora, que por sua vez executa cada topologia como um job formado pelos seguintes containers (cgroups): Topology Master, Stream Manager, Metrics Manager (para monitoramento de desempenho) e múltiplas instancias do Heron (spouts e bolts). Além disso, a metadata da topologia é mantida pelo ZooKeeper e o fluxo de processamento é ajustado usando um mecanismo de controle de pressão (backpressure).

Além do Aurora, o Heron pode usar outros schedulers como o YARN ou o Mesos. As instâncias executam códigos clientes escritos em Java, sendo que existe uma JVM por instancia. Os processos do Heron se comunicam através de buffers e podem existir múltiplos contêineres em uma única máquina (mais detalhes sobre a arquitetura interna do Heron podem ser encontrados no artigo Twitter Heron: Stream Processing at Scale).

O Twitter substituiu o Storm completamente, e o Heron está atualmente processando "várias dezenas de terabytes de dados e gerando bilhões tuplas como saída" a cada dia. No teste padrão de contagem de palavras (word count), o Heron "oferece entre 6 e14 vezes de melhoria de vasão, e entre 5 e 10 vezes de redução na latência de tupla", e seu uso resulta em uma redução de 3 vezes na necessidade de hardware.

Quando perguntando se o Twitter pretende abrir o código do Heron, Ramasamy disse que "não no curto prazo, mas talvez no longo prazo".

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT