Jupyter Experiences on Microsoft Azure
Published Apr 02 2020 06:02 AM 4,204 Views

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more


Requirements which we typically receives from education customers

•Multiuser Environment typically required

•1 VM server to class >100 student (Typically 1Gb to 2Gb of memory per student

•Offline or Online usage of Jupyter

•Container or scalable compute setup for larger classes <100 Students

•CPU and GPU requirements all required depending on DataScience or ML labs

•Custom Libraries and Environments are a given these are typically python PIP Install

•Persistent storage for storage of student's files and work.

• Understanding of cost and services utilization 




So what are the options for solutions


1. JupyterLab

•Web-based interactive development environment for Jupyter notebooks, code, and data.

•Collaborative working environment for multiple users.

•JupyterLab is flexible: configure and arrange the user interface to support a wide range of workflows in data science, scientific computing, and machine learning.

•JupyterLab is extensible and modular: write plugins that add new components and integrate with existing ones.



2. Jupyter Notebooks 

The Jupyter Notebook

•Single time notebook runtime environment can use various kernels Python, R, C#, F#, Q#

•Simple environment single view per notebook

•1 user interaction with the notebook




The two options for these within the classroom is typically in the form of IaaS based VM which can we be setup in a 1:1 or 1:many fashion for providing Jupyter experiences to students. 

•IaaS based >High Admin Requirements most academics don’t want to manage infrastructure. However to enable the onboarding and setup of the environments we have produced the following templates and instructions in assisting you create a Jupyter experience for your classroom or student projects.


The Littlest Jupyter Hub

Zero to Jupyter AKS

Azure Quick Start Templates


However once you have your environment deployed there a number of tasks you or the IT team need to do in order for it to fully ready for your students. 


Admin Tasks which need to be completed for classroom environment

Setting up Storage and sharing notebooks

Distributing materials to users with nbgitpuller

Adding data to the JupyterHub

Share data with your users

Adding users to the Jupyterhub

Add / Remove admin users

Authenticate any user with a single shared password

Authenticate using GitHub Usernames

Let users choose a password when they first log in

Let users sign up with a username and password

Configuring Environments

Install conda, pip or apt packages

[Change default User Interface for users] (https://the-littlest-jupyterhub.readthedocs.io/en/latest/howto/env/notebook-interfaces.html)

Configure resources available to users

System Maintenance

Resize the resources available to your JupyterHub

Check your memory usage

Enabling Jupyter Notebook extensions

Additional Resources

Azure Resource Manger templates docs

The Littlest JupyterHub docs

VM available regions


If you simply want to give a notebook to students in least friction free way there a number of solutions. 


1. Azure Notebook http://notebooks.azure.com 


Microsoft Azure Notebooks

•FREE solution to use

•No GPU Support

•Hosted Azure Jupyter Notebooks

•Single Sign On Support for o365 and MSA accounts

•Github Association

•No Management requirements from institution


2. Azure Lab Services  https://azure.microsoft.com/en-us/services/lab-services/

Azure Lab Services


•Managed IaaS work loads where you can reconfigure and manage student environments

•Pay for just what you need, with no upfront cost

•VMs are 1:1

•So 1 user per VM

•Does not support 1 machine to a entire class

•User access is via SSH or RDP only

•No Http or Http EndPoint so users need to RDP into the VM then load Jupyter 

•GPU and CPU Support 

•Perfect for individual projects where compute resources can be managed and allocated


3. Visual Studio Code & Jupyter

VSCode IDE https://code.visualstudio.com/




•Multiplatform Support - Windows, Linux, Mac

•Can also run dedicated dev container from within the IDE
Local Execution and Remote Execution Available (i.e if GPU is needed)

•Environments as virtual dev boxes (container so you can control the environment)

•Support for Graders

Native Jupyter and Python Support https://code.visualstudio.com/docs/python/jupyter-support


4. Visual Studio Online 


Visual Studio Online https://online.visualstudio.com/

•Same Experience as VSCode within the browser

•Platform support any device with a browser

•Same plugins as VSCode Desktop

•Support for Graders

•Custom Dev Container in the cloud

•Custom Environment can be deployed to a class from a Github Repo

•Support for docker custom containers 


Version history
Last update:
‎Apr 02 2020 06:07 AM
Updated by: