Proyecto de Apache Beam

Esta página contiene los detalles de un proyecto de redacción técnica aceptado para la GDOC 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 / matriz de capacidades del ejecutor
Duración del proyecto:
Duración estándar (3 meses)

Project description

Apache Beam es una plataforma unificada para definir canalizaciones de procesamiento por lotes y de transmisión. Apache Beam te permite definir un modelo para representar y transformar conjuntos de datos, independientemente de cualquier plataforma específica de procesamiento de datos. Una vez definido, puedes ejecutarlo en cualquiera de los frameworks de entorno de ejecución (ejecutores) compatibles, 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.

Envío mi solicitud para la GSOD sobre la "Actualización de la página de comparación de ejecutores o la matriz de capacidades". Como Apache Beam admite varios ejecutores y SDK, un usuario nuevo tendrá dificultades para elegir entre ellos. La documentación actual de los diferentes ejecutores proporciona una descripción general muy breve de ellos. Mi idea es agregar más detalles sobre cada ejecutor en la página de documentación de cada ejecutor. Además, me gustaría actualizar la descripción del proyecto de recuento de palabras de ejemplo para agregar una explicación detallada. Para ello, mi plan es probar cada ejemplo de recuento de palabras de forma local en mi máquina y descubrir si faltan algunos pasos y agregar más explicaciones sobre el proceso. Otro aspecto que noté es que la documentación para los ejecutores no sigue ningún patrón(pocos tienen una sección de descripción general, mientras que otros comienzan con cómo usar, los requisitos previos o algún título aleatorio). Los actualizaré para que sigan un solo patrón simple.

Planeo agregar una página nueva 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 redireccionarse a la página de descripción detallada de cada ejecutor y a la matriz de capacidades. También planeo agregar una comparación descriptiva de cada corredor aquí. Actualmente, utilizo Beam NEXMark para realizar comparativas de los ejecutores de Flink en mi tesis de maestría. Como conozco perfectamente las comparativas de NEXMark, me gustaría incluir aquí los resultados de las comparativas de cada ejecutor en modo por lotes y de transmisión(BEAM-2944). También actualizaría la documentación de NEXMark si descubriera que faltan o se quitaron parámetros o configuraciones. Antes, cuando usaba el ejecutor de Flink, me bloqueaba 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 de NEXMark, sería más fácil comparar los ejecutores y agregar las métricas. En esta misma página, me gustaría incluir un breve resumen del nivel de preparación para producción de cada ejecutor.

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

Considero que GSoD es una oportunidad para comenzar a realizar contribuciones de código abierto. Seguiré contribuyendo a proyectos de código abierto, especialmente Beam, y me gustaría continuar como un 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 y mantenerla actualizada. Además, me gustaría contribuir con el 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 comencé 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 uso de Apache Beam y Apache Flink como usuario.
  3. Como desarrollador, ya comprendí la base de código de Apache Beam y Apache Flink.
  4. Hice un proyecto para comparar diferentes ejecutores de vigas.
  5. Tengo experiencia en la redacción de blogs técnicos para explicar conceptos de procesamiento de macrodatos y sistemas distribuidos.
  6. Actualmente, estoy trabajando en mi tesis de maestría para mejorar el rendimiento del backend de estado de Apache Flink, para el que uso la implementación de Apache Beam NEXMark para realizar comparativas y 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 Léeme(a los que no tengo acceso en este momento).
  8. Escribo documentación de tal manera que cualquier persona sin conocimientos previos la entienda a primera vista.