Partage des blocs-notes Jupyter au sein d'une équipe


22

Je voudrais mettre en place un serveur qui pourrait prendre en charge une équipe de science des données de la manière suivante: être un point central pour le stockage, la gestion des versions, le partage et éventuellement l'exécution des blocs-notes Jupyter.

Quelques propriétés souhaitées:

  1. Différents utilisateurs peuvent accéder au serveur et ouvrir et exécuter des blocs-notes qui ont été stockés par eux ou par d'autres membres de l'équipe. La question intéressante ici est quel serait le comportement si l'utilisateur X exécute des cellules dans un cahier créé par l'utilisateur Y. Je suppose que le cahier ne doit PAS être modifié:
  2. La solution doit être auto-hébergée.
  3. Les ordinateurs portables doivent être stockés sur le serveur ou sur Google Drive ou sur une instance auto-hébergée de owncloud.
  4. (Bonus) Les ordinateurs portables seront sous contrôle de version de git (git peut être auto-hébergé. Ne peut pas être lié à GitHub ou quelque chose de ce genre).

J'ai regardé JupyterHub et Binder . Avec le premier, je ne comprenais pas comment autoriser l'accès entre utilisateurs. Ce dernier ne semble prendre en charge GitHub que comme stockage des ordinateurs portables.

Avez-vous de l'expérience avec l'une ou l'autre des solutions?


Kaggle a annoncé un système qui pourrait être ce que vous voulez.
Ricardo Cruz

1
JupiterHub est exactement pour cette proposition.
dannyeuu

@dannyeuu Je suppose que vous vouliez dire JupyterHub, non? Est-il possible de partager des cahiers entre utilisateurs?
Dror Atariah

Non, chaque utilisateur a une instance distincte de Jupyter générée. AFAIK, vous ne pouvez pas facilement partager des cahiers.
Lukasz Tracewski

Google Colaboratory répond définitivement à l'exigence 3.
Leponzo

Réponses:


2

Airbnb a récemment ouvert son référentiel interne de connaissances en science des données: https://github.com/airbnb/knowledge-repo

D'après son fichier Lisez-moi, il semble qu'il puisse s'adapter à votre cas d'utilisation:

Le projet de référentiel de connaissances vise à faciliter le partage des connaissances entre les scientifiques des données et d'autres rôles techniques en utilisant des formats de données et des outils qui ont du sens dans ces professions. Il fournit divers magasins de données (et des utilitaires pour les gérer) pour les "postes de connaissances", avec un accent particulier sur les blocs-notes (R Markdown et Jupyter / iPython Notebook) pour mieux promouvoir la recherche reproductible.

Il y a aussi un article de blog commentant sa motivation.


2

JupyterHub ne fournit pas de système de contrôle de version et ne facilite pas le partage des ordinateurs portables. Vous avez mentionné vous-même la limitation de Binder.

Essayez Zeppelin . La version 0.7 devrait sortir dans quelques jours.

  • Comme vous pouvez le voir sur la feuille de route , cette version offre des fonctionnalités "d'entreprise" qui sont exactement sur la collaboration.
  • Le système de contrôle de version (git) est intégré.
  • Il est auto-hébergé.

En substance, je pense qu'il répond à toutes les exigences que vous avez publiées. En plus de cela, il offre des capacités de visualisation plus riches et une pléthore d'autres fonctionnalités (fonctionne avec Shiro, Knox, Kerberos - sécurisé Spark n'importe qui?).


0

La seule solution auto-hébergée que je connaisse est la configuration payante du cloud d'Anaconda Enterprise, https://anaconda.org/about . Les autres solutions que je connais ne sont pas auto-hébergeables!


0

N'est- ce pas solution assez bonne?

Vous pouvez protéger l'accès avec ssh, et les fichiers hébergés peuvent être le référentiel git que vous souhaitez, avec différents accès utilisateur Linux (ou autre). Vous aurez besoin de votre propre serveur.


0

Ce que j'ai trouvé - le partage de cahiers pour les scientifiques des données n'est pas un format souhaitable pour la communication. Beaucoup d'entre eux préfèrent l'IDE comme Spider / RStudio ou tout simplement un éditeur de texte (je connais quelques scientifiques de données qui l'utilisent vi).

Vous pouvez simplement partager du code par votre contrôle de source et des données par des stockages cloud. Cela augmentera la flexibilité.

J'ai récemment ouvert un outil qui combine le code, les données et les dépendances entre les données et le code dans un environnement unique et rend votre projet de science des données reproductible: DVC ou dataversioncontrol.com (il y a un tutoriel).

Avec l'outil DVC, vous pouvez simplement partager votre projet par Git, synchroniser les données avec S3 par une seule commande DVC. Si certains de vos scientifiques des données décident de modifier le code à n'importe quelle étape de votre projet, le résultat final pourrait être facilement reproduit par une seule commande dvc repro data/target_metrics.txt.


0

Domino Data Lab propose l'hébergement local, SaaS et VPC (Jupyter, Zeppelin, RStudio), l'intégration git, le calcul évolutif, les modèles d'environnement et bien d'autres choses utiles. Les offres de locaux / VPC peuvent être excessives et trop chères si vous êtes une petite équipe, mais les plans SaaS sont à un prix assez raisonnable.

[Divulgation complète: je suis un ancien employé de Domino]

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.