Dynamically determining shared computing resources for executing actions in an application workflow configuration
Shared computing resources may be determined for executing actions in an application workflow configuration. An application workflow configuration that describes a workflow that includes actions with respective action code executable to perform the actions may be obtained. Execution of the workflow may be directed according to the application workflow configuration. As part of execution of the workflow, an assignment of two of the actions may be individually determined for a same computing resource. Execution of the respective action code for the two actions may be caused according to the same computing resource.
1 . A system, comprising:
at least one processor; and
a memory, storing program instructions that when executed by the at least one processor, cause the at least one processor to implement an application development, build, delivery, and deployment service, configured to:
receive, via an interface of the application development, build, delivery, and deployment service, one or more requests to specify a workflow in an application workflow configuration that describes the workflow, wherein the workflow comprises a plurality of actions with respective action code executable to perform the plurality of actions and an event that triggers execution of the workflow;
detect the event that triggers execution of the workflow;
direct execution of the workflow according to the application workflow configuration, wherein to direct execution of the workflow, the application development, build, delivery, and deployment service is configured to:
evaluate a first action of the plurality of actions specified in the workflow configuration to determine an assignment for the first action when a second action of the plurality of actions is executing according to a previously determined assignment specific to the second action as part of individual determinations of respective assignments for the plurality of actions at runtime of the workflow, wherein the individual determination for at least two of the plurality of actions are assignments to a same computing resource; and
cause execution of the respective action code for the plurality of actions according to the respective assignments.
2 . The system of claim 1 , wherein to perform the individual determinations of the respective assignments for the plurality of actions, the application development, build, delivery, and deployment service is configured to:
detect one of the two actions as a new action to be executed;
evaluate performance of the workflow and the application workflow configuration to determine a shared computing resource for the new action; and
identify the same computing resource as the shared computing resource to assign the new action.
3 . The system of claim 1 , wherein to perform the individual determinations of the respective assignments for the plurality of actions, the application development, build, delivery, and deployment service is configured to determine that the respective assignments of the computing resource to the two actions are specified in the application workflow configuration.
4 . The system of claim 1 , wherein the application development, build, delivery, and deployment service is further configured to display, via the interface of the application development, build, delivery, and deployment service, respective assignments of the plurality of actions to a computing resource, including the assignment of the at least two actions to the same computing resource.
5 . A method, comprising:
obtaining, by workflow execution engine for a workflow management system, an application workflow configuration that describes a workflow comprising a plurality of actions with respective action code executable to perform the plurality of actions;
directing, by the workflow execution engine, execution of the workflow according to the application workflow configuration, wherein the directing comprises:
evaluating a first action of the plurality of actions specified in the workflow configuration to determine an assignment for the first action when a second action of the plurality of actions is executing according to a previously determined assignment specific to the second action as part of individual determinations of respective assignments for the plurality of actions at runtime of the workflow, wherein the individual determinations for at least two of the plurality of actions are assignments to a same computing resource; and
causing execution of the respective action code for the plurality of computing actions according to the respective assignments.
6 . The method of claim 5 , wherein the individual determinations the respective assignments for the plurality of actions comprises:
detecting one of the two actions as a new action to be executed;
evaluating performance of the workflow and the application workflow configuration to determine a shared computing resource for the new action; and
identifying the same computing resource as the shared computing resource to assign the new action.
7 . The method of claim 6 , further comprising determining that dynamic optimization for assigning computing resources is enabled for execution of the workflow in the application workflow configuration.
8 . The method of claim 5 , wherein the individual determinations the respective assignments for the plurality of actions comprises determining that that the respective assignments of the computing resource to the two actions are specified in the application workflow configuration.
9 . The method of claim 5 , wherein the application workflow configuration includes respective dependencies between the plurality of actions.
10 . The method of claim 5 , further comprising receiving one or more requests, via an interface of the workflow management system, that specifies the application workflow configuration.
11 . The method of claim 5 , wherein the individual determinations the respective assignments for the plurality of actions further comprises:
determining an assignment of third one of the plurality of actions to a different computing resource; and
causing execution of the respective action code for the third action according to the assignment to the different computing resource.
12 . The method of claim 5 , wherein the individual determinations the respective assignments for the plurality of actions is based on a computing resource capability determined to be provided by the same computing resource.
13 . The method of claim 5 , further comprising displaying, via an interface of the workflow management system, the respective assignments of the plurality of actions to a computing resource, including the assignment of the at least two actions to the same computing resource.
14 . One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement:
detecting an event that triggers execution of a workflow according to an application workflow configuration that describes the workflow, wherein the workflow comprises a plurality of actions with respective action code executable to perform the plurality of actions;
directing execution of the workflow according to the application workflow configuration, wherein the directing comprises:
evaluating a first action of the plurality of actions specified in the workflow configuration to determine an assignment for the first action when a second action of the plurality of actions is executing according to a previously determined assignment specific to the second action as part of individual determinations of respective assignments for the plurality of actions at runtime of the workflow, wherein the respective determinations for at least two of the plurality of actions are assignments to a same computing resource; and
causing execution of the respective action code for plurality of actions according to the respective.
15 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein, in performing the individual determinations the respective assignments for the plurality of actions, the program instructions cause the one or more computing devices to implement:
detecting one of the two actions as a new action to be executed;
evaluating performance of the workflow and the application workflow configuration to determine a shared computing resource for the new action; and
identifying the same computing resource as the shared computing resource to assign the new action.
16 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein, in performing the individual determinations the respective assignments for the plurality of actions, the program instructions cause the one or more computing devices to implement determining that an assignment of the computing resource to the two actions is specified in the application workflow configuration.
17 . The one or more non-transitory, computer-readable storage media of claim 14 , storing further program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement displaying, via an interface, the respective assignments of the plurality of actions to a computing resource, including the assignment of the at least two actions to the same computing resource.
18 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein the application workflow configuration includes respective dependencies between the plurality of actions.
19 . The one or more non-transitory, computer-readable storage media of claim 18 , wherein the assignment of the at least two actions to the same computing resource is determined according to an inherited assignment for at least one of the two actions determined according to the respective dependencies between the plurality of actions in the application workflow configuration.
20 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein the one or more computing devices are implemented as part of an application development, build, delivery, and deployment service offered by a provider network.