SYSTEMS AND METHODS FOR COMPUTE ORCHESTRATION UTILIZING DISTRIBUTED RUNNERS
Systems, methods and computer program code are provided for processing compute workflows or task requests in a distributed environment.
1 . A computer implemented method to respond to a task request, the method comprising:
receiving, at a control plane, a task request message, the task request message including information identifying a task to be performed, information identifying an application, and information identifying a requestor, the control plane in communication with a plurality of applications of a compute plane such that communication between the control plane and the compute plane is only initiated from the compute plane;
receiving, by the control plane, a plurality of requests for work messages, each request for work message received from a runner application associated with a processor of compute plane over one of (i) a bidirectional streaming connection and (ii) a long polling communication protocol connection;
determining, by the control plane, a selected one of the plurality of requests for work messages that is compatible with the task request message;
transmitting, by the control plane, the task request message to the runner application associated with the selected one of the plurality of requests for work messages;
receiving, from the runner application associated with the selected one of the plurality of requests for work messages, a response to the task request message; and
transmitting the response to the task request message to the requestor.
2 . The method of claim 1 , wherein the long polling communication protocol connection is an HTTPS connection.
3 . The method of claim 1 , wherein the long polling communication protocol is a long polling loop that is completed upon receiving the response to the task request message.
4 . (canceled)
5 . The method of claim 1 , further comprising:
determining, by the control plane, that none of the plurality of requests for work messages is compatible with the task request message;
causing installation of application software compatible with the information identifying the application in the task request message and associating the application software with a first runner; and
receiving a first request for work message from the first runner, wherein the selected one of the plurality of requests for work message is the first request for work message.
6 . The method of claim 1 , wherein the compute plane includes a plurality of processors, each processor associated with a respective runner.
7 . The method of claim 5 , wherein the compute plane is at least one of (i) geographically, and (ii) logically separate from the control plane.
8 . The method of claim 6 , wherein at least one of the plurality of processors is located on premise, and at least a second one of the plurality of processors is cloud hosted.
9 . The method of claim 6 , wherein the control plane is hosted in a first cloud environment and the compute plane is hosted in a second cloud environment.
10 . The method of claim 1 , wherein the bi-directional stream connection is at least one of (i) an RPC connection, and (ii) a socket connection.
11 . The method of claim 1 , further comprising a second control plane, the method further comprising:
routing the task request message to the control plane, wherein the routing is based on information contained in the task request message.
12 . method of claim 1 , wherein determining a selected one of the plurality of requests for work message that is compatible with the task request message is based at least in part on: (i) the information identifying the requestor and (ii) the information identifying an application.
13 . A system, comprising:
a processing unit; and
a memory storage device including program code that when executed by the processing unit causes the system to:
receive, at a control plane, a task request message, the task request message including information identifying a task to be performed, information identifying an application, and information identifying a requestor, the control plane in communication with a plurality of applications of a compute plane such that communication between the control plane and the compute plane is only initiated from the compute plane;
receive, by the control plane, a plurality of requests for work messages, each request for work message received from a runner application associated with a processor of a compute plane over one of (i) a bidirectional streaming connection and (ii) a long polling communication protocol connection;
determine, by the control plane, a selected one of the plurality of requests for work messages that is compatible with the task request message;
transmit, by the control plane, the task request message to the runner application associated with the selected one of the plurality of requests for work messages;
receive, from the runner application associated with the selected one of the plurality of requests for work messages, a response to the task request message; and
transmit the response to the task request message to the requestor.
14 . The system of claim 13 , wherein the the long polling communication protocol connection is an HTTPS connection.
15 . The system of claim 13 , wherein the long polling communication protocol a long polling loop that is completed upon receiving the response to the task request message.
16 . (canceled)
17 . The system of claim 13 , wherein the memory storage device further includes program code that when executed by the processing unit causes the system to:
determine, by the control plane, that none of the plurality of requests for work messages is compatible with the task request message;
cause installation of application software compatible with the information identifying the application in the task request message and associating the application software with a first runner; and
receive a first request for work message from the first runner, wherein the selected one of the plurality of requests for work messages is the first request for work message.
18 . The system of claim 13 , further comprising a second control plane, memory storage device further including program code that when executed by the processing unit causes the system to:
route the task request message to the control plane, wherein the routing is based on information contained in the task request message.
19 . The system of claim 13 , wherein determining a selected one of the plurality of requests for work messages that is compatible with the task request message is based at least in part on: (i) information identifying a user associated with the task request message and (ii) information identifying an application associated with the task request message.
20 . A non-transitory, machine-readable medium comprising instructions thereon that, when executed by a processor, cause the processor to execute operations to perform a method, the method comprising:
receiving, at a control plane, a task request message, the task request message including information identifying a task to be performed, information identifying an application, and information identifying a requestor, the control plane in communication with a plurality of applications of a compute plane such that communication between the control plane and the compute plane is only initiated from the compute plane;
receiving, by the control plane, a plurality of requests for work messages, each request for work message received from a runner application associated with a processor of a compute plane over one of (i) a bidirectional streaming connection and (ii) a long polling communication protocol connection;
determining, by the control plane, a selected one of the plurality of requests for work messages that is compatible with the task request message;
transmitting, by the control plane, the task request message to the runner application associated with the selected one of the plurality of requests for work messages;
receiving, from the runner application associated with the selected one of the plurality of requests for work messages, a response to the task request message; and
transmitting the response to the task request message to the requestor.