Best Jupyter Notebook for Enterprise

5 points by spicyramen ↗ HN
I'm exploring options for our Data Science team and seems to be few Enterprise ready Notebook solutions (Sagemaker, AI Platform Notebooks, Databrick's) any suggestions/feedback for the above 3 options? *Enterprise ready means SLO, Security, Permissions integration, encryption.

14 comments

[ 3.0 ms ] story [ 41.8 ms ] thread
Check Deepnote https://deepnote.com/ they have very interesting product.
I just tried DeepNote, wow! I havent seen such a clean interface in a Jupyter Notebook for very long time. So intiituve and very easy to use, I was up in < 5 minutes with GCS + BQ integration
Do you know if Deepnote supports GPU?
Why not just use JupyterLab with GitHub? You get all those enterprise features with GitHub. And you can augment the shortcomings with auxilary tools. E.g. JupyterLab git extension & ReviewNB for notebook version control.

Disclaimer: I built ReviewNB.

First of all, we use your product and is amazing. Thanks for building it. I think JL + GitHub is just one part of the equation, I can divide it in 3 levels: Notebooks + CI, Notebook + CI/CD, Notebooks + CI/CD + Model monitoring. In first level when I'm developing, JL + GitHub, I need to provide security (Access to Datasets, tables and resources (GPU, machine type) Currently with Cloud Products I can achieve partially that. Since I have data in multiple clouds, I don't have a central place to fine tune the permissions. For now is ok, but becomes more of an admin burden where I setup with IAM access for each user.
Does your company already use Gitlab CE/EE or Github Enterprise? If so I'd just use the permissions functionality there and stick with JupyterLab or the normal Jupyter notebooks. Git will give you versioning, PRs etc. for free.
We currently have data in S3, BigQuery and GCS. The reason we have data in both clouds is because BigQuery is widely used by our DS team. Yes, we use GitHub for storing Notebooks (.ipynb) files and one of the requirements is to provide security access to different buckets in either S3 or GCS, the same happens for BigQuery, some data scientist can only access some tables/data. In Google Cloud/AWS with IAM permissions that can be solved.
We have not found something that solves our problems and is flexible enough, so we built our internal "machine learning platform" (https://iko.ai). It's not yet enterprise ready, not by a long shot (no SSO, RBAC, multitenancy, etc) as we're in the process of making it because we need it for yesterday and we're focusing on functionality to actually serve our clients.

We have a notebook experience built on top of JupyterLab because in our experience all these years profitably delivering products to large organizations, what slowed us the most wasn't the lack of better notebook stylesheets or animations in UI.

We built the following features in our product, and they might be good to look for when you shop around:

- No setup collaborative notebooks: collaborative editing on notebooks so you could do group programming and troubleshooting, see people's cursors, etc. Different images that contain the most popular libraries. We'll support fast.ai's fastbook for training.

- Long-running notebooks: pretty much fire and forget. It's super useful, I could launch twenty notebooks, see them while they're beeing executed. Log out, close the tab, come back, and see their on-going output.

- Automatic tracking for parameters, metrics, and models. We deploy our models with that, too.

- AppBooks: enable sharing interactive notebooks with stakeholders without them having to open JupyterLab, or see code.

The Long Running notebooks is a feature that we would love to have, we have been using papermill (hacky scripts) and recently I saw a blog post where Google was recommending shipping notebooks to the AI Platform training product as a job which was a good option until something fails is really hard to have our Data scientist look into logs and the context switching between leaving the Jupyterlab UI and going to the Google Cloud console is not good, how you do it?
Glad you like it. A lot of work went into focusing on essentials for a team to ship product to paying clients. We're optimizing for that and building what similar teams to ours need to execute real projects. We want at least 10x improvement (time, cognitive load, dreading to do things for fear of breaking stuff which limits experimentation).

There are also features you might like, such as automatic experiment tracking (metrics, parameters, and models). You can also deploy the automatically tracked models pretty much in one click and it'll give you a nice "REST" API endpoint to invoke your models. The plumbing for model monitoring is there, we'll add the porcelain very soon to allow users to see it.

Currently tweaking data management as well in the "Object Storage" application.

We'd love to hear more of your problems. You and your team can sign up for access and start getting work done while you either find a platform that suits you, or we become a platform that suits you. It will be sooner than you think, as we've done a lot of - non user facing - plumbing recently.

Try https://cocalc.com/ . To be more precise install your own on-premise version of cocalc using their free docker container:

https://github.com/sagemathinc/cocalc-docker

It allows you to collaborate in realtime on jupyter notebooks. It has a cool time-travel feature, a chat, latex editor, etc... And all this for free on your own server.

Thanks for sharing this, great project, I tried kernel switching and speed is quite amazing. Will take a look in detail.