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.
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
- traefik-forward-auth: for single sign on and easy securing of web applications
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.
- Prefect - workflow management
- ClearML - machine learning experiment tracking and analysis
- Prometheus - cluster monitoring
- Grafana - cluster monitoring visualizations
- CDS Dashboards - shared dashboarding across users
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.