Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API interactivity between different nodes/file systems [draft design] #58

Open
LuiggiTenorioK opened this issue Jan 22, 2024 · 1 comment
Assignees

Comments

@LuiggiTenorioK
Copy link
Member

Until now, Autosubmit has been developed to work in distributed systems using a single distributed file system to persist the experiment data. Even so, we faced some issues when deploying it in multiple environments with no access to a common file system like when deploying multiple docker containers in k8s.

An issue that is raised in that context is the way to retrieve information or trigger actions of another experiment from another file system. Also, to retrieve information under this context, Autosubmit will need to constantly synchronize the experiments between the connected nodes to have unique experiment ids to enable the possibility of locating the experiment data. In the end, any solution to these previous issues will require strong security protocols to execute those sensitive procedures.

As a simpler alternative to avoid this overhead, we can integrate multiple nodes with their own unique environment (file system, Autosubmit version, API, GUI) having a higher-level API (I'll call it "API Beacon") that maps all the nodes and establishes a secure connection with them to execute common Autosubmit tasks. As an idea, this connection can be done by providing an API key generated from the Autosubmit API to the API Beacon.

AS_EDITO-Page-2

Notice that in this draft design, for each node/container, there is one instance of Autosubmit, API, and GUI.

For example, the sequential steps of the run experiment use case using this strategy will be:

  1. The user requests to run an experiment to the API beacon by giving the URI of the Autosubmit instance and the expid
  2. The API beacon forwards this request to the Autosubmit API securely using the previously set API key and the given URI
  3. Autosubmit API receives the request and executes autosubmit run <expid>

Notice that the "stop experiment" can be done (having the future autosubmit stop command) in the same way because the autosubmit run <expid> process will be in the same node.

@mcastril @kinow

@LuiggiTenorioK
Copy link
Member Author

@mcastril @kinow This aims to be implemented for EDITO to handle the multiple Autosubmit containers from the users, assuming SURF will need a unique interface to interact with Autosubmit experiments.

@LuiggiTenorioK LuiggiTenorioK self-assigned this Nov 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant