Jupyter Hub

JupyterHub can be used to serve notebooks to a class of students, a corporate data science group, or a scientific research group.

Project Owner

  • David Cater (Relationship Manager, ICT)
  • Dr. Tristan Salles (School of Geoscience)

Project Credits

  • Jim Cook (ICT, TechLab)
  • Danju Visvanathan (ICT, TechLab)

Start Date

4th June 2015

Status

Delivered 10th August 2015. Used in anger through Semester 2 2015, with minimal TechLab support.

Deployed into production Semester 1, 2017 for use in Agriculture, Geosciences and other schools. A paper has been submitted for BRT 2018 to deploy at greater scale.

Problem Statement

An Integrated Deployment of the JupyterHub, a live code notebook system for use in Geosciences.

Final Brief

We delivered Jupyter hub linked to student UniKey leveraging LDAP on a Linux server in the software defined data centre.

Challenges & Learnings

  • C1. There were performance issues with Jupyter running on the server in a classroom situation.
  • L1. This is rectified by simply using a load balancer and deploying more power to meet the needs of a full class of students.
  • C2. A default JupyterHub environment does not provision accounts for users who have never logged in, meaning until they log in for the first time they cannot access the Hub. This obviously creates a vicious cycle where not being able to login, means there is no environment, means you can’t log in. This is based on the way our Red Hat image provisions home directories for SSH users.
  • L2. We took the student list and wrote a bash script to sudo to each users account, creating their environment as it went. There are better ways to solve this which was implemented for production.
  • C3. Developer time was not used effectively on this project. Limited staffing in the TechLab and multiple projects running simultaneously meant that this project wasn’t given the attention it needed.
  • L3. Extending the timeline on the delivery of this projects would have benefitted.

Languages / Framework

Python and Django

Links to Resources



Tags: