Building Your Tree

Goal

Setting up a basic consumer tree that mirrors your business structure vastly increases your ability to manage your resources efficiently. By following the steps below, you gain an understanding of a consumer tree, consumers, and how to plan for the future.

Description

You have recently installed your cluster and have not yet created consumers, modified the resource plan, or modified, removed, or added resource groups. You want to understand what your consumer tree does and how you should build it.

At a glance

  1. Gather the facts

  2. How your business structure maps to your tree

  3. About the consumer tree

  4. Recognize the default configurations

  5. Create your consumers

  6. How you are prepared

Gather the facts

Before you begin to create your consumers and build your tree, you need to know how you want to control your cluster resources. To begin the process, you need to map out your current business structure.

  1. Map out your business structure by hand.

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

    For example, your business structure might look like this:

  2. Prune your tree.

    Once you have a detailed diagram of your company structure, decide if any branches of your tree do not need to consume cluster resources, and remove them from your diagram.

  3. Prioritize your business processes.
    1. For each top-level business process, decide which areas should receive resources first when they need them.

      If I decide that QA should have priority over everything else, and Finance likely needs resources with less urgency, I might set the order like this:

      Keep in mind that you want to make sure 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.

      Note:

      Your business structure and its hierarchy should reflect long-term business goals because it can be complicated to modify the tree later on.

    2. Prioritize all your lower level business areas relative to other leaf consumers from the same branch (siblings).

You now have the basic planning information that you are going to use to create your consumer tree.

How your business structure maps to your tree

The business structure you mapped out above becomes the template to create a consumer tree.

The top-level business processes become top-level consumers.

The lowest area of business becomes a leaf consumer and this is the consumer location where you register such things as services or other application managers.

About the consumer tree

The consumer tree organizes consumers into a structure that makes it easy to apply resource plans.

Overview

The consumer tree is closely related to the resource plan. The plan cannot be defined without the tree.

The tree only defines organizational relationships among consumers, while the plan defines resource allocation.

The choice of consumers and their hierarchy should reflect long-term business goals because it can be complicated to modify the tree. To make the system adjust to short-term business changes, you can modify the users associated with a consumer, or the resource plans defined in the plan.


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.


Graphical description

Recognize the default configurations

The default resource components you see and work with in the Platform Management Console let you quickly and easily start using your cluster to run work.

  • Consumers:
    • ManagementServices (with nested child consumer EGOManagementServices)

    • SampleApplications (with nested child consumer EclipseSamples)

    • ClusterServices (with nested child consumer EGOClusterServices)

    Never remove the ManagementServices or ClusterServices branches, or change their consumer names, when building or modifying your tree.

Create your consumers

You have created a diagram mapping out your business structure. You have read the descriptions of the parts of the tree and understand how they interact. You are logged on to the Platform Management Console as a cluster administrator.

It is difficult to reorganize your tree structure once you have created it, so preparation and planning are key. You need to create a consumer for each label on your business structure that you created above. If you have created user accounts and know who the consumer administrator is for each top-level consumer, you can specify those user accounts during this procedure. If not, you can assign consumer administrators later.

  1. Click Consumers > Consumers & Plans > Consumers.

    A list of existing top-level consumers displays. By default, you have ManagementServices, SampleApplications, and ClusterServices.

  2. Create a consumer for your most important top-level business area.

    Use the plan you have already laid out and create a consumer with the name of that area. From the example above, the first consumer is "QA".

    1. Select Global Actions > Create a Consumer.
    2. Specify the name for your most important consumer.

      The most important top-level consumer in the plan above is “QA”.

    3. If you want, specify administrators and users, or assign them later.
    4. Specify an OS user account associated with this consumer.
    5. Leave the default resource groups selected.

      If you have already created more resource groups or replaced ComputeHosts with others, select as many as you would like available throughout this branch of the tree. If you do not select ManagementHosts and InternalResourceGroup resource group plus at least one other group, you have insufficient resources to run your applications on this entire branch.

    6. Leave the Reclaim behavior section blank.

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

    7. For all consumers (except for those in the ManagementHosts and InternalResourceGroup resource groups), ensure the box Rebalance when time intervals change is checked within individual Consumer Properties dialog boxes.

      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.

    8. Click Create.
  3. In the order of the priorities you have already established, create the rest of your top-level consumers.

    For example, following the plan above, create Development, Research, and then Finance.

  4. Once you have all your top-level consumers in the order that you want, in the Platform Management Console use the tree to navigate to your first top-level consumer (for example, “QA”).
  5. Create all the sub-consumers for the most important top-level consumer (for example, “QA”) in the order that you have prioritized them.
  6. Navigate to each sub-consumer and create required leaf consumers.
  7. Repeat this process until each branch of the tree is complete and matches the plan you made.

The final consumer tree follows the same structure as the business structure.

Tip:

Do not name any two consumers with the same name. In the example below, the number “2” was added to the second consumer named “General” to distinguish them.

How you are prepared

Now that you have a consumer tree that mirrors your business structure and is ordered according to the most important areas, you are prepared to go register applications to leaf consumers and customize your resource plan.

You are also ready to add user accounts and assign administrators to consumers.