ESAP architecture brainstorm
How it will fit in with the surrounding technologies
Useful links
non-interactive
ESAP
WP3 OSSR workflows/containers repo
IAM
JupyterHub service
Data provenance
Rucio jupyterlab extension
Usable service by all vs deploy-your-own
DIRAC service
ESAP gateway
Data discovery
Compute discovery
Workflow discovery
IVOA
Rucio
notebooks
containers
cvmfs
User
Sqlite DB
(holding user cart for eg)
Batch cluster
X509 auth
IAM auth
Bare-metal VM
IAM auth
interactive
What might a Jupyter-based MVP use case look like...
Caveats/limitations:
User flow | Corresponding API requirements/other requirements �(green exists, red to do, blue workarounds) |
User logs in to ESAP via IAM | IAM integration with ESAP [done] |
User selects IVOA data, and a Rucio DID | IVOA, Rucio search functionality [done] |
User selects a Jupyterhub compute facility | Hard coded Jupyterhub deployment(s) to point to. These deployments may have to be task specific, if unable to select environments to spawn [workaround]. |
User selects a notebook via a WP3 OSSR repo | Query and select a notebook from a hard-coded list of options [workaround] Query OSSR repo (where/what would this be?) [to do] |
User sent to chosen Jupyterhub service with data/metadata about the data they have chosen (IVOA data, and/or rucio DID), and either the chosen notebook itself or a query to get the notebook. | IAM login persisted (token saved in browser? If token is client-specific, may have to log in again) [workaround] Create user server, and send payload to the server via Jupyter notebook API [todo] |
User downloads the data (and notebook if needed) and runs workflow | User environment would need
|
What might an Jupyter-based, MVP bring-compute-to-data, use case look like...
User flow | Corresponding API requirements/other requirements �(green exists, red to do, blue workarounds) |
User logs in to ESAP via IAM | IAM integration with ESAP [done] |
User selects IVOA data, and a Rucio DID | IVOA, Rucio search functionality [done] |
User selects a notebook via a WP3 OSSR repo | Query OSSR repo (where/what would this be?) [to do] |
Jupyterhub is chosen that is close to the data selected | ESAP queries Rucio API for where replicas of DID exist. [todo] Options:
|
User sent to chosen Jupyterhub service with metadata about the data they have chosen (archive specific query that has been built, and/or rucio DID), and either the chosen notebook itself or a query to get the notebook. | IAM login persisted (token saved in browser?) [workaround] Create user server, and send payload (data, metadata, notebook) to the server via Jupyter notebook API [todo] |
User downloads the data (and notebook if needed) and runs workflow | User environment would need
|
Bringing compute to the data related thoughts
Very simply...
Slightly more advanced...
Other thoughts/ideas/questions
Actions (19/04/21)