What are sources for configuration management best practices?
Well, that's pretty broad, mostly this can boils down to two options:


Policy based management
Promise Theory


In the first one you're describing the actions you want to be done to achieve the desired state, assuming previous state of the system or testing against it specifically, in the second you're describing what you expect as resulting state of the system and your tool should take care of doing what is necessary to achieve that.

A policy based management could be made of simple scripts, doing what you want, Promise Theory tools are inherently more complex (Ansible, Chef, Puppet, Salt) but they're mostly idempotent, this means they will only change something if the actual state doesn't match the desired state.

The only question which can be given a really definitive answer out of thin air without knowing the specifics of your application/service is to the second question:

Don't reinvent the wheel, there's serious softwares for configuration management nowadays that rewriting your own would be a road of pain for less functionalities than already existing in available softwares. There's of course a learning curve whatever path you choose, but the effort to learn a maintained piece is more worthy than the effort to write your own system and maintain it on top of the application configuration you'll have to manage with it.