Progetto Apache Beam

Questa pagina contiene i dettagli di un progetto di scrittura tecnica accettato per la stagione dei documenti Google.

Riepilogo del progetto

Organizzazione open source:
Apache Beam
Technical writer:
Sruthi sree kumar
Nome progetto:
Aggiornamento della pagina di confronto dei runner / della matrice delle funzionalità
Durata del progetto:
Durata standard (3 mesi)

Project description

Apache Beam è una piattaforma unificata per la definizione di pipeline di elaborazione sia in batch che in flussi. Apache Beam consente di definire un modello per rappresentare e trasformare i set di dati indipendentemente da qualsiasi piattaforma di elaborazione dati specifica. Una volta definito, puoi eseguirlo su uno qualsiasi dei framework di runtime (esecutori) supportati, tra cui Apache Apex, Apache Flink, Apache Spark e Google Cloud Dataflow. Apache Beam include anche diversi SDK che ti consentono di scrivere pipeline in linguaggi di programmazione come Java, python e GO.

Sto inviando la mia richiesta per il GSOD in "Aggiornamento della pagina di confronto dei runner/matrice delle funzionalità". Poiché Apache Beam supporta più runner e SDK, un nuovo utente sarà confuso a scegliere tra questi due strumenti. La documentazione attuale dei diversi runner offre una breve panoramica del runner. La mia idea è quella di aggiungere maggiori dettagli su ciascun runner sulla pagina della relativa documentazione. Inoltre, vorrei aggiornare la descrizione del progetto di conteggio delle parole di esempio per aggiungere una spiegazione dettagliata. Per questo ho in programma di provare ogni esempio di conteggio parole localmente sulla mia macchina per scoprire se mancano alcuni passaggi e aggiungere ulteriori spiegazioni sul processo. Un'altra cosa che ho notato è che la documentazione per i runner non segue alcuno schema(Few ha una sezione di panoramica, mentre altri iniziano con l'uso, il prerequisito o qualche titolo casuale). Li aggiornerò tutti in modo che seguano un unico semplice schema.

Ho intenzione di aggiungere una nuova pagina per descrivere ogni runner e fornire una narrazione descrittiva a ciascuno di loro [BEAM-3220]. Da questa pagina, gli utenti possono reindirizzare alla pagina della descrizione dettagliata di ciascun runner e alla matrice delle funzionalità. Intendo anche aggiungere un confronto descrittivo di ciascun runner qui. Attualmente utilizzo Beam NEXMark per il benchmarking dei runner Flink per la mia tesi di master. Poiché sono completamente a conoscenza del benchmarking di NEXMark, vorrei includere i risultati di benchmarking di ciascun runner in modalità batch e streaming qui(BEAM-2944). Devo anche aggiornare la documentazione di NEXMark se scopriamo che alcuni parametri/ configurazione sono mancanti/rimossi. Prima che utilizzavo Flink Runner, all'inizio ero bloccato perché uno dei parametri mancava nella documentazione. Ma ora, dato che ho più familiarità con il codebase NEXMark, sarebbe più facile confrontare i runner e aggiungere le metriche. In questa stessa pagina, vorrei includere un breve riepilogo della preparazione alla produzione di ogni runner.

Nella documentazione attuale, il supporto per il runner classico/portatile è incluso nella pagina della descrizione di ogni runner. Penso che sia anche meglio collocarle tutte in un unico posto, nella matrice delle capacità o nella pagina della descrizione appena aggiunta. Inoltre, attualmente il supporto della portabilità è disponibile in un foglio Google separato che vorrei unire alla matrice di compatibilità: https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0). Nell'ambito di questa attività, ho intenzione di includere tutte le correzioni maggiori/minori che sono menzionate in BEAM-2888.

Ritengo che GSoD sia un'opportunità per entrare nei contributi open source. Continuerò a contribuire ai progetti open source, in particolare a Beam, e vorrei continuare a essere un membro attivo della community. Poiché Apache Beam ha una community attiva con sviluppo continuo di funzionalità, penso che ci sia sempre la possibilità di migliorare la documentazione per aggiornarla. Inoltre, vorrei contribuire anche al lavoro di sviluppo. Se ho una buona conoscenza di Beam, posso anche aiutare la community degli utenti, dato che ho sempre ricevuto aiuto dalla community quando ho iniziato a usare Beam.

Credo di essere la persona giusta per questo progetto perché:

  1. Sono un appassionato di sistemi distribuiti e sto cercando di capire le caratteristiche interne dei sistemi di trattamento dati.
  2. Ho esperienza con Apache Beam e Apache Flink come utente.
  3. Ho già compreso il codebase di Apache Beam e Apache Flink come sviluppatore.
  4. Ho realizzato un progetto per confrontare diversi modelli di trave.
  5. Ho esperienza nella redazione di blog tecnici per spiegare i concetti di elaborazione di big data e sistemi distribuiti.
  6. Attualmente sto lavorando alla mia tesi di master per migliorare le prestazioni del backend dello stato Apache Flink per il quale utilizzo l'implementazione di Apache Beam NEXMark per il benchmarking e ho contribuito all'aggiornamento della documentazione di Apache Beam.
  7. Ho 4 anni di esperienza lavorativa come sviluppatore di software e ho scritto vari documenti di progettazione tecnica, documentazione del prodotto e file Readme(a cui al momento non ho accesso).
  8. Scrivo la documentazione in modo che chiunque non ne sia a conoscenza possa capirla subito.