What are reasonable specs for a cloud jhub for around 360 students/semester?


We set up a littlest jupyter hub, which was great for playing around but we needed a few tweaks so we now have a similar 1-machine set up for a class or two. There are 2-3 200 level (sophomore year) cs courses, a couple of psychology courses and maybe two other moderately intensive courses. I am guessing around 30 students per class, so perhaps a total of 30 x 6 or 360 students may need to be supported on the hub. Again ruling out any heavy use classes like machine learning or big data.

We are going to apply for time to stand this up on Azure, Amazon or Google and we need to know what we are going to ask them? About how many nodes? How many hours (with a bit of margin of error)? It would be great if there were a formula under some assumptions based on the jupyterhub team experience?


What kind of setup do you have now? Do you still use TLJH or something else? I read your comment as “we setup TLJH but now we use something else”. What did you settle on?

Have you looked at https://the-littlest-jupyterhub.readthedocs.io/en/latest/howto/admin/resource-estimation.html? It would be great to get some feedback on how well it works for you.

If you deploy a TLJH then the hardest part is figuring out what the maximum concurrent users is you will have as that sets the size of the machine you need.

If you deploy something more advanced with resources spawned on demand (like a kubernetes based hub) I’d think about how many hours I’d expect students to spend on the class and then assume that the students never overlap. So 20 students each spending 3h per week would mean paying for 60h/week of what ever instance type you use in your cluster. This is probably an upper limit as students will login at the same time and can share a node which means it would cost you less.

It would be great if you could publish data on what usage pattern you observe as I don’t think anyone has done that outside of mybinder.org (which isn’t a class room setting).