Primary orchestrator for continuous integration system
A device includes one or more processors configured to obtain, at a primary orchestrator of a system, a notification of a change event from an authoritative source of the system and identify, based on an evaluation precedence network at the primary orchestrator, one or more evaluations to perform in response to the change event. For each identified evaluation, the processor(s) are configured to send, from the primary orchestrator, an evaluation request to a secondary orchestrator of the system to request performance of the evaluation, and receive, from the secondary orchestrator, an evaluation result based on performance of the evaluation. The processor(s) are configured to update the evaluation precedence network to indicate an updated state of evaluation executions based on one or more of the evaluation results. The processor(s) are configured to determine, at the primary orchestrator, whether to generate an additional evaluation request after the evaluation precedence network is updated.
1 . A device comprising:
one or more processors configured to:
obtain, at a primary orchestrator of a system, a notification of a change event from an authoritative source of the system;
identify, based on an evaluation precedence network at the primary orchestrator, one or more evaluations to perform in response to the change event;
for each evaluation of the one or more identified evaluations:
send, from the primary orchestrator, an evaluation request associated with the evaluation to a respective secondary orchestrator of one or more secondary orchestrators of the system to request performance of the evaluation; and
receive, from the respective secondary orchestrator, an evaluation result based on performance of the evaluation;
update the evaluation precedence network at the primary orchestrator to indicate an updated state of evaluation executions based on one or more of the evaluation results; and
determine, at the primary orchestrator, whether to generate one or more additional evaluation requests after the evaluation precedence network is updated.
2 . The device of claim 1 , wherein the one or more processors are configured to:
generate an update notification that indicates the updated state; and
receive a confirmation to continue responsive to the update notification,
wherein the determination of whether to generate the one or more additional evaluation requests is at least partially based on receipt of the confirmation.
3 . The device of claim 1 , wherein the one or more processors are configured to update the evaluation precedence network to indicate the updated state after all of the evaluation results have been received.
4 . The device of claim 1 , wherein the primary orchestrator includes a change impact reasoner that is configured to:
assess an impact of the change event based on the updated state of the evaluation precedence network; and
perform the determination of whether to generate the one or more additional evaluation requests based on the assessed impact.
5 . The device of claim 4 , wherein the evaluation precedence network includes a graph network data structure comprising multiple nodes.
6 . The device of claim 1 , wherein each of the one or more secondary orchestrators are communicatively coupled to the primary orchestrator via a data bus, and wherein the data bus is configured to convey the evaluation requests and the evaluation results between the primary orchestrator and each of the one or more secondary orchestrators.
7 . The device of claim 6 , wherein the primary orchestrator is configured to generate each evaluation request according to a common evaluation request format, and wherein each of the evaluation results conveyed on the data bus has a common evaluation result format.
8 . The device of claim 6 , wherein the primary orchestrator is configured to receive multiple change event notifications via the data bus, wherein the multiple change event notifications include the notification of a change event, and wherein each change event notification of the multiple change event notifications has a common change event notification format.
9 . The device of claim 1 , wherein each of the one or more secondary orchestrators is coupled to one or more respective evaluation environments and is configured to:
send information corresponding to a particular evaluation request to a particular evaluation environment of the one or more respective evaluation environments;
receive, from the particular evaluation environment, data associated with a completed evaluation; and
send, based on the data associated with the completed evaluation, a corresponding evaluation result to the primary orchestrator.
10 . The device of claim 9 , wherein each of the one or more secondary orchestrators includes:
an evaluation queue configured to store entries regarding requested evaluations; and
a request processor configured to:
add entries to the evaluation queue based on received evaluation requests;
remove entries from the evaluation queue based on completed evaluations; and
send data of the completed evaluations to an artifact storage.
11 . A method comprising:
obtaining, at a primary orchestrator of a system, a notification of a change event from an authoritative source of the system;
identifying, based on an evaluation precedence network at the primary orchestrator, one or more evaluations to perform in response to the change event;
for each evaluation of the one or more identified evaluations:
sending, from the primary orchestrator, an evaluation request associated with the evaluation to a respective secondary orchestrator of one or more secondary orchestrators of the system to request performance of the evaluation; and
receiving, from the respective secondary orchestrator, an evaluation result based on performance of the evaluation;
updating the evaluation precedence network at the primary orchestrator to indicate an updated state of evaluation executions based on one or more of the evaluation results; and
determining, at the primary orchestrator, whether to generate one or more additional evaluation requests after the evaluation precedence network is updated.
12 . The method of claim 11 , further comprising:
generating an update notification that indicates the updated state; and
receiving a confirmation to continue responsive to the update notification,
wherein the determination of whether to generate the one or more additional evaluation requests is at least partially based on receipt of the confirmation.
13 . The method of claim 11 , further comprising updating the evaluation precedence network to indicate the updated state after all of the evaluation results have been received.
14 . The method of claim 11 , further comprising:
assessing, at a change impact reasoner of the primary orchestrator, an impact of the change event based on the updated state of the evaluation precedence network; and
performing the determination of whether to generate the one or more additional evaluation requests based on the assessed impact.
15 . The method of claim 11 , further comprising conveying the one or more evaluation requests and the evaluation results between the primary orchestrator and each of the one or more secondary orchestrators via a data bus.
16 . The method of claim 15 , further comprising generating, at the primary orchestrator, each evaluation request according to a common evaluation request format, and wherein each of the evaluation results conveyed on the data bus has a common evaluation result format.
17 . The method of claim 15 , further comprising receiving, at the primary orchestrator, multiple change event notifications via the data bus, wherein the multiple change event notifications include the notification of the change event, and wherein each change event notification of the multiple change event notifications has a common change event notification format.
18 . The method of claim 11 , further comprising, at a secondary orchestrator of the one or more secondary orchestrators:
sending information corresponding to a particular evaluation request to a particular evaluation environment;
receiving, from the particular evaluation environment, data associated with a completed evaluation; and
sending, based on the data associated with the completed evaluation, a corresponding evaluation result to the primary orchestrator.
19 . A non-transitory, computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including:
obtaining, at a primary orchestrator of a system, a notification of a change event from an authoritative source of the system;
identifying, based on an evaluation precedence network at the primary orchestrator, one or more evaluations to perform in response to the change event;
for each evaluation of the one or more identified evaluations:
sending, from the primary orchestrator, an evaluation request associated with the evaluation to a respective secondary orchestrator of one or more secondary orchestrators of the system to request performance of the evaluation; and
receiving, from the respective secondary orchestrator, an evaluation result based on performance of the evaluation;
updating the evaluation precedence network at the primary orchestrator to indicate an updated state of evaluation executions based on one or more of the evaluation results; and
determining, at the primary orchestrator, whether to generate one or more additional evaluation requests after the evaluation precedence network is updated.
20 . The non-transitory, computer-readable medium of claim 19 , wherein the operations further comprise:
assessing, at a change impact reasoner of the primary orchestrator, an impact of the change event based on the updated state of the evaluation precedence network; and
performing the determination of whether to generate the one or more additional evaluation requests based on the assessed impact.