Apache Beam-Projekt

Diese Seite enthält die Details zu einem Projekt für technisches Schreiben, das für die Google-Produktsaison 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 zu transformieren. Nach der Definition können Sie sie auf jedem der unterstützten Laufzeit-Frameworks (Runner) 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 meine Bewerbung für GSOD unter „Aktualisierung der Runner-Vergleichsseite/-Funktionsmatrix“ ein. Da Apache Beam mehrere Runner und das SDK unterstützt, kann sich ein neuer Nutzer nicht zwischen den beiden entscheiden. Die aktuelle Dokumentation der verschiedenen Läufer bietet einen kurzen Überblick über den Läufer. Ich habe die Idee, auf der jeweiligen Läufer-Dokumentationsseite ausführlichere Details zu den einzelnen Läufern hinzuzufügen. Außerdem möchte ich die Beschreibung des Beispielprojekts zum Zählen der Wörter aktualisieren, um eine detaillierte Erklärung hinzuzufügen. Dazu möchte ich jedes Beispiel zum Zählen der Wörter lokal auf meinem Computer testen, herausfinden, ob einige Schritte fehlen, und den Vorgang genauer erläutern. 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 die einzelnen Läufer beschrieben werden und jeder Läufer mit einer Beschreibung versehen wird [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, um für meine Masterarbeit das Benchmarking von Flink-Runnern zu nutzen. Da ich das NEXMark-Benchmarking vollständig kenne, möchte ich die Benchmarking-Ergebnisse jedes Läufers sowohl im Batch- als auch im Streaming-Modus hier angeben(BEAM-2944). Außerdem würde ich die NEXMark-Dokumentation aktualisieren, wenn ich feststelle, dass Parameter oder Konfigurationen fehlen oder entfernt wurden. Vor der Verwendung des Flink-Runners 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 den klassischen/portablen Runner auf den einzelnen Runner-Beschreibungsseiten 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. Außerdem wird die Portabilitätsunterstützung derzeit 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 möchte ich alle in BEAM-2888 erwähnten größeren/geringfügigen Korrekturen einbeziehen.

Ich betrachte GSoD als eine Möglichkeit, Open-Source-Beiträge zu veröffentlichen. Ich werde weiterhin an Open-Source-Projekten, insbesondere Beam, mitwirken, und möchte auch in Zukunft ein aktives Community-Mitglied sein. Da Apache Beam eine aktive Community hat, in der kontinuierlich Features entwickelt werden, denke ich, dass es immer Möglichkeiten gibt, die Dokumentation zu verbessern, um sie zu aktualisieren. Außerdem möchte ich einen Beitrag zur Weiterentwicklung leisten. Wenn ich über fundierte Kenntnisse in Beam verfügt, kann ich auch der Nutzer-Community helfen. Als ich mit Beam angefangen habe, bekam ich immer Hilfe von der Community.

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

  1. Ich bin ein Fan von verteilten Systemen und möchte die internen Abläufe von Datenverarbeitungssystemen verstehen.
  2. Ich habe Erfahrung mit der Arbeit mit Apache Beam und Apache Flink als Nutzer.
  3. Ich kenne die Codebasis von Apache Beam und Apache Flink als Entwickler bereits.
  4. Ich habe ein Projekt erstellt, um verschiedene Beam Runner zu vergleichen.
  5. Ich habe Erfahrung beim Verfassen technischer Blogs, um die Konzepte der Big-Data-Verarbeitung und verteilter Systeme zu erklären.
  6. Derzeit arbeite ich an meiner Masterarbeit, um die Leistung des Apache Flink-Status-Back-Ends 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.