Method and system for dynamic selection of policy priorities for provisioning an application in a distributed multi-tiered computing environment
Techniques described herein relate to a method for managing a distributed multi-tiered computing (DMC) environment. The method includes obtaining, by a global controller, a request from a user, and the request is associated with scheduling an application in the DMC environment; and in response to obtaining the request: identifying application tasks associated with the request; obtaining application deployment information based on a manifest included in the request; identifying target domains for the application tasks based on the application deployment information; obtaining workload information associated with the target domains; selecting priorities for scheduling policies for the target domains based on the application deployment information and the workload information; generating scheduling packages based on the scheduling policy priorities for each target domain; and providing the scheduling packages to local controllers of the target domains, wherein the local controllers schedule the application tasks using the scheduling packages.
1 . 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;
providing the scheduling packages to the local controller; and
scheduling, by the local controller, 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.
2 . The method of claim 1 , wherein the local controller of the domain is configured to schedule the application tasks within the domain based on the scheduling policy priorities specified by the scheduling packages.
3 . The method of claim 1 , wherein selected priorities for the scheduling policies comprise at least two of:
a scheduling efficiency policy;
a resource utilization policy; and
a resource cost policy.
4 . The method of claim 1 , wherein selecting priorities for scheduling policies for the domain based on the application deployment information and the workload information further comprises:
making a second determination to include a scheduling efficiency policy;
in response to the second determination:
assigning a first priority to the scheduling efficiency policy;
making a third determination to include a resource utilization policy;
in response to the third determination:
assigning a second priority to the resource utilization policy;
making a fourth determination to include a resource cost policy; and
in response to the fourth determination:
assigning a third priority to the resource cost policy.
5 . The method of claim 1 , wherein the domain is one of a plurality of DMC domains.
6 . The method of claim 5 , wherein the plurality of DMC domains comprises:
edge domains, wherein an edge domain of the edge domains comprises an edge domain device set;
core domains, wherein a core domain of the core domain comprises a core domain device set; and
cloud domains, wherein a cloud domain of the cloud domains comprises a cloud domain device set.
7 . 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.
8 . The non-transitory computer readable medium of claim 7 , wherein the local controller of the domain is configured to schedule the application tasks within the domain based on the scheduling policy priorities specified by the scheduling packages.
9 . The non-transitory computer readable medium of claim 7 , wherein the scheduling policies comprise at least two of:
a scheduling efficiency policy;
a resource utilization policy; and
a resource cost policy.
10 . The non-transitory computer readable medium of claim 7 , wherein selecting priorities for scheduling policies for the domain based on the application deployment information and the workload information further comprises:
making a second determination to include a scheduling efficiency policy;
in response to the second determination:
assigning a first priority to the scheduling efficiency policy;
making a third determination to include a resource utilization policy;
in response to the third determination:
assigning a second priority to the resource utilization policy;
making a fourth determination to include a resource cost policy; and
in response to the fourth determination:
assigning a third priority to the resource cost policy.
11 . The non-transitory computer readable medium of claim 7 , wherein the domain is one of a plurality of DMC domains.
12 . The non-transitory computer readable medium of claim 11 , wherein the plurality of DMC domains comprises:
edge domains, wherein an edge domain of the edge domains comprises an edge domain device set;
core domains, wherein a core domain of the core domain comprises a core domain device set; and
cloud domains, wherein a cloud domain of the cloud domains comprises a cloud domain device set.
13 . A system for managing a distributed multi-tiered computing (DMC) environment, the system comprising:
a DMC environment; and
a global controller of the DMC environment, comprising a processor and memory, and configured to:
obtain 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:
identify application tasks associated with the request using the manifest;
obtain 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;
receive 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;
identify the domain for the application tasks based on the application deployment information and the capability information;
obtain 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;
select 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:
make 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;
generate scheduling packages based on selected priorities for the scheduling policies for the domain; and
provide 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.
14 . The system of claim 13 , wherein the local controller of the domain is configured to schedule the application tasks within the domain based on the scheduling policy priorities specified by the scheduling packages.
15 . The system of claim 13 , wherein the scheduling policies comprise at least two of:
a scheduling efficiency policy;
a resource utilization policy; and
a resource cost policy.
16 . The system of claim 13 , wherein selecting priorities for scheduling policies for the domain based on the application deployment information and the workload information further comprises:
making a second determination to include a scheduling efficiency policy;
in response to the second determination:
assigning a first priority to the scheduling efficiency policy;
making a third determination to include a resource utilization policy;
in response to the third determination:
assigning a second priority to the resource utilization policy;
making a fourth determination to include a resource cost policy; and
in response to the fourth determination:
assigning a third priority to the resource cost policy.
17 . The system of claim 13 , wherein the domain is one of a plurality of DMC domains.