Node groups

In Extended Deployment, the relationship between applications and the nodes on which they can be run is expressed as an intermediate construct called a node group. In concrete terms, a node group is nothing more than a set of LPARs. In a more abstract sense, a node group is a pool of LPARs with a common set of capabilities and properties such as connectivity to a given network or the capability to connect to a certain type of database. These characteristics are not explicitly defined; node group attributes are purely implicit in the WebSphere XD design.

Within a node group, one or more dynamic clusters are created. The computing power represented by a node group is divided among its dynamic cluster members. This distribution of resources is modified autonomically according to business goals to compensate for changing workload patterns.

Because a node group's set of common capabilities and properties is required by some suite of applications, a node group defines the collection of machines able to run a given application. Because the administrator now understands what is implied by participation in a given node group, the administrator can ensure that applications are deployed into node groups where they can be accommodated. The resources in a given node group are dynamically allocated according to load and policy to deliver better resource utilization, leading to cost savings. Implementing virtualization using node groups breaks the tie between application clusters and machines, and enables them to be shared among applications, thus optimizing resource utilization and simplifying overall deployment.

Before defining node groups, however, determine what kind of systems you want to include in the environment. That is, are all systems identical in terms of resources? Does an application need to be deployed on a specific set of systems because of its prerequisites? All applications can run on any node in the node group. In general, having more dynamic clusters and thus applications in a node group allows for better system utilization than having multiple node groups and fewer applications mapped to each node group.

In any case, the utilization depends on workload intensity. So you may achieve good utilization in a large node group that hosts one application with high workload, or in a small node group with a big number of applications that each receive only a small workload.

Note: Best practice is that all your nodes belong to one big node group. System utilization is optimized when the application placement controller has all nodes in just one node group.

However, this approach is resource-intensive because all applications are deployed on each node and all licences have to be purchased for the whole node group. So, depending on your environment, it might be better to balance the number of applications and the number of nodes that are part of a node group.