A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing a distributed multi-tiered computing (DMC) environment, comprising:
- obtaining, by a global controller, a DMC environment management request from a user for application provisioning, wherein the DMC environment management request comprises a user identifier and a personal identification number (PIN);
- and
- in response to obtaining the request:
- authenticating the DMC environment management request, wherein authenticating comprises verifying the user associated with the request by comparing the user identifier and the PIN to a list of registered users and PINs included in the global controller;
- making a first determination that the DMC environment management request is a create request by searching a manifest of the DMC environment management request for a request directive, wherein the create request is associated with provisioning an application in the DMC environment;
- in response to the first determination:
- identifying application tasks associated with the create request specified in the manifest, wherein the application tasks are associated with the application to be provisioned;
- identifying target domains for the application tasks using the manifest and capability information associated with domains included in the DMC environment, wherein for each application task the global controller identifies a target domain that satisfies scheduling requirements in the manifest, and wherein the scheduling requirements comprise user specified domain types, hardware requirements, and geographical requirements;
- selecting scheduling policies for the target domains based on the manifest, the scheduling requirements, current load information of local controllers of the target domains, and predictive load information of the local controllers of the target domains, wherein:
- the scheduling policies comprise makespan minimization, scheduling efficiency, resource utilization, and resource cost,
- the global controller selects and prioritizes the scheduling polices based on load information of the identified target domains, and
- the makespan minimization is deprioritized as a scheduling policy due to local controllers associated with the target domains having higher loads caused by large quantity of the application tasks;
- making a second determination, based on the scheduling policies, that target domains are available with available capacity to execute the application tasks based on capacity information of the target domains obtained from the local controllers;
- generating scheduling packages associated with the target domain of the DMC environment based on the second determination, wherein the scheduling packages are one or more data structures that may be used by the local controller of an associated target domain to perform domain level scheduling services and include the scheduling requirements, and comprise a portion of the application tasks to be scheduled on the target domains and the scheduling policies;
- sending the scheduling packages to local controllers associated with the target domains;
- instantiating, by the local controllers, the application tasks within the target domains to support a workflow based on the scheduling policies, wherein instantiating the application task generates application information;
- obtaining the application information from the local controllers;
- and
- providing the application information to the user to allow the user to access the application.