Skip to main content

Management of QHub on Cloud Infrastructure

Project description

QHub Cloud

Automated data science platform. From JupyterHub to Cloud environments with Dask.

PyPI version

QHub is an open source tool that enables users to build and maintain cost-effective and scalable compute/data science platforms on-premises or on cloud providers with minimal DevOps experience.

This repository details the QHub Cloud version.

QHub On-Prem

The on-premises version of QHub is based on OpenHPC.

NOTE: The tool is currently under development. Curious? Check out the Qhub On-Prem repository.

QHub Cloud

The cloud version of QHub is built using Terraform, Helm, and GitHub Actions. Terraform handles the build, change, and versioning of the infrastructure. Helm helps to define, install, and manage Kubernetes. GitHub Actions is used to automatically create commits when the configuration file (qhub-config.yaml) is rendered, as well as to kick of the deployment action.

QHub aims to abstract all these complexities for our users. Hence, it is not necessary to know any of the above mentioned technologies to have your project successfully deployed.

TLDR: If you know GitHub and feel comfortable generating and using API keys, you should have all it takes to deploy and maintain your system without the need for a dedicated DevOps team. No Kubernetes, no Terraform, no Helm.

Cloud Providers

QHub offers out-of-the-box support for Digital Ocean, Amazon AWS and GCP. Support for Microsoft Azure will be added soon.

image

For more details, check out the release blog post.

Installation

Pre-requisites

  • QHub is supported by macOS and Linux operating systems (Windows is NOT currently supported
  • Compatible with Python 3.6+. New to Python? We recommend using Anaconda.
  • Adoption of virtual environments (conda, pipenv or venv) is also encouraged.

Install

To install QHub run:

  • conda:

    conda install -c conda-forge qhub
    
  • or pip:

    pip install qhub
    

Once finished, you can check QHub's version (and additional CLI args) by typing:

qhub --help

If successful, the CLI output will be similar to the following:

usage: qhub [-h] [-v] {deploy,render,init,validate} ...

QHub command line

positional arguments:
  {deploy,render,init,validate}
                        QHub Ops - 0.1.21

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         QHub Ops version

Usage

QHub requires the setting of environment variables to automate the deployments fully. For details on how to obtain those variables, check the Step-by-Step guide in the docs.

Once all the necessary credentials are gathered and set as UNIX environment variables, QHub can be deployed in under 20 minutes using:

qhub init   ... # generates initial config file and optionally automates deployment steps
qhub render ... # creates the Terraform config module
qhub deploy ... # creates and configures the cloud infrastructure

Questions?

We separate the queries for QHub into:

  • GitHub Discussions used to raise discussions about a subject, such as: "What is the recommended way to do X with QHub?"
  • Issues for queries, bug reporting, feature requests, documentation, etc.

We work around the clock to make QHub Cloud more excellent. Which implies that sometimes your query might take a while to get a reply. We apologise in advance and ask you to please, be patient.

Developer

To install the latest developer version use:

pip install git+https://github.com/Quansight/qhub.git

Contributions

Thinking about contributing? Check out our Contribution Guidelines.

License

QHub is BSD3 licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qhub-0.2.2.tar.gz (34.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page