Systems and methods for component level application migration
Systems, apparatuses, methods, and computer program products are disclosed for generating a dynamic prioritized list of migration tasks for an application. An example method includes identifying, by an application discovery engine and for an application, a set of application components, and generating, by a migration engine, a set of migration tasks based on the set of application components. The example method also includes determining, by a task prioritization analysis engine, a task priority score for each migration task in the set of migration tasks, and determining, by the migration engine, a hierarchical ordering for each migration task of the set of migration tasks. The example method also includes generating, based on the hierarchical ordering and a task priority score for each migration task, the dynamic prioritized list of migration tasks, wherein the dynamic prioritized list of migration tasks comprises an ordered sequence of a subset of migration tasks.
1 . A method for generating a dynamic prioritized list of migration tasks for an application, the method comprising:
identifying, by an application discovery engine and for the application, a set of application components;
generating, by a migration engine, a set of the migration tasks based on the set of application components wherein the set of the migration tasks comprises an interactable migration task, an automated migration task, and a dependent migration task depending on the interactable migration task;
determining, by a task prioritization analysis engine, a task priority score for each item in the set of the migration tasks;
determining, by the migration engine, a hierarchical ordering for the set of the migration tasks;
generating, by the migration engine and based on the hierarchical ordering and the task priority score, the dynamic prioritized list of the migration tasks, wherein the dynamic prioritized list of the migration tasks comprises an ordered sequence of a subset of the migration tasks;
receiving, by communications hardware, a task status update indication, wherein the task status update indication corresponds to the interactable migration task and comprises a status update relating to the interactable migration task and the dependent migration task;
generating an updated status of the dependent migration task based on the task status update indication;
updating, by the migration engine and based on the task status update indication, the dynamic prioritized list of the migration tasks to produce an updated dynamic prioritized list of the migration tasks comprising the updated status of the dependent migration task; and
executing, using the updated dynamic prioritized list of the migration tasks, the set of migration tasks.
2 . The method of claim 1 , further comprising:
generating, by the migration engine and based on the set of migration tasks, a directed graph of the migration tasks, wherein each node of the directed graph of the migration tasks corresponds to a migration task in the set of the migration tasks and each edge of the directed graph of the migration tasks corresponds to a migration task dependency relationship between connected nodes, wherein the hierarchical ordering is determined based on the directed graph of the migration tasks.
3 . The method of claim 1 , further comprising:
receiving, by communications hardware, one or more additional task status update indications, wherein each additional task status update indication corresponds to a migration task of the set of the migration tasks and comprises an additional status update relating to the corresponding migration task; and
updating, by the migration engine and based on the one or more additional task status update indications, the dynamic prioritized list of the migration tasks.
4 . The method of claim 1 , further comprising:
storing, by a training engine, migration metadata based on the task status update indication.
5 . The method of claim 4 , further comprising:
training, using the migration metadata, one or more of a migration determination model, a task prioritization determination model, a dependency determination model, or an output model.
6 . The method of claim 1 , wherein the task priority score for each item of the set of the migration tasks is determined based on a list of factors, the list of factors describing a readiness of a particular application component to be migrated to a target platform.
7 . The method of claim 6 , wherein the list of factors comprises an assessment of risk involved in migrating the particular application component to the target platform.
8 . The method of claim 1 , wherein identifying the set of application components further comprises:
causing execution, by the application discovery engine, of one or more application discovery tools; and
receiving, by the communications hardware, application inventory data, wherein identifying the set of application components is based on the application inventory data.
9 . The method of claim 1 , wherein application components of a respective application are identified with application component types from a list of candidate application component types, the list of candidate application component types comprising:
application code snippet,
application function,
application programming interface element,
sub-applications, and
a complete application.
10 . The method of claim 1 , wherein the set of the migration tasks comprises one or more of (i) testing a candidate application component on a target platform or (ii) migrating the candidate application component to the target platform.
11 . The method of claim 1 , further comprising:
receiving, by the communications hardware, an indication of user input for the interactable migration task; and
generating, by the communications hardware, the task status update indication corresponding to the interactable migration task and the status update based on the indication of user input for the interactable migration task.
12 . The method of claim 1 , further comprising:
causing execution, by the migration engine, of the automated migration task; and
generating, by the migration engine, a task status update indication corresponding to the automated migration task and a status update based on a result of the execution of the automated migration task.
13 . The method of claim 1 , further comprising providing, by the communications hardware, the dynamic prioritized list of the migration tasks.
14 . The method of claim 1 , further comprising:
displaying, by the communications hardware, a graphical user interface (i) depicting the dynamic prioritized list of the migration tasks and (ii) comprising interactable elements causing execution of the automated migration task; and
modifying, by the communications hardware, the graphical user interface based on the updated dynamic prioritized list of the migration tasks and the updated status.
15 . An apparatus for generating a dynamic prioritized list of migration tasks for an application, the apparatus comprising:
an application discovery engine configured to identify, for the application, a set of application components;
a migration engine configured to generate a set of the migration tasks based on the set of application components wherein the set of the migration tasks comprises an interactable migration task, an automated migration task, and a dependent migration task depending on the interactable migration task; and
a task prioritization analysis engine configured to determine a task priority score for each item in the set of the migration tasks,
wherein the migration engine is further configured to:
determine a hierarchical ordering for the set of the migration tasks, and
generate, based on the hierarchical ordering and the task priority score, the dynamic prioritized list of migration tasks, wherein the dynamic prioritized list of migration tasks comprises an ordered sequence of a subset of migration tasks;
communications hardware configured to:
receive a task status update indication, wherein the task status update indication corresponds to the interactable migration task and comprises a status update relating to the interactable migration task and the dependent migration task;
wherein the migration engine is further configured to:
generate an updated status of the dependent migration task based on the task status update indication,
update, based on the task status update indication, the dynamic prioritized list of migration tasks to produce an updated dynamic prioritized list of migration tasks comprising the updated status of the dependent migration task; and
execute, using the updated dynamic prioritized list of the migration tasks, the set of migration tasks.
16 . The apparatus of claim 15 , wherein the migration engine is further configured to:
generate, based on the set of migration tasks, a directed graph of migration tasks, wherein each node of the directed graph of migration tasks corresponds to a migration task in the set of migration tasks and each edge of the directed graph of migration tasks corresponds to a migration task dependency relationship between connected nodes, wherein the hierarchical ordering is determined based on the directed graph of migration tasks.
17 . The apparatus of claim 15 , wherein the communications hardware is further configured to:
receive one or more additional task status update indications, wherein each additional task status update indication corresponds to a migration task of the set of migration tasks and comprises an additional status update relating to the corresponding migration task,
wherein the migration engine is further configured to update, based on the one or more additional task status update indications, the dynamic prioritized list of migration tasks.
18 . The apparatus of claim 15 , further comprising a training engine configured to store migration metadata based on the task status update indication.
19 . The apparatus of claim 18 , wherein the migration metadata is used to train one or more of a migration determination model, a task prioritization determination model, a dependency determination model, or an output model.
20 . A computer program product for generating a dynamic prioritized list of migration tasks for an application, the computer program product comprising at least one non-transitory computer-readable storage medium storing software instructions that, when executed, cause an apparatus to:
identify, for the application, a set of application components;
generate a set of the migration tasks based on the set of application components wherein the set of the migration tasks comprises an interactable migration task, an automated migration task, and a dependent migration task depending on the interactable migration task;
determine a task priority score for each item in the set of the migration tasks;
determine a hierarchical ordering for the set of the migration tasks;
generate, based on the hierarchical ordering and the task priority score, the dynamic prioritized list of the migration tasks, wherein the dynamic prioritized list of the migration tasks comprises an ordered sequence of a subset of the migration tasks;
receive a task status update indication, wherein the task status update indication corresponds to the interactable migration task and comprises a status update relating to the interactable migration task and the dependent migration task;
generate an updated status of the dependent migration task based on the task status update indication;
update, based on the task status update indication, the dynamic prioritized list of the migration tasks to produce an updated dynamic prioritized list of the migration tasks comprising the updated status of the dependent migration task; and
execute, using the updated dynamic prioritized list of the migration tasks, the set of migration tasks.