Systems and methods for chainable compute analytics container
A method includes receiving (1) a request to perform of one or more analytics operations, and (2) data associated with an industrial automation system, wherein the industrial automation system comprises a plurality of devices configured to perform a plurality of automation operations, and wherein each of the plurality of devices comprises a compute surface configured to perform one or more software tasks, determining a plurality of data processing tasks included in the one or more analytics operations, identifying a portion of the plurality of devices to perform the plurality of data processing tasks based on the compute surface available for each of the plurality of devices, deploying one or more containers to each of the portion of the plurality of devices, and providing first instructions to a first container of the one or more containers to perform a first data processing task of the plurality of data processing tasks.
1 . A non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to perform actions comprising:
receiving (1) a request to perform one or more analytics operations, and (2) data associated with an industrial automation system, wherein the industrial automation system comprises a plurality of devices configured to perform a plurality of automation operations within the industrial automation system, and wherein each of the plurality of devices comprises a compute surface configured to perform one or more software tasks;
receiving machine state data corresponding to the plurality of devices of the industrial automation system, wherein the machine state data includes a current operational state of each of the plurality of devices;
determining that a portion of the plurality of devices are not operating in a desired state based on the machine state data;
generating a command to cause the portion of the plurality of devices to operate at a desired state;
determining a plurality of data processing tasks included in the one or more analytics operations;
identifying a portion of the plurality of devices to perform the plurality of data processing tasks based on the compute surface available for each of the plurality of devices and based on each of the portion of the plurality of devices operating in the desired state;
generating a distributed data processing flow, wherein the distributed data processing flow:
defines a sequence in which the plurality of data processing tasks are performed; and
assigns each of the plurality of data processing tasks to one or more of the portion of the plurality of devices;
deploying a plurality of containers to each of the portion of the plurality of devices, wherein the plurality of containers comprises:
a first container configured to perform a first data processing task of the plurality of data processing tasks and transmit first resultant data to a second container; and
the second container configured to receive the first resultant data from the first container, perform a second data processing task, and transmit second resultant data to the first container,
wherein the first container is further configured to receive the second resultant data from the second container and perform a third data processing task.
2 . The non-transitory computer readable medium of claim 1 , wherein at least two of the containers deployed to the portion of the plurality of devices are configured to perform parallel data processing tasks.
3 . The non-transitory computer readable medium of claim 2 , wherein the parallel data processing tasks are the same.
4 . The non-transitory computer readable medium of claim 2 , wherein the parallel data processing tasks are different from one another.
5 . The non-transitory computer readable medium of claim 1 , wherein the first container is deployed to a first device of the portion of the plurality of devices, and wherein the second container is deployed to a second device of the portion of the plurality of devices.
6 . The non-transitory computer readable medium of claim 5 , wherein a first pod of containers, including the first container, runs on the first device, and wherein a second pod of containers, including the second container, runs on the second device.
7 . The non-transitory computer readable medium of claim 1 , wherein the first container is configured to transmit third resultant data to a third container, wherein the third container is configured to perform a fourth data processing task.
8 . The non-transitory computer readable medium of claim 1 , wherein deploying the plurality of containers to each of the portion of the plurality of devices comprises deploying a first pod of containers, wherein the first pod of containers comprises a first plurality of containers configured to coordinate to perform a first one or more of the plurality of data processing tasks.
9 . The non-transitory computer readable medium of claim 8 , wherein deploying the plurality of containers to each of the portion of the plurality of devices comprises deploying a second pod of containers, wherein the second pod of containers comprises a second plurality of containers configured to coordinate to perform a second one or more of the plurality of data processing tasks.
10 . The non-transitory computer readable medium of claim 1 , wherein the data associated with an industrial automation system comprises an alert generated by a device of the plurality of devices, and wherein the data processing tasks comprise diagnosing a condition causing the alert and one or more remedial actions to resolve the alert.
11 . The non-transitory computer readable medium of claim 10 , wherein the alert is indicative of the device of the plurality of devices ceasing to operate, the device of the plurality of devices ceasing to communicate, the device of the plurality of devices having machine state data falling outside a desired state range, or any combination thereof.
12 . A method, comprising:
receiving (1) a request to perform one or more analytics operations, and (2) data associated with an industrial automation system, wherein the industrial automation system comprises a plurality of devices configured to perform a plurality of automation operations within the industrial automation system, and wherein each of the plurality of devices comprises a compute surface configured to perform one or more software tasks;
receiving machine state data corresponding to the plurality of devices of the industrial automation system, wherein the machine state data includes a current operational state of each of the plurality of devices;
determining that a portion of the plurality of devices are not operating in a desired state based on the machine state data;
generating a command to cause the portion of the plurality of devices to operate at a desired state;
determining a plurality of data processing tasks included in the one or more analytics operations and based on each of the portion of the plurality of devices operating at the desired state;
identifying a portion of the plurality of devices to perform the plurality of data processing tasks based on the compute surface available for each of the plurality of devices;
deploying a plurality of containers to each of the portion of the plurality of devices;
providing first instructions to a first container of the plurality of containers to perform a first data processing task of the plurality of data processing tasks and provide first resultant data from the first data processing task to a second container of the plurality of containers; and
providing second instructions to the second container of the plurality of containers to perform a second data processing task of the plurality of data processing tasks upon receipt of the first resultant data, and transmit second resultant data to the first container,
wherein the first container is further configured to receive the second resultant data from the second container and perform a third data processing task.
13 . The method of claim 12 , wherein the first container is deployed to a first device of the portion of the plurality of devices, and wherein the second container is deployed to a second device of the portion of the plurality of devices.
14 . The method of claim 13 , wherein a first pod of containers, including the first container, runs on the first device, and a second pod of containers, including the second container, runs on the second device.
15 . A non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to perform actions comprising:
receiving (1) a request to perform one or more analytics operations, and (2) data associated with an industrial automation system, wherein the industrial automation system comprises a plurality of devices configured to perform a plurality of automation operations within the industrial automation system, and wherein each of the plurality of devices comprises a compute surface configured to perform one or more software tasks;
receiving machine state data corresponding to the plurality of devices of the industrial automation system, wherein the machine state data includes a current operational state of each of the plurality of devices;
determining that a portion of the plurality of devices are not operating in a desired state based on the machine state data;
generating a command to cause the portion of the plurality of devices to operate at a desired state;
determining a plurality of data processing tasks included in the one or more analytics operations;
identifying a portion of the plurality of devices to perform the plurality of data processing tasks based on the compute surface available for each of the plurality of devices and based on each of the portion of the plurality of devices operating in the desired state;
deploying a plurality of containers to the portion of the plurality of devices;
providing first instructions to a first container of the plurality of containers to perform a first data processing task of the plurality of data processing tasks and provide first resultant data from the first data processing task to a second container of the plurality of containers; and
providing second instructions to the second container of the plurality of containers to perform a second data processing task of the plurality of data processing tasks upon receipt of the first resultant data, and transmit second resultant data to the first container,
wherein the first container is further configured to receive the second resultant data from the second container and perform a third data processing task.
16 . The non-transitory computer readable medium of claim 15 , wherein the one or more analytics operations comprise calculating one or more metrics based on the received data, applying one or more algorithms, applying one or more machine learning models, or training one or more machine learning models, or any combination thereof.
17 . The non-transitory computer readable medium of claim 15 , wherein the one or more analytics operations comprise identifying one or more pieces of software on an operational technology (OT) network, identifying one or more pieces of hardware on the OT network, performing one or more asset management operations, managing firmware on one or more of the plurality of devices, developing one or more policies for the OT network, deploying the one or more policies to the OT network, provisioning the one or more policies within the OT network, or enforcing the one or more policies within the OT network, or any combination thereof.
18 . The non-transitory computer readable medium of claim 15 , wherein the one or more analytics operations comprise diagnosing a condition of a particular device of the plurality of devices, identifying a cause of the condition of the particular device of the plurality of devices, identifying one or more remedial actions to address the condition of the particular device of the plurality of devices, determining a health of the particular device of the plurality of devices, or calibrating the particular device of the plurality of devices, or any combination thereof.
19 . The non-transitory computer readable medium of claim 15 , wherein the one or more analytics operations comprise identifying what data associated with the industrial automation system is stored on one or more of the plurality of devices, identifying where on the one or more of the plurality of devices the data associated with the industrial automation system is stored, or generating data maps for the data associated with the industrial automation system, or any combination thereof.
20 . The non-transitory computer readable medium of claim 15 , wherein the one or more analytics operations comprise converting the data from a first communication protocol to a second communication protocol, encrypting the data, or decrypting the data, or any combination thereof.