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 request from a user through an application service layer of a first computing device,
- wherein the request is associated with scheduling an application task to a domain of the DMC environment and comprises authentication information associated with the user,
- wherein the user generates the request using a graphical user interface (GUI) of the application service layer, wherein the request comprises a manifest,
- wherein the domain hosts a local controller,
- wherein the authentication information specifies a first identifier of the user, a second identifier of an organization, a security credential of the user, and an encryption key,
- wherein, based on the authentication information, authenticity of the request is verified using the global controller,
- wherein the first computing device and the global controller are operatively connected to each other over a wide area network;
- in response to verifying the authenticity of the request:
- identifying application tasks associated with the request using the manifest;
- obtaining application deployment information using the manifest,
- wherein the application deployment information specifies a target input latency of the manifest, the first identifier, a user preference, and a target response latency of the application task;
- receiving capability information associated with the domain from the local controller,
- wherein the capability information is stored to a physical graph database of the local controller;
- identifying the domain for the application tasks based on the application deployment information and the capability information;
- obtaining workload information associated with the domain, wherein the workload information specifies a quantity of active scheduling tasks, a backlog of the application tasks, and a second quantity of local controller scheduler instances associated with the local controller;
- selecting priorities for scheduling policies for the domain based on the application deployment information and the workload information and the user preferences on scheduling polices, wherein selecting the priorities for the scheduling policies for the domain, comprises:
- making a first determination to not select a makespan minimization priority for the scheduling policies for the domain based on the application deployment information including the user preference and the workload information because a threshold value for the backlog and the second quantity of local controller scheduler instances is reached due to a high workload on the domain and makespan minimization is a computationally intensive scheduling policy;
- generating scheduling packages based on selected priorities for the scheduling policies for the domain;
- and
- providing the scheduling packages to the local controller,
- wherein the local controller schedules a high priority application task of the application tasks to a second computing device of the domain using the scheduling packages and an endpoint controller of the domain, wherein the second computing device executes the high priority application task.