Skip to content

Instantly share code, notes, and snippets.

@etoews
Last active April 22, 2016 20:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save etoews/e168c0444c93a7c67940 to your computer and use it in GitHub Desktop.
Save etoews/e168c0444c93a7c67940 to your computer and use it in GitHub Desktop.
Deploy an interactive data science environment with JupyterHub on Docker Swarm

Title

Deploy an interactive data science environment with JupyterHub on Docker Swarm

Description

Deploy an interactive data science environment and share documents that contain live code by taking advantage of Docker and Docker Swarm to deploy Jupyter Notebook servers with JupyterHub.

Abstract

Deploy an interactive data science environment and share documents that contain live code by taking advantage of Docker and Docker Swarm to deploy Jupyter Notebook servers with JupyterHub.

Docker allows you to package an application and its dependencies into an image that can run in containers on any Linux server. You can use Docker Swarm to run containers across a distributed cluster, which allows you to scale out your application as if it were running on a single, huge computer. To get up and running in minutes we'll be using Carina, a hosted Docker Swarm environment.

We'll deploy Jupyter Notebook servers with JupyterHub to put this distributed development stack into practice.

The Jupyter Notebook server is a web application that allows you to create and share documents that contain live code, equations, visualizations, and explanatory text. That makes it an excellent environment for teaching without requiring students to install anything. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning, and much more. JupyterHub is a multi-user server that manages and proxies multiple instances the Notebook server enabling centralized deployments in companies, university classrooms, and research labs.

Outline

  1. Setup (10 min)
  2. Docker basics (30 min)
  3. Docker Swarm fundamentals (20 min)
  4. Carina (30 min)
  5. BREAK (15 min)
  6. JupyterHub basics (30 min)
  7. JupyterHub on Carina (40 min)
  8. Wrap up (5 min)

Prerequisites

Participants must be comfortable using the command line interface in their operating system. For example, Terminal in Mac OS X or Linux and Command Prompt/PowerShell in Windows.

A GitHub account. Sign up by going to github.com. This account is completely free. No credit card is necessary at any point.

A Carina account. Sign up by going to getcarina.com. This account is completely free. No credit card is necessary at any point. A mobile phone is necessary to receive an SMS confirmation code.

Audience

Anyone interested in providing a Jupyter/JupyterHub environment for users or those simply interested in learning more about deploying a Python application.

Objectives

The workshop participants will learn will learn Docker basics and Docker Swarm fundamentals. To exercise these fundamentals the participants will deploy JupyterHub on Carina, a hosted Docker Swarm environment. Along the way they'll also gain a better understanding of Jupyter, an open source web application that allows you to create and share documents that contain live code, equations, visualizations, and explanatory text.

Python Level

Novice

Domain Level

Intermediate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment