sverch / butter

Dang. (NOTE: This project has moved to https://github.com/getcloudless/cloudless)
Other
5 stars 0 forks source link

Create load balancer module that can dynamically update the backend servers using butter #24

Open sverch opened 6 years ago

sverch commented 6 years ago

One of the first modules should be a production ready load balancer that can dynamically discover backend servers. This is a minimum requirement for a usable load balancer.

The simplest version of this would not use any service discovery and instead could use the cloud provider's APIs to do the discovery of the backend services. So this would mean creating a module that uses butter to keep the server list up to date.

For the load balancing software, envoy proxy might be a good candidate as it supports hot restarts. It seems like this is the supported way to do that in a real deployment: https://www.envoyproxy.io/docs/envoy/latest/operations/hot_restarter. Envoy is released as a docker image: https://www.envoyproxy.io/docs/envoy/latest/start/start, so the question will be how the hot restarter interacts with that setup.

sverch commented 6 years ago

Should also look at this project from github: https://github.com/github/glb-director.

sverch commented 6 years ago

The load balancer instances should probably be fronted by: https://github.com/bitly/oauth2_proxy