Energy-aware application migration recommendation
Application migration recommendation based on energy consumption includes receiving time series data of application energy consumption and application usage metrics associated with an application being considered for migration in a computing environment. Energy aware design catalog having a list of design patterns for migration and associated design detection functions is provided. For each of the design patterns listed in the energy aware design catalog, a design detection function associated with a design pattern is run using the time series data of application energy consumption and application usage metrics, where the design detection function outputs whether the application is suitable for transformation using the design pattern and projected energy savings if the transformation is implemented using the design pattern. A design pattern estimated to have largest projected energy savings is returned as recommended migration for the application.
1 . A computer-implemented method comprising:
receiving time series data of application energy consumption and application usage metrics associated with an application being considered for migration in a computing environment;
providing an energy aware design catalog having a list of design patterns for migration and associated design detection functions, the list of design patterns including at least an application programming interface (API)-to-cloud function design pattern for transforming the application from an API to a function in a cloud computing environment and a monolithic-to-microservice design pattern for transforming the application to a microservice;
for each of the design patterns listed in the energy aware design catalog,
running a design detection function associated with a design pattern using the time series data of application energy consumption and application usage metrics, wherein the design detection function outputs whether the application is applicable for transformation using the design pattern based on determining whether the application is drawing static energy;
returning a design pattern estimated to have largest projected energy savings as recommended migration for the application; and
based on a recommended design pattern, balancing application load associated with the application in the computing environment.
2 . The computer-implemented method of claim 1 , wherein the application usage metrics includes at least a central processing unit (CPU) utilization of the application.
3 . The computer-implemented method of claim 1 , wherein the application usage metrics includes at least a number of API calls performed in the application.
4 . The computer-implemented method of claim 1 , wherein the application usage metrics includes at least a number of database transactions performed in the application.
5 . The computer-implemented method of claim 1 , further including providing a visual representation of an application load and energy consumption with potential energy savings.
6 . A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a device to cause the device to:
receive time series data of application energy consumption and application usage metrics associated with an application being considered for migration in a computing environment;
provide an energy aware design catalog having a list of design patterns for migration and associated design detection functions, the list of design patterns including at least an application programming interface (API)-to-cloud function design pattern for transforming the application from an API to a function in a cloud computing environment and a monolithic-to-microservice design pattern for transforming the application to a microservice;
for each of the design patterns listed in the energy aware design catalog,
run a design detection function associated with a design pattern using the time series data of application energy consumption and application usage metrics, wherein the design detection function outputs whether the application is applicable for transformation using the design pattern based on determining whether the application is drawing static energy;
return a design pattern estimated to have largest projected energy savings as recommended migration for the application; and
based on a recommended design pattern, balance application load associated with the application in the computing environment.
7 . The computer program product of claim 6 , wherein the application usage metrics includes at least a central processing unit (CPU) utilization of the application.
8 . The computer program product of claim 6 , wherein the application usage metrics includes at least a number of API calls performed in the application.
9 . The computer program product of claim 6 , wherein the application usage metrics includes at least a number of database transactions performed in the application.
10 . The computer program product of claim 6 , wherein the device is further caused to provide a visual representation of an application load and energy consumption with potential energy savings.
11 . A system comprising:
at least one computer processor;
at least one memory device coupled with the at least one computer processor;
the at least one computer processor configured to at least:
receive time series data of application energy consumption and application usage metrics associated with an application being considered for migration in a computing environment;
provide an energy aware design catalog having a list of design patterns for migration and associated design detection functions, the list of design patterns including at least an application programming interface (API)-to-cloud function design pattern for transforming the application from an API to a function in a cloud computing environment and a monolithic-to-microservice design pattern for transforming the application to a microservice;
for each of the design patterns listed in the energy aware design catalog,
run a design detection function associated with a design pattern using the time series data of application energy consumption and application usage metrics, wherein the design detection function outputs whether the application is applicable for transformation using the design pattern based on determining whether the application is drawing static energy;
return a design pattern estimated to have largest projected energy savings as recommended migration for the application; and
based on a recommended design pattern, balance application load associated with the application in the computing environment.
12 . The system of claim 11 , wherein the application usage metrics includes at least a central processing unit (CPU) utilization of the application.
13 . The system of claim 11 , wherein the application usage metrics includes at least a number of API calls performed in the application.
14 . The system of claim 11 , wherein the application usage metrics includes at least a number of database transactions performed in the application.