4.4 Policy Management

Policies are the core control system across the Orchestrator Server. Jobs can be written to change the configuration and behavior of policies, such as pooling of dynamic and virtual resources, managing system loads, monitoring and controlling user quotas, controlling priorities of resources, scheduling jobs and resources, controling failover operations, and other functions.

Figure 4-7 Managing Policies

Policies are XML-based files that aggregate resource facts and constraints used to control resources. This provides an extensible and highly flexible system that can covers a wide range of user and resource demands.

Policies are used to enforce quotas, job queuing, resource restrictions, permissions, etc. They can be set on all objects. The policy example below constrains a job to limit the number of running jobs to a defined value, but exempts certain users from this limit. All of the jobs that attempt to exceed the limit are queued until the running jobs count decreases and the constraint passes:

<policy>
    <constraint type="start" reason="too busy">
        <or>
            <lt fact="job.instances.active" value="5" />
            <eq fact="user.name" value="canary" />
        </or>
    </constraint>
</policy>

As illustrated in the following figure, policies can be based on goals, entitlements, quotas, and other factors, all of which are controlled by jobs.

Figure 4-8 Policy Types and Examples

For more information about policies, see Section 2.2.2, Policy-Based Management. See also Section 7.7, Working with Facts and Constraints.