Projet Apache Beam

Cette page contient les détails d'un projet de rédaction technique accepté pour la Google Season of Docs.

Résumé du projet

Organisation Open Source:
Apache Beam
Rédacteur technique:
Sruthi Sree Kumar
Nom du projet:
Mise à jour de la page de comparaison des outils de compilation / de la matrice des fonctionnalités
Durée du projet:
Durée standard (trois mois)

Project description

Apache Beam est une plate-forme unifiée permettant de définir des pipelines de traitement par lots et par flux. Apache Beam vous permet de définir un modèle pour représenter et transformer des ensembles de données, quelle que soit la plate-forme de traitement des données utilisée. Une fois défini, vous pouvez l'exécuter sur l'un des frameworks d'exécution (exécuteurs) compatibles, y compris Apache Apex, Apache Flink, Apache Spark et Google Cloud Dataflow. Apache Beam est également fourni avec différents SDK qui vous permettent d'écrire votre pipeline dans des langages de programmation tels que Java, Python et GO.

Je soumets ma demande de GSOD pour la mise à jour de la page de comparaison des exécuteurs/de la matrice des fonctionnalités. Comme Apache Beam est compatible avec plusieurs exécuteurs et SDK, un nouvel utilisateur aura du mal à choisir entre eux. La documentation actuelle sur les différents exécuteurs fournit un aperçu très rapide de celui-ci. Mon idée est d'ajouter des informations plus détaillées sur chaque exécuteur sur la page de documentation correspondante. Je souhaite également modifier la description de l'exemple de projet de calcul du nombre de mots pour ajouter une explication détaillée. Pour ce faire, je prévois d'essayer chaque exemple de calcul du nombre de mots localement sur mon ordinateur, de vérifier si certaines étapes sont manquantes et d'ajouter des explications sur le processus. J'ai également remarqué que la documentation des runners ne suit aucun modèle(certains ont une section "Présentation", tandis que d'autres commencent par "Comment utiliser", "Conditions préalables" ou un titre aléatoire). Je vais les mettre à jour pour qu'elles suivent un seul modèle simple.

Je prévois d'ajouter une page pour décrire chaque coureur et fournir une narration descriptive pour chacun d'eux [BEAM-3220]. Sur cette page, les utilisateurs peuvent accéder à la page de description détaillée de chaque exécuteur et à la matrice des fonctionnalités. Je prévois également d'ajouter ici une comparaison descriptive de chaque coureur. Actuellement, j'utilise Beam NEXMark pour comparer les exécuteurs Flink dans le cadre de ma thèse de master. Je suis parfaitement au fait des benchmarks NEXMark. Je voudrais inclure ici les résultats des benchmarks de chaque exécuteur en mode batch et en mode streaming(BEAM-2944). Je vais également mettre à jour la documentation NEXMark si je constate que des paramètres/ configurations sont manquants/supprimés. Auparavant, lorsque j'utilisais le programme d'exécution Flink, je me suis retrouvé bloqué au départ, car l'un des paramètres manquait dans la documentation. Mais maintenant que je suis plus familier avec la base de code NEXMark, il me serait plus facile de comparer les exécuteurs et d'ajouter les métriques. Sur cette même page, je voudrais inclure un bref résumé de l'état de préparation de chaque exécuteur pour la production.

Dans la documentation actuelle, la prise en charge du runner classique/portable est incluse sur chaque page de description du runner. Je pense qu'il est également préférable de les regrouper au même endroit, soit dans la matrice des fonctionnalités, soit sur la page de description nouvellement ajoutée. De plus, la portabilité est actuellement gérée dans une feuille Google Sheets distincte que je souhaite fusionner avec la matrice de compatibilité : https://docs.google.com/sheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0. Dans le cadre de cette tâche, je prévois d'inclure toutes les corrections majeures/mineures mentionnées dans BEAM-2888.

Je considère la GSoD comme une opportunité de contribuer à l'Open Source. Je vais continuer à contribuer aux projets Open Source, en particulier à Beam, et je souhaite rester un membre actif de la communauté. Comme Apache Beam dispose d'une communauté active et que des fonctionnalités sont développées en continu, je pense qu'il est toujours possible d'améliorer la documentation pour la mettre à jour. Je souhaite également contribuer au travail de développement. Si j'ai de bonnes connaissances de Beam, je peux également aider la communauté des utilisateurs, car j'ai toujours reçu de l'aide de la communauté lorsque j'ai commencé à utiliser Beam.

Je pense être la personne idéale pour ce projet, car:

  1. Je suis un passionné des systèmes distribués et j'essaie de comprendre le fonctionnement interne des systèmes de traitement des données.
  2. J'ai de l'expérience dans l'utilisation d'Apache Beam et d'Apache Flink en tant qu'utilisateur.
  3. En tant que développeur, je comprends déjà la base de code Apache Beam et Apache Flink.
  4. J'ai réalisé un projet visant à comparer différents outils de suivi des faisceaux.
  5. J'ai de l'expérience dans l'écriture de blogs techniques pour expliquer les concepts du traitement big data et des systèmes distribués.
  6. Actuellement, je travaille sur ma thèse de master pour améliorer les performances du backend d'état Apache Flink, pour lequel j'utilise l'implémentation Apache Beam NEXMark à des fins de benchmarking. J'ai également contribué à la mise à jour de la documentation Apache Beam.
  7. J'ai quatre ans d'expérience en tant que développeur logiciel. J'ai rédigé plusieurs documents de conception technique, de documentation produit et de fichiers Readme(auxquels je n'ai pas accès pour le moment).
  8. J'écris la documentation de telle sorte que toute personne sans connaissances préalables la comprenne au premier coup d'œil.