Genie est un moteur d'orchestration et d'exécution Big Data fédéré développé par Netflix.
La valeur du génie est mieux décrite en termes de problème qu'il résout.
L’infrastructure Big Data est complexe et en constante évolution.
Les consommateurs de données (Data Scientists ou autres applications) doivent franchir de nombreux obstacles pour exécuter une requête simple :
Ce qui fonctionne aujourd’hui ne fonctionnera peut-être pas demain. Le cluster a peut-être bougé, les binaires ne sont plus compatibles, etc.
Multipliez cette surcharge par le nombre de consommateurs de données, et cela représente beaucoup de temps perdu (et de chagrin !).
Les fournisseurs d’infrastructures de données sont confrontés à un autre ensemble de problèmes :
Genie est conçu pour se situer à la frontière de ces deux mondes et simplifier la vie des personnes des deux côtés.
Un data scientist peut « frotter la lampe magique » et simplement dire « Génie, exécutez la requête « Q » à l'aide du moteur SparkSQL sur les données de production ». Genie s'occupe de tous les moindres détails. Il assemble dynamiquement les binaires et les configurations nécessaires, exécute le travail, le surveille, informe l'utilisateur de son achèvement et rend les données de sortie disponibles pour une utilisation immédiate et future.
Les fournisseurs d'infrastructures Big Data travaillent avec Genie en rendant les ressources disponibles (clusters, binaires, etc.) et en intégrant la logique magique dont l'utilisateur n'a pas à se soucier : vers quel cluster une requête donnée doit-elle être acheminée ? Avec quelle version de Spark une requête donnée doit-elle être exécutée ? Cet utilisateur est-il autorisé à accéder à ces données ? etc. De plus, les détails de chaque tâche sont enregistrés pour un audit ou un débogage ultérieur.
Genie est conçu dès le départ pour être très flexible et personnalisable. Pour plus de détails, visitez la documentation officielle
Les versions Genie sont exécutées sur Travis CI ici.
Bifurquer | Construire | Couverture (coveralls.io) |
---|---|---|
maître (4.2.x) | ||
4.1.x | ||
4.0.x |
genie-app
Serveur de service Genie autonome.
genie-agent-app
Exécuteur de tâches Genie CLI autonome.
genie-client
Le client Genie interagit avec le service via l'API REST.
genie-web
La bibliothèque principale du serveur peut être réemballée pour injecter et remplacer les composants du serveur.
genie-agent
La bibliothèque d'agents principale peut être réencapsulée pour injecter et remplacer des composants.
genie-common
, genie-common-internal
, genie-common-external
Bibliothèques de composants internes partagées par les modules serveur, agent et client.
genie-proto
Messages Protobuf et définition des services gRPC partagés par le serveur et l'agent. Il ne s'agit pas d'une API publique destinée à être utilisée par d'autres clients.
genie-docs
, genie-demo
Documentation et application de démonstration.
genie-test
, genie-test-web
Classes de test et utilitaires partagés par d’autres modules.
genie-ui
Interface utilisateur JavaScript pour rechercher et visualiser des tâches, des clusters et des commandes.
genie-swagger
Configuration automatique de Swagger via Spring Fox. Ajouter à l'artefact de déploiement final du serveur à activer.
Genie publie sur Maven Central et Docker Hub
Reportez-vous à la section démo des documentations pour des exemples. Et à la section de configuration pour des instructions plus détaillées pour configurer Genie.
Le client Genie Python est hébergé dans un référentiel différent.
Pour une explication détaillée de l'architecture Genie, des cas d'utilisation, de la documentation API, des démos, des guides de déploiement et de personnalisation, et bien plus encore, visitez la documentation Genie.
Pour contacter les développeurs Genie avec des questions et des suggestions, veuillez utiliser GitHub Issues