1. Lay a strong foundation with JupyterHub, SQL magics, and popular libraries to connect SQL users to their data and analyze it in notebooks.
2. Bring everything together in a secure and tightly integrated environment by combining JupyterHub with an enterprise gateway, using environment variables, and templatizing notebooks.
3. Take convenience to the next level by developing custom SQL magics, UI components, kernels and extensions tailored to the organization's needs.
18. 3-Tier Action Plan
18
1
2
Foundation
Lay a strong foundation with
JupyterHub, SQL Magics, &
popular libraries & extensions.
Integration
Bring everything together
in a secure & tightly
integrated environment
noteable
29. 29
2.3 More ideas for templatized notebooks
Some of the ways companies are leveraging Jupyter templates:
● Workflow orchestration
● Post-deployment validation
● Integration layer
● Environment configuration
● Training materials
noteable
30. 3
1
2
3-Tier Action Plan
30
Foundation
Lay a strong foundation with
JupyterHub, SQL Magics, &
popular libraries & extensions.
Customization
Take convenience to the next level
with custom magics & extensions
Integration
Bring everything together
in a secure & tightly
integrated environment
noteable
38. 38
3.2 Custom UI Components
Useful component libraries to get you started:
● nteract
● BlueprintJS
● … or write your own :)
noteable
39. 39
3.3 Other ideas for customization
Depending on your environment & users, you might consider:
● custom kernels
● advanced magics
● complex extensions
● deep integrations
● autocomplete & linting
noteable
40. Join the Noteable Insiders
Become a Noteable Insider at noteable.io/insider-program
Michelle Ufford
CEO
Elijah Meeks
Chief Visualization Officer
Matthew Seal
Chief Technology Officer
Carol Willing
Lead Technical Evangelist
Help us create a better SQL experience! 🙂
Meet the Noteable team
noteableSlides available at noteable.io/jupytercon
41. 1.1 Resources
41
1.1 Set up JupyterHub (or a similar multi-user hosted environment)
● JupyterHub
● JupyterHub docs
● The Littlest JupyterHub
● Zero to JupyterHub with Kubernetes
● JupyterLab and JupyterHub - Perfect Together | Carol Willing @ PyBay2018
● Configuring user environments — JupyterHub 1.1.0 documentation
noteable
42. 1.2 Resources
42
1.2 Add support for SQL Magics to your base Docker image
● ipython-sql
● SQL Magic with ipython-sql
● Jupyter Magics with SQL
● Make Jupyter/IPython Notebook even more magical with cell magic extensions!
● SQL Interface within JupyterLab
noteable
43. 1.3 Resources
43
1.3 - Pre-install popular libraries in your Jupyter environment
● Jupyter Docker Stacks
● JupyterHub - Configuring user environments
● ipython-sql
● SQLAlchemy
● Awesome Python’s Curated List of Awesome Frameworks
● Python Library: The 21 Best Libraries for Python Programmers
noteable
44. 1.4 Resources
44
1.4 - Install useful extensions for your users
● JupyterLab-SQL
● The Littlest JupyterHub - Enabling Jupyter Notebook extensions
● Adding Jupyter Notebook Extensions to a Docker Image
● Distributing Jupyter Extensions as Python Packages
● Unofficial Jupyter Notebook Extensions
● jupyterlab-extension public repos on GitHub
● The Top 47 Jupyterlab Extension Open Source Projects
● PyData Austin 2019: Customizing JupyterLab using extensions
noteable
45. 2.1 Resources
45
2.1 Secure connections in your JupyterHub with Enterprise Gateway
● Jupyter Enterprise Gateway on GitHub
● Jupyter Enterprise Gateway
● Jupyter Enterprise Gateway - Security Features
● Strata - Scaling Jupyter with Jupyter Enterprise Gateway
● Building analytical microservices powered by Jupyter Kernels - Luciano Resende & Kevin Bates
noteable
46. 2.2 Resources
46
2.2 Simplify life with simple environment variables
● Zero to JupyterHub - Set Environment Variables
● How to Use Jupyter Notebooks with Apache Spark - Setting Jupyter env variables
● Example - jupyter / docker-stacks / pyspark-notebook on GitHub
● Configuring user environments — JupyterHub 1.1.0 documentation
noteable
47. 2.3 Resources
47
2.3 Automate workflows & integrate systems using Papermill templates
● Papermill on GitHub
● Papermill docs
● Beyond Interactive: Notebook Innovation at Netflix
● Beyond Interactive, Part 2: Scheduling Notebooks at Netflix
● Introduction to Papermill
● Data Council - Notebooks as Functions with Papermill | Netflix
● Reusable Execution in Production Using Papermill (Google Cloud AI Huddle)
noteable
48. 3.1 Resources
48
3.1 Create a magical experience for SQL users with custom SQL Magics
● Creating Custom Magic Commands in Jupyter
● Creating an IPython extension with custom magic commands
● SparkMagic
● Presto Magic
noteable
49. 3.2 Resources
49
3.2 Take convenience to the next level with custom UI components
● nteract
● nteract on GitHub
● nteract component docs
● BlueprintJS
● Using JupyterLab components
● A very simple demo of interactive controls on Jupyter notebook
noteable
50. 3.3 Resources
50
3.3 Create a custom Jupyter experience tailored to your company/organization
● JupyterLab - Common Extension Points
● JupyterLab Extension Developer Guide
● How to Write a Jupyter Notebook Extension
● Example IPython magic functions for Pyspark
● Making kernels for Jupyter
noteable
Notas do Editor
Since the jupyterhub-singleuser server extends the standard Jupyter notebook server, most configuration and documentation that applies to Jupyter Notebook applies to the single-user environments. Configuration of user environments typically does not occur through JupyterHub itself, but rather through system- wide configuration of Jupyter, which is inherited by jupyterhub-singleuser.
Tip: When searching for configuration tips for JupyterHub user environments, try removing JupyterHub from your search because there are a lot more people out there configuring Jupyter than JupyterHub and the configuration is the same.