Проект Apache Beam

На этой странице содержится подробная информация о проекте технического написания, принятом для участия в Google Season of Docs.

Краткое описание проекта

Организация с открытым исходным кодом:
Апачский луч
Технический писатель:
Шрути Шри Кумар
Название проекта:
Обновление страницы сравнения бегунов/матрицы возможностей
Длина проекта:
Стандартная продолжительность (3 месяца)

Описание Проекта

Apache Beam — это унифицированная платформа для определения конвейеров пакетной и потоковой обработки. Apache Beam позволяет определить модель для представления и преобразования наборов данных независимо от какой-либо конкретной платформы обработки данных. После определения вы можете запустить его на любой из поддерживаемых сред выполнения (раннеров), включая Apache Apex, Apache Flink, Apache Spark и Google Cloud Dataflow. Apache Beam также поставляется с различными SDK, которые позволяют писать конвейер на таких языках программирования, как Java, Python и GO.

Я подаю заявку на участие в GSOD по теме «Обновление страницы сравнения бегунов/матрицы возможностей». Поскольку Apache Beam поддерживает несколько бегунов и SDK, новому пользователю будет сложно сделать выбор между ними. Текущая документация различных бегунов дает очень краткий обзор бегуна. Моя идея состоит в том, чтобы добавить более подробную информацию о каждом бегуне на страницу документации конкретного бегуна. Кроме того, я хотел бы обновить описание примера проекта подсчета слов, добавив подробное объяснение. Для этого я планирую опробовать каждый пример подсчета слов локально на своей машине, выяснить, не пропущены ли некоторые шаги, и добавить дополнительные пояснения к процессу. Еще одна вещь, которую я заметил, это то, что документация для бегунов не соответствует какому-либо шаблону (у некоторых есть раздел обзора, в то время как другие начинают с того, как использовать, или с предварительных условий, или с какого-то случайного названия). Я обновлю их все, чтобы они соответствовали одному простому шаблону.

Я планирую добавить новую страницу, чтобы описать каждого бегуна и предоставить описательное повествование о каждом из них[BEAM-3220]. С этой страницы пользователи могут перенаправиться на страницу подробного описания каждого бегуна и матрицу возможностей. Я также планирую добавить сюда описательное сравнение каждого бегуна. В настоящее время я использую Beam NEXMark для тестирования бегунов Flink для своей магистерской диссертации. Поскольку я полностью осведомлен о тестировании NEXMark, я хотел бы включить сюда результаты тестирования каждого бегуна как в пакетном, так и в потоковом режиме (BEAM-2944). Я также обновлю документацию NEXMark, если обнаружу, что какие-либо параметры/конфигурация отсутствуют/удалены. Раньше, когда я использовал Flink runner, я сначала застрял, так как в документации отсутствовал один из параметров. Но теперь, когда я лучше знаком с кодовой базой NEXMark, мне будет проще сравнивать бегунов и добавлять метрики. На этой же странице я хотел бы разместить краткое описание производственной готовности каждого бегуна.

В текущей документации поддержка классического/портативного бегуна включена в каждую страницу описания бегуна. Я думаю, что также лучше собрать их все в одном месте: либо в матрице возможностей, либо на недавно добавленной странице описания. Кроме того, в настоящее время поддержка переносимости поддерживается в отдельном листе Google, который я хотел бы объединить с матрицей совместимости. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). В рамках этой задачи я планирую включить все основные/незначительные исправления, упомянутые в BEAM-2888.

Я рассматриваю GSoD как возможность сделать вклад в открытый исходный код. Я буду продолжать участвовать в проектах с открытым исходным кодом, особенно в Beam, и хотел бы продолжать оставаться активным членом сообщества. Поскольку у Apache Beam активное сообщество, функции которого постоянно разрабатываются, я думаю, что всегда есть возможность улучшить документацию и сделать ее обновленной. Кроме того, я хотел бы внести свой вклад в разработку. Если у меня есть хорошие знания Beam, я также могу помочь сообществу пользователей, поскольку я всегда получал помощь от сообщества, когда начинал работать с Beam.

Я считаю, что я подходящий человек для этого проекта, потому что:

  1. Я энтузиаст распределенных систем и пытаюсь понять внутреннюю структуру систем обработки данных.
  2. У меня есть опыт работы с Apache Beam и Apache Flink в качестве пользователя.
  3. Как разработчик я уже разобрался с базой кода Apache Beam и Apache Flink.
  4. Я сделал проект по сравнению различных балочных бегунов.
  5. У меня есть опыт написания технических блогов, в которых объясняются концепции обработки больших данных и распределенных систем.
  6. В настоящее время я работаю над своей магистерской диссертацией по повышению производительности серверной части состояния Apache Flink, для которой я использую реализацию Apache Beam NEXMark для сравнительного анализа и вношу свой вклад в обновление документации Apache Beam.
  7. Поскольку у меня 4-летний опыт работы разработчиком программного обеспечения, я написал множество документов по техническому проектированию, документации по продукту и файлов Readme (к которым у меня сейчас нет доступа).
  8. Я пишу документацию таким образом, чтобы любой человек, не имеющий предварительных знаний, понял ее с первого взгляда.