In a world of pets vs cattle one price we pay for the dynamic allocation of applications to nodes and ports is service discovery. To help folks to get up to speed with service discovery, I decided to write goTCHA (Transparent CHoreography Automation written in Go), an opinionated service discovery tool that:
- Assumes you have Mesos-DNS, for the global mapping between apps to node
IP:PORT
- Uses HAproxy per node for load balancing and routing
- Provides Marathon app specs for deployment
- Is written in Go for minimal dependencies
- Enables dynamic allocation in a transparent way, that is, no need to re-write your existing apps (be it containerized or not)