-
Notifications
You must be signed in to change notification settings - Fork 2
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
Development Plan #6
Comments
Thanks @JoshuaSBrown for the initial description. Here are some thoughts:
For the orchestrator, I think it will be useful to create a graph so we can detail the functionalities described above. I will try to start a draft. |
Where should authentication occur for third-party APIs? I would guess it's one of:
(ps -- my hours are backwards today due to baby... I promise I'm not usually working at this hour). |
@tskluzac, I would go with option 2 for now, and once we have our own auth model, we will move all of it into the new system. Hope you all are able to get some good hours of sleep :) |
Another dev/design-related question --- now that the agent is a daemon that 'disconnects' from its parent process, I'm wondering what should happen when stopping an agent:
The best solution to both of these problems that I can think of is to continue to have Happy to discuss further (or have someone point out that I'm misunderstanding something!) |
Can we close this issue as we are using Projects now? |
The development tasks are broken down by topic, here we will brainstorm different components of Zambeze that need to be worked on. The hardest part is defining where one topic ends and another begins so we don't tried on each others toes while developing.
Detailed descriptions will be placed in separate issues once we flesh them out.
Topics
Zambeze command-line interface
The Zambeze command line interface is a python script that the user can use to interact with the orchestrator. The orchestrator should be running in the background on the same machine as the script. When a user makes a request using the command-line interface it connects to the orchestrator and passes the message along. The command-line interface should be able to report back if there are errors connecting and fail gracefully if the orchestrator does not respond in an appropriate amount of time.
Orchestrator file parser for reading Campaign file (Scientific Workflow File)
Scientific workflows that are understood by Zambeze should follow a declarative style and be written in .json (I think that is what we agreed on). We will need to be able to read these files and ensure that the file content and keywords are understood and validated.
Orchestrator logic for Task Submission to Queue (NATS)
Once a file is read in, the orchestrator will need to know how to split these into tasks with actions. It will also need a mechanism for submitting these tasks to the NATS queue. Once a submission is made the orchestrator will need to be able listen for a response... (The details of this I am uncertain about and need to be fleshed out)
Orchestrator Abstraction for interacting with supported third-party APIs i.e. (Globus/DataFed)
When an orchestrator is assigned a task it might be required to support data movement with Globus/DataFed/Some other application, or perform some other kind of computation. An abstraction layer is needed to be able to support communication with third-party applications outside of Zamebeze.
Orchestrator bid generation
When an orchestrator sees a task in NATS that is up for grabs, it will need to pull the message and evaluate if it has the resources to satisfy the request. It then needs to submit a bid to the orchestrator that originally submitted the request - it has to do this by placing a new task "Control task" back in the queue with a plan/bid for how it can satisfy the request.
Orchestrator bid evaluation
An orchestrator that has a "Data" or "Compute" task will receive bids back from the queue (NATS). It could receive anywhere between 0 and more bids back. It needs to have logic to evaluate which bid is the best and confirm the winning bid can proceed with the assignment.
.
The text was updated successfully, but these errors were encountered: