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

Reply via email to