Scaling CAS with Port Reuse
In #138 (closed) we disabled the ability for BuildGrid to bind to a port it was already using. I think this was to make it easy to spot a misconfiguration as it would fail fast (which is a nice feature!).
However, when considering how one might scale the CAS service it would be useful to allow multiple instances of the service to bind to the same port. That way we could just add more and more instances of BuildGrid's CAS service on the same port to scale the usage of the service (without adding more threads).
Therefore, it would be good to have the option to enable the SO_REUSEPORT
grpc configurable at runtime (in the yaml?), ideally with a log indicating this is being done.