Using Chef Server for management sort of tasks

I understand Chef Server automates the configuration and deployment of various nodes in an organization. I remember reading or watching somewhere that it is a pull based mechanism where nodes check in with the server and check for updates, etc. This is to keep the server thin.

But I also read that there is a push job available so that the server can push updates or accomplish tasks on the node.

Here is the question please:
We want to be able to stop and start services such as IIS Web service on the nodes. It seems we use Chef Server and push job to restart services on the nodes. Question is, is this sort of push based usage of Chef Server against any recommendation of a typical Chef Server usage? What is the guidance in this regards? Should we use push jobs and Chef Server to restart services on nodes or use some other approach that does not involve Chef Server. Note that we will still have the Chef Server managing the nodes where the nodes will be checking in and getting updates, etc. and use Chef Server for compliance, etc.


When do you want to restart the services? When there is a change on some configuration files or a new release is dropped? Or you simply want to have an centralized control?