Make the ExecutionService and BotsService independently instantiable
Context
This is dependent on the work done in !190 (merged) to create DataStoreInterface
, and also work to make Scheduler
able to share state as described in #184 (closed).
The two services required for running jobs are the ExecutionService and the BotsService. At the moment they must run in the same server, since two servers cannot share state. When the ability to share state exists, there is no need to enforce that these services are in the same place, and we should make their presence configurable.
Task Description
-
Allow configuring which of the ExecutionService and BotsService are provided by a given server instance -
Provide an example docker-compose file to demonstrate this functionality
Acceptance Criteria
It is possible to deploy a BuildGrid cluster with the ExecutionService and BotsService running in separate machines and/or containers.