The Fallacy of "Microservice Infrastructures"
“Awesome, now, did someone remember to build a product?”
The problem with these advanced, complex microservice infrastructure ideas is that they presume an impossible starting point: you have a large, senior operations team, big enough to operationalize and maintain all of these moving parts, and no product or existing infrastructure whatsoever.
If you’re starting something completely new, don’t spend your time on this. Use Heroku or whatever you can to minimize your ops time, and focus on your product and customers. Yes, it’s important to prefer repeatable methods of getting stuff done, but if you already know how to write a Python or Bash script or a Makefile? Go ahead and use it.
If you are successful, more complexity will (probably) come, and that’s a great problem to have. You’ll already have some requirements and some experience and, at this rate, there will be an entirely different set of brand new tools to help manage it. Pick and choose components that fit your needs.
If you already have a big ops team, you probably already have some infrastructure—I guess you could do it the other way but… Even spinning up a brand new project, if you’re in a company with existing infra, there’s probably a solid set of knowledge on how to do things. Be boring and use what you’ve got.
There’s always room for innovation, but while you were trying to figure out Mesos and keep your Consul cluster running, a bunch of people shipped a Rails config file.