Projeto do Apache Beam

Esta página contém os detalhes de um projeto de redação técnica aceito para a Google Season of Docs.

Resumo do projeto

Organização de código aberto:
Apache Beam
Redator técnico:
Sruthi Sree Kumar
Nome do projeto:
Atualização da página de comparação de corredores / matriz de recursos
Duração do projeto:
Duração padrão (três meses)

Project description

O Apache Beam é uma plataforma unificada para definir pipelines de processamento em lote e de streaming. O Apache Beam permite definir um modelo para representar e transformar conjuntos de dados, independentemente de qualquer plataforma de processamento de dados específica. Depois de definido, é possível executar o pipeline em qualquer um dos frameworks de execução com suporte (executores), incluindo o Apache Apex, o Apache Flink, o Apache Spark e o Google Cloud Dataflow. O Apache Beam também vem com diferentes SDKs que permitem escrever o pipeline em linguagens de programação como Java, Python e GO.

Estou enviando minha inscrição para o GSOD em "Atualização da página de comparação/matriz de recursos do executor". Como o Apache Beam oferece suporte a vários executores e SDK, um novo usuário não consegue escolher entre eles. A documentação atual de diferentes runners oferece uma visão geral muito breve do runner. Minha ideia é adicionar mais detalhes de cada executor na página de documentação específica. Além disso, gostaria de atualizar a descrição do projeto de exemplo de contagem de palavras para adicionar uma explicação detalhada. Para isso, meu plano é testar cada exemplo de contagem de palavras localmente na minha máquina e descobrir se algumas etapas estão faltando e adicionar mais explicações sobre o processo. Outra coisa que notei é que a documentação para os executores não segue nenhum padrão(Poucos têm uma seção de visão geral, enquanto outros começam com como usar ou com o pré-requisito ou algum título aleatório). Vou atualizar todos eles para seguir um único padrão simples.

Pretendo adicionar uma nova página para descrever cada corredor e fornecer uma narração descritiva para cada um deles[BEAM-3220]. Nessa página, os usuários podem redirecionar para a página de descrição detalhada de cada executor e a matriz de recursos. Também pretendo adicionar uma comparação descritiva de cada corredor aqui. No momento, estou usando o Beam NEXMark para comparar os executores do Flink para minha dissertação de mestrado. Como estou totalmente ciente do comparativo de mercado NEXMark, gostaria de incluir os resultados de cada executor no modo de lote e de streaming aqui(BEAM-2944). Também vou atualizar a documentação do NEXMark se descobrir que algum parâmetro/ configuração está ausente/removido. Antes, quando eu usava o Flink runner, fiquei travado inicialmente porque um dos parâmetros estava ausente na documentação. Mas agora, como também conheço mais a base de código NEXMark, seria mais fácil comparar os executores e adicionar as métricas. Nesta mesma página, gostaria de incluir um breve resumo da prontidão para produção de cada corredor.

Na documentação atual, o suporte ao runner clássico/portátil está incluído em cada página de descrição do runner. Acho que também é melhor colocá-los todos em um só lugar, seja na matriz de recursos ou na página de descrição recém-adicionada. Além disso, atualmente, o suporte à portabilidade é mantido em uma planilha do Google separada, que gostaria de mesclar à matriz de compatibilidade. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0. Como parte desta tarefa, pretendo incluir todas as correções principais/secundárias mencionadas no BEAM-2888.

Considero o GSoD uma oportunidade para contribuir com as contribuições do código aberto. Vou continuar contribuindo com projetos de código aberto, especialmente com o Beam, e gostaria de continuar como um membro ativo da comunidade. Como o Apache Beam tem uma comunidade ativa com recursos contínuos sendo desenvolvidos, acho que sempre há espaço para melhorar a documentação e mantê-la atualizada. Além disso, gostaria de contribuir com o trabalho de desenvolvimento. Se eu tiver um bom conhecimento sobre o Beam, também posso ajudar a comunidade de usuários, já que sempre recebi ajuda da comunidade quando comecei a usar o Beam.

Acredito que sou a pessoa certa para este projeto porque:

  1. Sou apaixonado por sistemas distribuídos e estou tentando entender os aspectos internos dos sistemas de processamento de dados.
  2. Tenho experiência em trabalhar com o Apache Beam e o Apache Flink como usuário.
  3. Como desenvolvedor, já entendi a base de código do Apache Beam e do Apache Flink.
  4. Fiz um projeto para comparar diferentes corredores de feixe.
  5. Tenho experiência em escrever blogs técnicos para explicar conceitos de processamento de Big Data e sistemas distribuídos.
  6. Atualmente, estou trabalhando na minha tese de mestrado para melhorar o desempenho do back-end de estado do Apache Flink, para o qual estou usando a implementação do Apache Beam NEXMark para comparação de mercado, e contribuí para atualizar a documentação do Apache Beam.
  7. Como tenho quatro anos de experiência como desenvolvedor de software, escrevi vários documentos de design técnico, documentação de produtos e arquivos Readme(aos quais não tenho acesso no momento).
  8. Eu escrevo a documentação de forma que qualquer pessoa sem conhecimento prévio a entenda de cara.