Projet Apache Beam

Cette page contient les détails d'un projet de rédaction technique accepté pour 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 exécuteurs / de la matrice des fonctionnalités
Durée du projet:
Durée standard (3 mois)

Project description

Apache Beam est une plate-forme unifiée permettant de définir des pipelines de traitement par lot et par flux. Apache Beam vous permet de définir un modèle pour représenter et transformer des ensembles de données indépendamment de toute plate-forme de traitement des données spécifique. Une fois défini, vous pouvez l'exécuter sur n'importe quel framework d'exécution (exécuteur) compatible, y compris Apache Apex, Apache Flink, Apache Spark et Google Cloud Dataflow. Apache Beam est fourni avec différents SDK qui vous permettent d'écrire votre pipeline dans des langages de programmation tels que Java, Python et GO.

J'envoie ma candidature pour le GSOD sur "Mise à jour de la page de comparaison des exécuteurs/de la matrice des fonctionnalités". Apache Beam étant compatible avec plusieurs exécuteurs et SDK, un nouvel utilisateur ne pourra pas choisir entre eux. La documentation actuelle sur les différents exécuteurs donne un aperçu très court de celui-ci. Mon idée est d'ajouter plus de détails sur chaque exécuteur sur la page de documentation correspondante. J'aimerais également mettre à jour la description de l'exemple de projet de comptage de mots pour ajouter une explication détaillée. Pour cela, mon plan est d'essayer chaque exemple de compte de mots localement sur ma machine, de vérifier s'il manque certaines étapes et d'ajouter plus d'explications sur le processus. Une autre chose que j'ai remarquée est que la documentation pour les exécuteurs ne suit aucun schéma(peu d'entre eux ont une section de présentation, tandis que d'autres commencent par la façon d'utiliser, la condition préalable ou un titre aléatoire). Je vais tous les mettre à jour pour suivre un modèle simple.

Je prévois d'ajouter une nouvelle page pour décrire chaque coureur et fournir un commentaire descriptif à chacun d'eux [BEAM-3220]. À partir de cette page, les utilisateurs peuvent rediriger l'utilisateur vers la page de description détaillée de chaque exécuteur et vers la matrice de 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 mon thèse. Comme je connais parfaitement l'analyse comparative NEXMark, je souhaite inclure les résultats de l'analyse comparative de chaque exécuteur en mode de traitement par lot et par flux ici(BEAM-2944). Je mettrai également à jour la documentation NEXMark si je constate que des paramètres/ configurations sont manquants/supprimés. Auparavant, lorsque j'utilisais l'exécuteur Flink, j'étais bloqué au départ, car l'un des paramètres ne figurait pas dans la documentation. Mais maintenant que je suis plus à l'aise avec le code base NEXMark, il me serait plus facile de comparer les coureurs et d'ajouter les métriques. Sur cette même page, j'aimerais inclure un bref résumé du niveau de préparation en production de chaque coureur.

Dans la documentation actuelle, la prise en charge de l'exécuteur classique/portable est incluse sur la page de description de chaque exécuteur. 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 nouvelle page de description. En outre, la prise en charge de la portabilité est actuellement gérée dans une feuille Google Sheets distincte que je souhaiterais fusionner avec la matrice de compatibilité (https://docs.google.com/spreadsheets/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 le document BEAM-2888.

Je considère GSoD comme une opportunité de contribuer à l'Open Source. Je continuerai à contribuer aux projets Open Source, notamment à Beam, et j'aimerais continuer à être un membre actif de la communauté. Comme Apache Beam a une communauté active avec des fonctionnalités en cours de développement continu, je pense qu'il y a toujours un champ d'application pour améliorer la documentation pour la mettre à jour. Je voudrais également participer au travail de développement. Si je connais bien Beam, je peux également aider la communauté des utilisateurs, car j'ai toujours reçu l'aide de la communauté lorsque j'ai commencé à utiliser Beam.

Je pense être la bonne personne pour ce projet car:

  1. Je suis passionné de systèmes distribués et j'essaie de comprendre les mécanismes internes des systèmes de traitement des données.
  2. J'ai de l'expérience avec Apache Beam et Apache Flink.
  3. Je connais déjà le code base d'Apache Beam et d'Apache Flink en tant que développeur.
  4. J'ai créé un projet pour comparer différents exécuteurs Fais.
  5. J'ai de l'expérience en rédaction de blogs techniques pour expliquer les concepts du traitement big data et des systèmes distribués.
  6. Je travaille actuellement sur ma thèse de master en vue d'améliorer les performances du backend d'état Apache Flink pour lequel j'utilise l'implémentation NEXMark d'Apache Beam pour l'analyse comparative, et j'ai contribué à la mise à jour de la documentation Apache Beam.
  7. Comme j'ai quatre ans d'expérience professionnelle en tant que développeur de logiciels, j'ai rédigé plusieurs documents de conception technique, documentations produit et fichiers README(auxquels je n'ai pas accès actuellement).
  8. J'écris la documentation de manière à ce que toute personne sans connaissance préalable la comprenne au premier coup d'œil.