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