Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!
Google Cloud Shell
Technically speaking, Google Cloud Shell is Jupyter/JupyterLab service. It is a always free small VM with 5GB persistent storage that Google Cloud Platform offers to its customers to experiment with Google Cloud and manage projects and resources from web browsers. However, the Google Cloud Shell can be used to run Jupyter/JupyterLab notebooks in 2 ways.
-
Google Cloud Shell comes with Cloud Shell Editor which is a cloud IDE based on Theia (which a cloud & desktop IDE framework implemented in TypeScript and is partly VSCode compatible) . With Cloud Shell Editor, Jupyter/JupyterLab notebooks can be run (if the required notebook kernel is installed).
-
You can manually install JupyterLab and launch a service.
A Cloud Shell VM is ephemeral and no system-wide change will persist beyond session end. There are 3 ways to circumvent this problem.
-
Use a custom Docker image (recommended). Please refer to container image customization for detailed instructions.
-
Use a environment customization script .
-
Install tools to your local directories which are persistent (not recommended).
GitPod
GitPod allows users to use their customized Docker images
and allow users to expose HTTP services from your workspace.
This means that if you have JupyterLab/Hub installed in your GitPod image,
you can run a JupyterLab/Hub server within your GitPod worksapce and access it from public.
Once you start a new services listing on a port,
a prompt will show up at the right-bottom corner and you can click it to visit the service.
The prompt will disappear after a few seconds or after being clicked.
You can always use command gp url port
to find the public URL of an exposed port/service.
Note that GitPod has a timeout of 30 minutes (unless you have the Unlimited Plan) if there's no activity on the GitPod IDE page. This seriously limit the usability of the JupyterLab server launched from a GitPod workspace. You will have to go back to the IDE page once for a while to make sure that your workspace won't timeout and get killed. I typically use JupyterLab launched from GitPod for ad hoc short-time tasks, e.g., writing a notebook-based article for my blog.
Noteable
Pros
- support filesystem navigation
- support different kernels in different cells in the same notebook
Cons
- no terminal support
Google Colaboratory
-
No terminal unless you hack it to run JupyterLab
-
Support root user.
-
Google Drive can be mounted.
-
Free GPU available!
Kaggle
- Jupyter notebooks only, no JupyterLab support.
- Only Python an R kernels are supported.
- GPU available for request.
DeepNote
Pros
- Allow customized Docker images.
Cons
- DeepNote uses a customized interface instead of Jupyter/Lab interface
causing
- no easy way to navigate through the file system
- no easy way to switch among different kernels
Code Ocean
Pros
- Very flexible. Seems to be a good choice.
Cons
- The pricing seems to be expensive ...
Cocalc
- The free plan is not usable as no internet access is provided for the free plan.
Binder
Pros
-
Great for temporary usages.
-
Customization of Docker iamge is supported!
Cons
- No persistent storage at this time.
Quantopian
Pros
There seems to be lots of good tutorials on Quant Fiance.
Cons
- Jupyter only and too limited features. Not usable.
Gryd
Cons
-
Supports only Jupyter but not JupyterLab/Hub.
-
Outdate Docker images and software (Python 3.6 only).
-
sudo
is not supported currently. -
Installed software does not persist.
DataQuest
Course learning only.
Authorea
Cons
-
Jupyter only.
-
sudo
not supported
YHat ScienceBox
Datalore
Not usable.
PythonAnywhere
Cons
sudo
is not supported.
Microsoft Azure Notebooks
Cons
-
Supports only Jupyter but not JupyterLab/Hub.
-
Outdate Docker images and software (Python 3.5 only).
-
sudo
is not supported currently.
Amazon SageMath
IBM Watson Studio
Deploy Your Own Public JupyterHub Server
It is very easy to deploy a Jupyter/Hub/Lab server. The difficult part is how to make your Jupyter/Hub/Lab secure. Please refer to Running a notebook server and Installing and Running Jupyter Notebooks on a Server on how to set up SSL encryption to enable HTTPS for your Jupyter/Hub/Lab server.