I created an entry in reddit and was asked to do similar entry here. This is the original link: https://www.reddit.com/r/hashicorp/comments/ofjelm/migrating_from_mesos/
Hi, my team would like to adopt Nomad and replace mesos. We run mesos, marathon and DCOS. We have customised schedulers that help us run custom on demand jobs. The architecture of schedulers in mesos is pretty straight forward and easy.
I would like to know where to look for writing custom schedulers in Nomad. We write custom schedulers in python for mesos. We use mesos framework (pymesos) and while it is scheduling, it is running in scheduler mode. Our requirement is not batch scheduling, we would pass job details to scheduler and it will run them in the appropriate client server with enough resources. The job itself would be extended from mesos framework, it will be running in executor mode. The framework has abstracted the communication with mesos master, we just need to implement the start, stop, scale up, scale down methods in scheduler and handle stop signals from scheduler in the executor. Further it also helps us handle other cluster level functions like what do to when the client machine goes down, when the communication with the client machine is lost etc.
I believe Nomad will have its own way of doing things and we don’t expect things to be similar too. Can we do custom scheduling in Nomad partially like we do in mesos?
The reason for moving towards Nomad is the limitations of mesos community, most best practices are kept secret with big organisation. Further the security of community version is nil in DCOS. The management of nomad clusters seem very easy too. We would also use vault, consul, terraform in future, so nomad seems very logical to get our hands on.
Thanks for reading.
I would like to know how to write custom schedulers in Nomad.