Projeto do Apache Beam

Esta página contém os detalhes de um projeto de escrita técnica aceito para a temporada de documentos do Google.

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 executores / matriz de recursos
Duração do projeto:
Duração padrão (3 meses)

Project description

O Apache Beam é uma plataforma unificada para definir pipelines de processamento em lote e de stream. O Apache Beam permite definir um modelo para representar e transformar conjuntos de dados, seja qual for a plataforma de processamento de dados específica. Depois de definido, ele pode ser executado em qualquer um dos frameworks de tempo de execução (executores) compatíveis, que incluem Apache Apex, Apache Flink, Apache Spark e Google Cloud Dataflow. O Apache Beam também vem com diferentes SDKs que permitem a programação do pipeline em linguagens de programação, como Java, Python e GO.

Estou enviando minha inscrição para a GSOD na "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 pode ficar confuso para escolher entre eles. A documentação atual de diferentes corredores fornece uma breve visão geral do corredor. Minha ideia é adicionar mais detalhes sobre cada corredor na página de documentação específica. Além disso, gostaria de atualizar a descrição do exemplo de projeto de contagem de palavras para adicionar uma explicação detalhada. Para isso, meu plano é testar todos os exemplos 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 corredores não segue nenhum padrão(poucos têm uma seção de visão geral, enquanto outros começam com a forma de uso, com o pré-requisito ou com 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]. Nela, os usuários podem redirecionar para a página de descrição detalhada de cada executor e para 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 Flink runners para minha tese de mestrado. Como conheço completamente a comparação do NEXMark, gostaria de incluir os resultados da comparação de cada executor aqui, tanto no modo de lote quanto no modo de streaming(BEAM-2944). Também atualizaria a documentação do NEXMark se eu perceber que parâmetros ou configurações estão ausentes/removidos. Antes, quando eu estava usando o Flink runner, eu ficava travado inicialmente porque um dos parâmetros estava ausente na documentação. Mas agora, também com familiaridade com 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 executor.

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

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

Acredito que sou a pessoa certa para este projeto porque:

  1. Sou fã de sistemas distribuídos e quero entender os componentes internos dos sistemas de processamento de dados.
  2. Tenho experiência trabalhando com Apache Beam e Apache Flink como usuário.
  3. Já conheço a base de código do Apache Beam e do Apache Flink como desenvolvedor.
  4. Fiz um projeto para comparar diferentes executores 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, em que estou usando a implementação do Apache Beam NEXMark para comparativos 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 e documentação de produtos, além de arquivos Readme, aos quais não tenho acesso no momento.
  8. Eu escrevo a documentação de modo que qualquer pessoa sem conhecimento prévio consiga entendê-la imediatamente.