1. A method implemented in a programming environment for software developer or application management, the method comprising: using a service template to automate configuration of individual machines that implement a distributed service, the service template comprising both a hardware profile that defines a hardware configuration of at least some of the individual machines and a workload profile that defines a configuration of a software application associated with the distributed service, the service template further specifying a health information format defining how one or more results of monitoring, during operation of the distributed service, states of one or more services or applications that are associated with the distributed service, are to be reported; receiving health information in accordance with the health information format; generating a revised service template in response to the received health information indicating a problem with at least one or the one or more services or applications that are associated with the distributed service; and automatically reconfiguring one or more of the individual machines based on the revised service template.