Proyecto de Apache Beam

Esta página contiene los detalles de un proyecto de redacción técnico aceptado para Google Season of Docs.

Resumen del proyecto

Organización de código abierto:
Apache Beam
Redactor técnico:
Sruthi Sree Kumar
Nombre del proyecto:
Actualización de la página de comparación de ejecutores / matriz de capacidades
Duración del proyecto:
Duración estándar (3 meses)

Project description

Apache Beam es una plataforma unificada para definir canalizaciones de procesamiento de transmisión y por lotes. Apache Beam te permite definir un modelo para representar y transformar conjuntos de datos, independientemente de cualquier plataforma de procesamiento de datos específica. Una vez definida, puedes ejecutarla en cualquiera de los frameworks de tiempo de ejecución compatibles (ejecutores), incluidos Apache Apex, Apache Flink, Apache Spark y Google Cloud Dataflow. Apache Beam también incluye diferentes SDK que te permiten escribir tu canalización en lenguajes de programación como Java, Python y GO.

Estoy enviando mi solicitud para el GSOD en “Actualización de la página de comparación/matriz de capacidades de los ejecutores”. Como Apache Beam admite varios ejecutores y SDK, un usuario nuevo se confundirá al elegir uno. En la documentación actual de los diferentes ejecutores, se brinda una descripción general muy breve del ejecutor. Mi idea es agregar más detalles comprensivos de cada corredor en la página de documentación específica de cada corredor. Además, me gustaría actualizar la descripción del proyecto de recuento de palabras de ejemplo para agregar una explicación detallada. Para esto, mi plan es probar cada ejemplo de recuento de palabras de forma local en mi máquina y averiguar si faltan algunos pasos y agregar más explicaciones sobre el proceso. Otro aspecto que noté es que la documentación de los corredores no sigue ningún patrón(pocas tienen una sección de descripción general, mientras que otras comienzan con cómo usarla, el prerrequisito o algún título aleatorio). Actualizaré todos los datos para que sigan un patrón sencillo único.

Planeo agregar una nueva página para describir a cada corredor y proporcionar una narración descriptiva para cada uno de ellos [BEAM-3220]. Desde esta página, los usuarios pueden redireccionar a la página de descripción detallada de cada ejecutor y a la matriz de funciones. También pienso agregar una comparación descriptiva de cada corredor aquí. Actualmente, estoy usando Beam NEXMark para comparar ejecutores de Flink para mi tesis de grado. Como conozco plenamente las comparativas de NEXMark, nos gustaría incluir los resultados de las comparativas de cada ejecutor en el modo por lotes y de transmisión aquí(BEAM-2944). También actualizaría la documentación de NEXMark si veo que falta o se quitó algún parámetro o configuración. Antes, cuando usaba Flink runner, estaba atascado al principio porque faltaba uno de los parámetros en la documentación. Pero ahora que estoy más familiarizado con la base de código NEXMark, también sería más fácil para mí comparar los ejecutores y agregar las métricas. En esta misma página, quiero incluir un breve resumen de la preparación para la producción de cada ejecutor.

En la documentación actual, la compatibilidad con el ejecutor clásico y portátil se incluye en la página de descripción de cada ejecutor. Creo que también es mejor reunirlos todos en un solo lugar, ya sea en la matriz de capacidades o en la página de descripción recién agregada. Además, por el momento, la compatibilidad con la portabilidad se mantiene en una hoja de cálculo de Google independiente que me gustaría combinar en la matriz de compatibilidad. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). Como parte de esta tarea, pienso incluir todas las correcciones mayores o menores que se mencionan en BEAM-2888.

Considero que GSoD es una oportunidad para dar un paso adelante en las contribuciones de código abierto. Seguiré contribuyendo a proyectos de código abierto, especialmente en Beam, y me gustaría continuar como miembro activo de la comunidad. Como Apache Beam tiene una comunidad activa con funciones continuas en desarrollo, creo que siempre hay un margen para mejorar la documentación para actualizarla. También me gustaría contribuir al trabajo de desarrollo. Si tengo conocimientos sólidos sobre Beam, también puedo ayudar a la comunidad de usuarios, ya que siempre recibí ayuda de la comunidad cuando empecé a usar Beam.

Creo que soy la persona indicada para este proyecto por los siguientes motivos:

  1. Soy un entusiasta de los sistemas distribuidos que intenta comprender los aspectos internos de los sistemas de procesamiento de datos.
  2. Tengo experiencia en el trabajo con Apache Beam y Apache Flink como usuario.
  3. Como desarrollador, ya comprendí la base de código Apache Beam y Apache Flink.
  4. Hice un proyecto para comparar diferentes ejecutores de haces.
  5. Tengo experiencia en la escritura de blogs técnicos para explicar conceptos de procesamiento de macrodatos y sistemas distribuidos.
  6. Actualmente, estoy trabajando en mi tesis maestra para mejorar el rendimiento del backend de estado de Apache Flink, en el que estoy usando la implementación de NEXMark de Apache Beam para la generación de comparativas. Además, contribuí a actualizar la documentación de Apache Beam.
  7. Como tengo 4 años de experiencia laboral como desarrollador de software, escribí varios documentos de diseño técnico, documentación del producto y archivos readme(a los que no tengo acceso en este momento).
  8. Escribo la documentación de manera que cualquier persona sin conocimientos previos la entienda a primera vista.