Apache Beam-Projekt

Diese Seite enthält die Details eines Projekts für technisches Schreiben, das für die Google-Staffel von Google Docs akzeptiert wurde.

Projektzusammenfassung

Open-Source-Organisation:
Apache Beam
Technischer Redakteur:
Sruthi Sree Kumar
Projektname:
Aktualisierung der Läufervergleichsseite / Funktionsmatrix
Projektdauer:
Standarddauer (3 Monate)

Projektbeschreibung

Apache Beam ist eine einheitliche Plattform zum Definieren von Batch- und Streamverarbeitungspipelines. Mit Apache Beam können Sie ein Modell definieren, um Datasets unabhängig von einer bestimmten Datenverarbeitungsplattform darzustellen und umzuwandeln. Nach der Definition können Sie es auf jedem der unterstützten Laufzeit-Frameworks (Runners) ausführen, darunter Apache Apex, Apache Flink, Apache Spark und Google Cloud Dataflow. Apache Beam umfasst auch verschiedene SDKs, mit denen Sie Ihre Pipeline in Programmiersprachen wie Java, Python und GO schreiben können.

Ich reiche meinen GSOD-Antrag unter „Aktualisierung der Runner-Vergleichsseite/-Funktionsmatrix“ ein. Da Apache Beam mehrere Runner und das SDK unterstützt, kann sich ein neuer Nutzer nicht zwischen ihnen entscheiden. Die aktuelle Dokumentation zu den verschiedenen Runnern bietet einen sehr kurzen Überblick über den Runner. Ich habe die Idee, ausführlichere Details zu jedem Läufer auf der entsprechenden Dokumentationsseite hinzuzufügen. Außerdem möchte ich die Beschreibung des Beispielprojekts zum Zählen von Wörtern aktualisieren, um eine detaillierte Erklärung hinzuzufügen. Dazu möchte ich jedes Beispiel zum Zählen von Wörtern lokal auf meinem Computer ausprobieren, herausfinden, ob einige Schritte fehlen, und den Prozess genauer erklären. Außerdem ist mir aufgefallen, dass die Dokumentation für die Läufer keinem Muster folgt(wenige hat einen Überblick, während andere mit der Verwendung, den Voraussetzungen oder einem zufälligen Titel beginnen). Ich werde sie alle aktualisieren, sodass sie einem einzigen einfachen Muster folgen.

Ich habe vor, eine neue Seite hinzuzufügen, auf der jeder Läufer beschrieben wird und für jeden Läufer eine Beschreibung gibt [BEAM-3220]. Von dieser Seite aus können Nutzer zur detaillierten Beschreibungsseite jedes Runners und zur Funktionsmatrix weiterleiten. Ich habe vor, hier auch einen beschreibenden Vergleich der einzelnen Läufer hinzuzufügen. Derzeit verwende ich Beam NEXMark für das Benchmarking von Flink-Runnern für meine Masterarbeit. Da ich das NEXMark-Benchmarking vollständig kenne, möchte ich hier die Benchmarking-Ergebnisse jedes Runners sowohl im Batch- als auch im Streaming-Modus(BEAM-2944) beifügen. Außerdem würde ich die NEXMark-Dokumentation aktualisieren, wenn ich feststelle, dass Parameter oder Konfigurationen fehlen oder entfernt wurden. Bevor ich den Flink-Runner verwendet habe, blieb ich anfangs hängen, da einer der Parameter in der Dokumentation fehlte. Da ich jetzt aber auch besser mit der NEXMark-Codebasis vertraut bin, wäre es für mich einfacher, die Läufer zu vergleichen und die Messwerte hinzuzufügen. Auf dieser Seite möchte ich auch eine kurze Zusammenfassung der Produktionsbereitschaft der einzelnen Läufer einfügen.

In der aktuellen Dokumentation ist die Unterstützung für klassische/portable Runner auf jeder Runner-Beschreibungsseite enthalten. Ich denke auch, dass es besser ist, sie alle an einem Ort zusammenzufassen, entweder in der Funktionsmatrix oder auf der neu hinzugefügten Beschreibungsseite. Derzeit wird die Unterstützung der Portabilität in einer separaten Google-Tabelle bereitgestellt, die ich mit der Kompatibilitätsmatrix zusammenführen möchte. https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). Im Rahmen dieser Aufgabe habe ich vor, alle in BEAM-2888 erwähnten großen/geringfügigen Korrekturen aufzunehmen.

Ich betrachte GSoD als eine Gelegenheit, Open-Source-Beiträge zu veröffentlichen. Ich werde auch weiterhin zu Open-Source-Projekten beitragen, insbesondere bei Beam, und möchte auch weiterhin ein aktives Community-Mitglied sein. Da Apache Beam eine aktive Community hat, in der kontinuierlich Funktionen entwickelt werden, denke ich, dass es immer Möglichkeiten gibt, die Dokumentation zu verbessern, um sie zu aktualisieren. Außerdem möchte ich zur Entwicklung beitragen. Wenn ich fundierte Kenntnisse in Beam habe, kann ich auch der Nutzer-Community helfen, da ich bei der Arbeit mit Beam immer Hilfe von der Community erhalten habe.

Ich bin aus folgenden Gründen die richtige Person für dieses Projekt:

  1. Ich bin ein Fan von verteilten Systemen und versuche, das Innere von Datenverarbeitungssystemen zu verstehen.
  2. Ich habe Erfahrung mit der Arbeit mit Apache Beam und Apache Flink als Nutzer.
  3. Ich habe die Codebasis Apache Beam und Apache Flink bereits als Entwickler verstanden.
  4. Ich habe ein Projekt erstellt, um verschiedene Strahlläufer zu vergleichen.
  5. Ich habe Erfahrung im Schreiben technischer Blogs, in denen Konzepte der Big-Data-Verarbeitung und verteilter Systeme erklärt werden.
  6. Derzeit arbeite ich an meiner Masterarbeit, um die Leistung des Status-Backends von Apache Flink zu verbessern, für das ich die Apache Beam NEXMark-Implementierung für das Benchmarking verwende. Außerdem habe ich an der Aktualisierung der Apache Beam-Dokumentation mitgewirkt.
  7. Da ich vier Jahre Berufserfahrung als Softwareentwickler habe, habe ich mehrere Dokumente zum technischen Design, Produktdokumentationen und Readme-Dateien(auf die ich derzeit keinen Zugriff habe) geschrieben.
  8. Ich schreibe Dokumentation so, dass sie für alle ohne Vorkenntnisse auf den ersten Blick verstanden wird.