Create a consumer tree

Goal

The consumer tree organizes consumers into a structure that makes it easy to later apply resource plans. The tree defines organizational relationships among consumers and should mirror your business structure. In this tutorial we plan out a basic business structure and then create consumers to populate the consumer tree.

At a glance

Contents include the following:

  1. Recognize the default configurations

  2. Learn about the consumer tree and its components

  3. Plan your business structure

  4. Create consumers

1. Recognize the default configurations

To help orient you, here is a list of the default resource components you see and work with in the Platform Management Console:

  • Consumer tree: “ManagementServices” (with nested child consumer “EGOManagementServices”), “SampleApplications” (with nested child consumer “EclipseSamples”), and ClusterServices (with nested child consumer “EGOClusterServices”).

    In this tutorial, we create a new branch with a new top-level consumer and add descendants (parent and child consumers) to the tree. Never remove the ManagementServices or ClusterServices branches, nor change their consumer names, when building or modifying your tree.

  • Resource groups: “ComputeHosts” (executes workload units), “InternalResourceGroup” and “ManagementHosts” (run important EGO components and services).

    In this tutorial, we work with the “ComputeHosts” resource group.

  • Resource plan (default resource group upon opening page is “ComputeHosts”): Only consumers registered to a selected resource group show; select different resource groups to modify corresponding resource plans.

    In this tutorial, we add a new parent consumer and a child consumer under the SampleApplications branch, and register them to an existing resource group.

2. Learn about the consumer tree and its components

The consumer tree identifies consumers of cluster resources, and organizes them into a manageable structure.

Component

Description

Tree

The resource distribution tree identifies consumers of the cluster resources, and organizes them into a manageable structure.

Plan (Resource plan)

The resource plan describes the relationship between the consumer tree and resource groups, and defines plans for how cluster resources are to be shared among consumers.

Consumers

A consumer in the tree represents any entity that can demand resources from the cluster. A consumer might be a business service, a business process that is a complex collection of business services, an individual user, or an entire line of business.

The consumers ManagementServices, SampleApplications, and ClusterServices, along with their sub-consumers, are installed by default.

  • ManagementServices has one sub-consumer, EGOManagementServices, which runs important system services on management hosts in the cluster. Services include derbydb, plc, purger, RS, ServiceDirector, WEBGUI, and WebServiceGateway. ManagementServices is configured to use the ManagementHosts resource group. Do not modify or delete this consumer.

  • SampleApplications has one sub-consumer, EclipseSamples.

    The SampleApplications consumer and its sub-consumer can be modified or deleted (although you want to use the provided EclipseSamples to begin using EGO right away—this is a sample consumer with registered applications that are ready to run).

  • ClusterServices is configured to use the InternalResourceGroup resource group. It has one sub-consumer, EGOClusterServices, which runs an essential RFA service (remote file access) on every host in the cluster. Do not modify or delete ClusterServices, or use it to run workload units.

Multi-level tree

Company projects are generally structured with multiple layers and components. For example, a project belongs to a department, a department to a business unit and so on. A multi-level consumer tree allows you to configure consumers in a hierarchical fashion to match your business structure.

Note:

As a best practice, restrict the number of tree levels to four.

Tree root

The root of the tree represents the entire cluster and all resources in it. Resources from the root are distributed through the tree to consumers.

Top-level consumers

The consumers attached directly to the root are called top-level consumers. The top-level consumer is the head of a consumer branch.

Leaf consumers

If a consumer has no descendants, it is called a leaf consumer. Services and applications can only be associated with leaf consumers.

Borrow and lend policies are set at this level.

Note:

As a best practice, limit leaf consumers to fewer than 20.

Branches, descendants

If a consumer in the tree has other descendants, thereby creating a branch in a multi-level tree, it is called a branch consumer. Branch consumers exist to redistribute resources down the branch to their descendants.

Descendants of a branch consumer may also have descendants, thereby becoming branch consumers themselves. Every branch in the tree ends with a leaf consumer.

Parent

A consumer containing another consumer (a "child"). A parent can contain a child consumer, or be the child of another parent consumer.

Sibling

Two or more consumers sharing the same parent consumer.

Child, sub-consumer

A consumer nested within another consumer (a "parent"). A child (or sub-consumer) of one parent can be the parent to another nested child. A leaf consumer is always a child at the end of the branch.

