Method and system for performing device level management 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 an endpoint controller associated with a device, scheduling assignments and a provisioning command package from a local controller; in response to obtaining the scheduling assignments and the provisioning command package: making a determination that the device is available for the scheduling assignments; in response to the determination: modifying configuration of the device based on the scheduling assignments and generating configuration information; executing the provisioning commands included in the provisioning command package to instantiate tasks included in the scheduling assignments; instantiating monitoring services to collect monitoring information associated with the device and the tasks; and sending the monitoring information and configuration information to the local controller.
1 . A method for performing device level scheduling in a distributed multi-tiered computing (DMC) environment, comprising:
obtaining, by an endpoint controller associated with a device, scheduling assignments and a provisioning command package from a local controller, wherein:
the scheduling assignments include a list of application tasks in which the endpoint controller is to instantiate on the device, wherein the application tasks comprise data collection services, data transformation services, data processing services, or monitoring services, and
the provisioning command package includes commands and instructions to use to instantiate the application tasks, wherein:
the commands comprise application programming interface calls, and
the instructions comprise configuration files, binary files, or template files;
in response to obtaining the scheduling assignments and the provisioning command package:
making a determination that the device is available for the scheduling assignments, wherein:
the determination is made based upon comparing current resource demand of the device with resource demand of the scheduling assignments, and
resources of the resource demand of the device may include at least one of: graphics processing units (GPU), field programmable gate arrays (FPGA), processors, random access memory (RAM), dynamic random access memory (DRAM), and persistent memory (PMEM);
in response to the determination:
modifying a configuration of the device based on the scheduling assignments and generating configuration information, wherein the configuration is modified by adjusting virtual infrastructure parameters, modifying network configurations, setting up the data collection services and data streaming services, and allocating virtual and hardware devices to perform one or more of the application tasks;
executing provisioning commands included in the provisioning command package to instantiate the application tasks included in the scheduling assignments;
instantiating, using monitoring service templates, monitoring services to collect monitoring information associated with the device and the application tasks, wherein the monitoring services comprise:
tracing services for generating tracing data, wherein the tracing data comprises response latencies, count of successfully performed responses, count of total responses, application task availability, network latency, and network hops;
telemetry services for generating telemetry data, wherein the telemetry data comprises performance metrics associated with the device's resources; and
log services for generating log information, wherein the log information comprises audit logs; and
sending the monitoring information and a configuration confirmation to the local controller, wherein the configuration confirmation comprises one or more data structures that notify the local controller that the device level scheduling was successfully performed and the application tasks included in the scheduling assignments are executing on the device.
2 . The method of claim 1 , wherein the monitoring information comprises:
tracing data;
telemetry data; and
device logs.
3 . The method of claim 2 , wherein the telemetry data comprises normalized resource capacity information.
4 . The method of claim 1 , wherein the device is one or a plurality of devices comprising a device set.
5 . The method of claim 4 , wherein the device set is associated with a DMC domain of a plurality of DMC domains.
6 . The method of claim 5 , wherein the DMC domain comprises one selected from a group consisting of:
an edge domain;
a core domain; and
a cloud domain.
7 . The method of claim 6 , wherein:
the edge domain comprises an edge domain device set;
the core domain comprises a core domain device set; and
the cloud domain comprises a cloud domain device set.
8 . 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 an endpoint controller associated with a device, scheduling assignments and a provisioning command package from a local controller, wherein:
the scheduling assignments include a list of application tasks in which the endpoint controller is to instantiate on the device, wherein the application tasks comprise data collection services, data transformation services, data processing services, or monitoring services, and
the provisioning command package includes commands and instructions to use to instantiate the application tasks, wherein:
the commands comprise application programming interface calls, and the instructions comprise configuration files, binary files, or template files;
in response to obtaining the scheduling assignments and the provisioning command package:
making a determination that the device is available for the scheduling assignments, wherein:
the determination is made based upon comparing current resource demand of the device with resource demand of the scheduling assignments, and
resources of the resource demand of the device may include at least one of: graphics processing units (GPU), field programmable gate arrays (FPGA), processors, random access memory (RAM), dynamic random access memory (DRAM), and persistent memory (PMEM);
in response to the determination:
modifying a configuration of the device based on the scheduling assignments and generating configuration information, wherein the configuration is modified by adjusting virtual infrastructure parameters, modifying network configurations, setting up the data collection services and data streaming services, and allocating virtual and hardware devices to perform one or more of the application tasks;
executing provisioning commands included in the provisioning command package to instantiate the application tasks included in the scheduling assignments;
instantiating, using monitoring service templates, monitoring services to collect monitoring information associated with the device and the application tasks, wherein the monitoring services comprise:
tracing services for generating tracing data, wherein the tracing data comprises response latencies, count of successfully performed responses, count of total responses, application task availability, network latency, and network hops;
telemetry services for generating telemetry data, wherein the telemetry data comprises performance metrics associated with the device's resources; and
log services for generating log information, wherein the log information comprises audit logs; and
sending the monitoring information and a configuration confirmation to the local controller, wherein the configuration confirmation comprises one or more data structures that notify the local controller that the device level scheduling was successfully performed and the application tasks included in the scheduling assignments are executing on the device.
9 . The non-transitory computer readable medium of claim 8 , wherein the monitoring information comprises:
tracing data;
telemetry data; and
device logs.
10 . The non-transitory computer readable medium of claim 9 , wherein the telemetry data comprises normalized resource capacity information.
11 . The non-transitory computer readable medium of claim 8 , wherein the device is one or a plurality of devices comprising a device set.
12 . The non-transitory computer readable medium of claim 11 , wherein the device set is associated with a DMC domain of a plurality of DMC domains.
13 . The non-transitory computer readable medium of claim 12 , wherein the DMC domain comprises one selected from a group consisting of:
an edge domain;
a core domain; and
a cloud domain.
14 . The non-transitory computer readable medium of claim 13 , wherein:
the edge domain comprises an edge domain device set;
the core domain comprises a core domain device set; and
the cloud domain comprises a cloud domain device set.
15 . A system for managing a distributed multi-tiered computing (DMC) environment, the system comprising:
a DMC environment; and
an endpoint controller associated with a device included in a DMC domain of the DMC environment, comprising a processor and memory, and configured to:
obtain, by an endpoint controller associated with a device, scheduling assignments and a provisioning command package from a local controller, wherein:
the scheduling assignments include a list of application tasks in which the endpoint controller is to instantiate on the device, wherein the application tasks comprise data collection services, data transformation services, data processing services, or monitoring services, and
the provisioning command package includes commands and instructions to use to instantiate the application tasks, wherein:
the commands comprise application programming interface calls, and
the instructions comprise configuration files, binary files, or template files;
in response to obtaining the scheduling assignments and the provisioning command package:
make a determination that the device is available for the scheduling assignments, wherein:
the determination is made based upon comparing current resource demand of the device with resource demand of the scheduling assignments, and
resources of the resource demand of the device may include at least one of: graphics processing units (GPU), field programmable gate arrays (FPGA), processors, random access memory (RAM), dynamic random access memory (DRAM), and persistent memory (PMEM);
in response to the determination:
modify a configuration of the device based on the scheduling assignments and generating configuration information, wherein the configuration is modified by adjusting virtual infrastructure parameters, modifying network configurations, setting up the data collection services and data streaming services, and allocating virtual and hardware devices to perform one or more of the application tasks;
execute provisioning commands included in the provisioning command package to instantiate the application tasks included in the scheduling assignments;
instantiate, using monitoring service templates, monitoring services to collect monitoring information associated with the device and the application tasks, wherein the monitoring services comprise:
tracing services for generating tracing data, wherein the tracing data comprises response latencies, count of successfully performed responses, count of total responses, application task availability, network latency, and network hops;
telemetry services for generating telemetry data, wherein the telemetry data comprises performance metrics associated with the device's resources; and
log services for generating log information, wherein the log information comprises audit logs; and
send the monitoring information and a configuration confirmation to the local controller, wherein the configuration confirmation comprises one or more data structures that notify the local controller that the device level scheduling was successfully performed and the application tasks included in the scheduling assignments are executing on the device.
16 . The system of claim 15 , wherein the monitoring information comprises:
tracing data;
telemetry data; and
device logs.
17 . The system of claim 16 , wherein the telemetry data comprises normalized resource capacity information.
18 . The system of claim 15 , wherein the device is one or a plurality of devices comprising a device set.
19 . The system of claim 18 , wherein the device set is associated with a DMC domain of a plurality of DMC domains.
20 . The system of claim 19 , wherein the DMC domain comprises one selected from a group consisting of:
an edge domain;
a core domain; and
a cloud domain.