Skip to main content

Welcome to Nebari's documentation

Nebari Vision

An opinionated open source JupyterHub distribution that provides an all-in-one development and experimentation platform for teams to work efficiently and collaboratively.

Deployment, integration, and maintenance is minimized by using the Infrastructure as Code (IaC) management approach.

Nebari has a DevOps for non-DevOps people approach.

Nebari overview sequence showing deploying from yaml to cloud resources to the instance spinup selection

Components

The technology stack is an integration of the following existing open source libraries:

  • Terraform: a tool for building, changing, and versioning infrastructure.
  • Kubernetes: a cloud-agnostic orchestration system
  • Helm: a package manager for Kubernetes
  • JupyterHub: a shareable compute platform for data science
  • JupyterLab: a web-based interactive development environment for Jupyter Notebooks
  • Dask: a scalable and flexible library for parallel computing in Python
    • Dask-Gateway: a secure, multi-tenant server for managing Dask clusters
  • Keycloak: an open source identity and access management tool
  • GitHub Actions: a tool to automate, customize, and execute software development workflows in a GitHub repository.
  • traefik: for routing web/tcp traffic inside cluster

Amongst the newly created open source libraries on the tech stack are:

  • Jupyterhub SSH: brings the SSH experience to a modern cluster manager.
  • Jupyter Videochat: allows video-chat with JupyterHub peers inside JupyterLab, powered by Jitsi.
  • Conda Store: serves identical conda environments and controls its life-cycle.
  • Conda Docker: an extension to the docker concept of having declarative environments that are associated with Docker images allowing tricks and behavior that otherwise would not be allowed.
  • VS Code codeserver: built-in web editor tied to jupyterlab server

Integrations

Nebari does all the heavy lifting of integrating with common services.

Why use Nebari?

Nebari enables teams to build their own scalable compute infrastructure with:

  • Straightforward installation and maintenance controlled by a single configuration file.
  • Autoscaling JupyterHub installation deployed on one of the supported Cloud providers (AWS, GCP, DO, or Azure).
  • Option to choose from multiple compute instances.
  • Autoscaling Dask compute clusters for big data using any instance type.
  • Shell access and remote editing access (VSCode remote) through KubeSSH.
  • Shared filesystem allowing users to work on projects privately, within groups, or across the organisation.
  • Robust compute environment handling allowing both prebuilt and ad-hoc environment creation.
  • Integrated video conferencing, using Jitsi.