Progetto Apache Beam

Questa pagina contiene i dettagli di un progetto di scrittura tecnica accettato per Google Season of Docs.

Riepilogo del progetto

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

Project description

Apache Beam è una piattaforma unificata per definire le pipeline di elaborazione dei flussi e in batch. Apache Beam consente di definire un modello per rappresentare e trasformare set di dati indipendentemente da qualsiasi piattaforma di elaborazione dati specifica. Una volta definito, puoi eseguirlo su uno qualsiasi dei framework di runtime (runner) 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 su "Aggiornamento della pagina di confronto per i runner/matrice delle funzionalità". Poiché Apache Beam supporta più runner e SDK, un nuovo utente sarà confuso a scegliere tra i due. La documentazione attuale dei diversi runner offre una breve panoramica su di loro. La mia idea è di aggiungere più dettagli completi di ciascun runner nella relativa pagina della documentazione. Inoltre, vorrei aggiornare la descrizione del progetto di conteggio delle parole di esempio per aggiungere una spiegazione dettagliata. Per questo, il mio piano è provare ogni esempio di conteggio delle parole localmente nella mia macchina, 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(pochi 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 e semplice schema.

Ho intenzione di aggiungere una nuova pagina per descrivere ogni runner e fornire una narrazione descrittiva a ognuno di loro [BEAM-3220]. Da questa pagina gli utenti possono reindirizzare alla pagina della descrizione dettagliata di ogni runner e alla matrice delle funzionalità. Ho anche intenzione di aggiungere un confronto descrittivo di ciascun runner qui. Al momento utilizzo Beam NEXMark per il benchmarking dei runner Flink per la mia tesi di master. Poiché sono pienamente consapevole del benchmarking NEXMark, vorrei includere i risultati dell'analisi di ciascun runner in modalità batch e streaming qui(BEAM-2944). Inoltre, aggiornerei la documentazione di NEXMark se scopro che alcuni parametri/ configurazione sono mancanti/rimossi. Prima, quando utilizzavo Flink runner, ero bloccato perché uno dei parametri non era presente nella documentazione. Ma ora, dato che ho più familiarità con il codebase NEXMark, sarebbe più facile per me confrontare i runner e aggiungere le metriche. In questa pagina, vorrei includere un breve riepilogo della preparazione alla produzione di ogni runner.

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

Ritengo GSoD come un'opportunità per entrare nei contributi open source. Continuerò a contribuire a progetti open source, in particolare Beam, e vorrei continuare a essere un membro attivo della community. Poiché Apache Beam ha una community attiva con uno sviluppo continuo di funzionalità, penso che ci sia sempre la possibilità di migliorare la documentazione al fine di aggiornarla. Inoltre, vorrei contribuire al lavoro di sviluppo. Se ho conoscenze audio in Beam, posso anche aiutare la community degli utenti perché 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 che sta cercando di capire gli elementi interni dei sistemi di trattamento dati.
  2. Ho esperienza nel lavorare con Apache Beam e Apache Flink come utente.
  3. Ho già compreso il codebase di Apache Beam e Apache Flink in qualità di sviluppatore.
  4. Ho realizzato un progetto per confrontare diversi trave runner.
  5. Ho esperienza nella scrittura di blog tecnici per spiegare i concetti di elaborazione dei big data e dei sistemi distribuiti.
  6. Attualmente sto lavorando alla mia tesi di laurea per migliorare le prestazioni del backend di stato Apache Flink per il quale utilizzo l'implementazione NEXMark di Apache Beam 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 diversi documenti di progettazione tecnica e documentazione sul prodotto, nonché file Readme(a cui al momento non ho accesso).
  8. Scrivo la documentazione in modo che chiunque non ne abbia conoscenze precedenti la capisca a colpo d'occhio.