coiled / feedback

A place to provide Coiled feedback
14 stars 3 forks source link

Best practice for onboarding users in a Coiled workshop #291

Closed rsignell closed 3 months ago

rsignell commented 3 months ago

I'm here at the ESIP Summer Meeting, and have decided to announce that during the Unconference session, I will be leading a workshop to show people how to run Jupyter Notebooks and fire up clusters using Coiled on ESIP's AWS account.

I have no idea how many people might show up. Could be 5 or 50. (there are 400 people here)

In the Coiled esip-lab org, I have created a new workspace called "unconf".

What's the best way to onboard a large group of people?

mrocklin commented 3 months ago

There are a few ways, but what I would probably do is to make an API token with some expiration date and just publish that on a github repository. Then all they have to do is

conda create -n coiled ...
conda activate coiled
export DASK_COILED__TOKEN=XXXX
coiled notebook start ...

If you also want them to access the web UI you could make a user like esip-2024-user with a username and password and just publish those on a github repo as well (changing the password when you're done).

This is all pretty ugly, but our experience setting everyone up live in a tutorial is that it gets kinda messy, and you end up showing them them signup process rather than the product itself (I think that you and I had a similar experience with sagemaker studio notebook last ESIP). This process should be pretty foolproof.

Another note on the above is that I made a new conda environment. A common hiccup with new users is running package sync in a messy root environment. Users often get past this with modest effort but it's not the kind of thing you'd want them to deal with in a tutorial environment I think. As a backup I'd also have a docker image ready.

Just some thoughts and one way. There are others (like sending a bunch of invite e-mails). Happy to talk through those too if you think they would be useful.

mrocklin commented 3 months ago

Unless of course maybe what you want is to show off the onboarding process (making an account, getting an API token, selecting a workspace, etc..) in which case your best bet is to have them send you e-mail addresses and invite them one by one (shouldn't be more than a few seconds per e-mail address though).

rsignell commented 3 months ago

Maybe I'll try the API TOKEN route first, and then see who wants to get invited via email?

mrocklin commented 3 months ago

That makes sense to me. They'll see things quickly from a user perspective, and then get into backend stuff only after they've seen some value.

As a heads-up, if you're planning to use file sync to move notebooks then that requires additional installation stuff, which might be hard to coordinate in a tutorial environment.

rsignell commented 3 months ago

Yeah, I'm going to avoid sync because I struggled with that also when I tried it.

I'm just going to have them clone a repo and run the notebook I showed in my ESIP talk. And then maybe try their own workflows by uploading code to the Jupyterlab (I realized it won't be persisted)

I just tried this approach with a test user (@eeholmes) and she used a terminal in a github codespace to run the setup:

conda create -n coiled -c conda-forge coiled
conda activate coiled
export DASK_COILED__TOKEN=18b82ee62xxxxxxxxxxxxxxxxxxxxxxxxx
coiled notebook start --region us-west-2 --vm-type m5.xlarge --software pangeo-notebook --workspace esip-lab

then in the Coiled-launched jupyterlab, she opened a terminal and cloned the repo:

https://github.com/fs-jbzambon/opendata-coawst.git

then she successfully ran the COAWST explore notebook (which launched a dask cluster to speed up data access)

dchudz commented 3 months ago

Sounds fun, Rich! I'd be excited to hear how it goes.

rsignell commented 3 months ago

If I create a new workspace for the workshop, do I need to recreate my software environments in that workspace?

dchudz commented 3 months ago

yes

rsignell commented 3 months ago

Workshop went well! We had 13 folks and everything worked perfectly. We were a bit confused at one point because we were getting pretty different timings until we realized that we were all using the same cluster because we were running a notebook that named the cluster.

eeholmes commented 3 months ago

Did people run from their computers? Or from something else?

On Thu, Jul 25, 2024, 17:44 rsignell @.***> wrote:

Workshop went well! We had 13 folks and everything worked perfectly. We were a bit confused at one point because we were getting pretty different timings u til we realized that we were all using the same cluster because we were running a cluster that was named in the notebook!

— Reply to this email directly, view it on GitHub https://github.com/coiled/feedback/issues/291#issuecomment-2251447816, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATNSORQHLB3WZQRIUWK75TZOFWTRAVCNFSM6AAAAABLOLPO26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJRGQ2DOOBRGY . You are receiving this because you were mentioned.Message ID: @.***>

rsignell commented 3 months ago

11 people ran directly from their computers, and 2 people used a Github codespace, which worked perfectly. And one of the codespace users was on an Ipad!

Without you pointing me toward codespaces, @eeholmes , they wouldn't have been able to participate. Thank you!

mrocklin commented 3 months ago

Thanks for the evangelism @rsignell . I appreciate it.

rsignell commented 3 months ago

You're welcome, but I didn't do it for you Matt 😄
I did it for the community! 🚀 I think it's the best way (fast, easy, cheap, supported!) for our community to use the cloud the way it should be used to enable working with large earth science data!