Dear All,
I wanted to post an update of the orchestration agent and consul components
of the architecture.
Orchestration Agent:
- After multiple considerations came to a conclusion to use nomad as the
container orchestration agent
- Advantages of using nomad are:
- It can execute docker/container applications with simple json
configuration file
- It can also execute java applications (so we can use MFT without
containerizing it)
- It works with SDKs in many languages and also it has simple http
client which makes it web friendly agent
- Present orchestration agent could connect to Nomad, start/stop job,
fetch existing jobs
- Orchestration agent in available in cybershuttle-server -
https://github.com/cyber-shuttle/cybershuttle-server/tree/main/orchestration-agent
Consul (message passing):
- Inspired from the architecture of MFT, used consul as the main service
in communications from server to orchestration agent
- Advantages of consul in this use case:
- We can easily keep track of all available orchestrations agents
(service discovery and availability)
- We can control access of each orchestration agent with controlled
KV store access
- It makes our server and orchestration agent decoupled which makes
huge scope for horizontal scaling when required
- Consul configurations as in this PR -
https://github.com/cyber-shuttle/cybershuttle-server/tree/main/consul
- ConsulClient of cybershuttle server in this PR -
https://github.com/cyber-shuttle/cybershuttle-server/pull/4
- As of now consul to server integration is completed
Next steps to complete the whole integration:
- Code integration of consul and orchestration agent
- Final end to end testing of operation from desktop to server to consul
to orchestration agent
Please feel free to comment or suggest.
Best Regards,
Praneeth Chityala