Good morning, My company is in the process of adopting Apache's open source stack, and I've been tasked with building Aurora jobs to deploy a few popular open source technologies on Mesos. Aurora is an elegant scheduler and in our estimation will met our company's needs. However, we are struggling to meet some of the configuration requirements of some of the tools we wish to deploy.
Scenario: When a distributed service is deployed, we need to programmatically determine all hosts selected for deployment and their reserved ports in order to properly configure the service. We've solved this in a few not-so-elegant ways: 1. We wrote a Process to publish host/port information to a distributed file system, block until {{instances}} were written, read the information and finally configure the service. This works, but IMO it is not an elegant solution. 2. Next, we designed a REST API for service registration (based off of the Aurora job key) and published this information to our ZooKeeper ensemble. This solution removes the dependency on a pre-configured distributed file system. However, some overhead is still required (multiple instances are necessary so as to not introduce a point of failure). Aurora jobs now require some initial configuration to be able to communicate with the service. Communication to this API is a little non-trivial because the REST service doesn't block until all information is communicated – this would be problematic due to the nature of the HTTP protocol. At this point, we realized that an even better solution might be to communicate directly to Aurora scheduler to get this data. Seeing as Aurora scripts are just Python, we could probably implement it in a reusable fashion…but I'm curious if anyone has already gone down this path? Thank you, James O