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.