Platform products work in various ways to match business service (consumer) demands for resources with an available supply of resources. While a specific application manager or consumer (for example, Platform Symphony or an LSF cluster) identifies what its resource demands are, EGO is responsible for supplying those resources. EGO determines the number of resources each consumer is entitled to, takes into account a consumer’s priority and overall objectives, and then allocates the number of required resources (for example, the number of slots, virtual machines, or physical machines).
Once the consumer receives its allotted resources from EGO, the consumer applies its own rules and policies. How the consumer decides to balance its workload across the fixed resources allotted to it is not the responsibility of EGO.
So how does EGO know the demand? Administrators or developers use various EGO interfaces (such as the SDK or CLI) to tell EGO what constitutes a “demand” for more resources. When EGO identifies that there is a demand, it then distributes the required resources based on the resource plans given to it by the administrator or developer.
For all of this to happen smoothly, various components are built into EGO. Each EGO component performs a specific job. An illustrated overview of how these components fit within a larger system installation and interact with each other can be seen in the section EGO architecture. Definitions of each of the major components can be found in the section EGO components.