Consumer administrators

For ease of management, you can create consumer administrators for top-level consumers in a multi-level tree. These users can change the plan for lower-level consumers on their branch (descendants), without requiring cluster administrator permissions. Only a cluster administrator can change the plan for top-level consumers.

ClusterServices consumer

The special ClusterServices consumer is a built-in top-level consumer that uses the built-in InternalResourceGroup resource group and runs necessary EGO components. It contains one descendant, EGOClusterServices, and is allocated a certain number of slots by default. Do not modify this consumer or use it to run workload units.

ManagementServices consumer

The special ManagementServices consumer is a built-in top-level consumer that uses the built-in ManagementHosts resource group and runs necessary EGO components. It contains one descendant, EGOManagementServices. Do not modify this consumer or use it to run workload units.

SampleApplications consumer

This is an out-of-box sample consumer with registered applications that are ready to run (if you choose to install and run the SDK samples). It contains one descendant, EclipseSamples.

3. Plan your business structure

The choice of consumers and the consumer hierarchy should reflect long-term business goals because it can be complicated to modify the tree. Before adding consumers to your tree, you need to map out the business structure you wish to reflect in your consumer tree.

For example, top-level business processes (or perhaps departments) become top-level consumers, while the lowest area of business becomes a leaf consumer. It is at the leaf level where you register such things as services or other application managers.

Out-of-the-box you have some built-in consumers that run necessary cluster services (ManagementServices and ClusterServices). You also have a SampleApplications consumer, used by the Sample client applications included in the EGO SDK.

General steps and considerations in mapping out a business structure include the following:

  1. Map out your business structure by hand, restricting the number of levels to four.

  2. Decide if any branches (top-level consumers) in your tree do not need to consume cluster resources, and then remove them from your diagram.

  3. Prioritize your business processes, expecting that the highest priority process receive resources first when needed.

  4. Ensure that your business structure makes a distinction that parallels how you want to manage and distribute your resources. You may want to break out special projects that need dedicated or specialized hosts.

  5. Prioritize all your lower level business areas (leaf consumers) relative to other leaf consumers on the same branch.

Once mapped, a completed business structure might look like this:

4. Create consumers

You must be logged in as a cluster administrator and you should have already added most of your hosts to the cluster.

A consumer represents an entity that can demand resources from the cluster. A consumer might be a business service, a business process that is a complex collection of business services, an individual user, or an entire line of business.

  1. Click Consumers > Consumers & Plans > Consumers.

    The out-of-box consumers in your tree display (ManagementServices, SampleApplications, and ClusterServices).

  2. If not already highlighted, select the tree root in the consumer tree.

  3. From the Global Actions list, select Create a Consumer.

  4. Fill in the consumer properties.

    1. Specify a name for your new top-level consumer.

    2. Choose one or more administrators for this consumer.

      Specified administrators automatically become administrators for any other consumers created on this branch. You cannot add a cluster administrator user account to the consumer administrator list, as this is already configured by default.

    3. Specify zero, one, or more users for this consumer.

    4. Specify the workload execution user account (the OS account under which workload units run).

      Windows accounts should include a domain name.

      If you specify a Windows user account that has not already been configured, you have to log on to EGO as the cluster administrator and then run egosh ego execpasswd before the execution user can run an activity without exiting.

    5. Specify one or more resource groups this consumer should have access to.

      Only the resource groups specified by this consumer's parent are available for selection. If you have not modified your resource groups, simply keep the default resource groups that are already checked.

    6. Leave the Reclaim behavior section blank.

      Reclaim behavior is an advanced feature and must be coordinated with the resource distribution plan settings.

    7. Check the box Rebalance when time intervals change.

      This ensures that when your resource plan changes according to set time intervals, that originally configured share ratios, allocations, and lend/borrow policies are reapplied and enforced across all consumer branches in the consumer tree.

  5. Click Create.

  6. From the consumer tree, select the new consumer.

  7. From the Global Actions list, select Create a Consumer.

  8. Fill in the consumer properties for a new leaf consumer (child to the new top-level parent you just created), repeating step 4.

You have now created a new branch in your tree (a new top-level consumer), along with a sub-consumer (new leaf consumer).

If you have services or a Platform clustered application manager (such as Platform Symphony), you can now register them to the leaf consumer.