Function Execution Environment Selection for Decomposed Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Decomposing software applications into functions for computing environments like PaaS and FaaS is time-consuming and costly, and developers lack the ability to efficiently select optimal execution environments for these functions, leading to suboptimal resource utilization and increased costs.
Innovation Solution
The introduction of environment selection information into code markers allows developers to specify the execution environment for functions, enabling a controller to determine the best environment based on resource needs and budget, automatically routing function invocations to optimize performance and cost.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If application decomposition is performed manually into functions for PaaS/FaaS environments, then the application can be executed in cloud computing services, but the decomposition process becomes very time-consuming and labor-intensive
Solution Approach 1:
The system performs preliminary analysis of the monolithic application code to automatically identify candidate functions for decomposition before actual decomposition occurs. This preliminary action includes analyzing code structure, identifying function boundaries, and preparing decomposition plans, which significantly reduces the time required for manual decomposition while maintaining adaptability to cloud computing services.
2Adaptability or versatility
If application decomposition is performed manually into functions, then the application can be executed in cloud computing services, but the decomposition process becomes costly
Solution Approach 1:
The system enables self-service automated decomposition by analyzing application code and automatically generating decomposition configurations for cloud computing services. This eliminates the need for expensive manual decomposition processes while maintaining the ability to execute applications in PaaS/FaaS environments, thereby reducing decomposition costs significantly.
3Ease of operation
If the PaaS or FaaS system automatically assigns execution environments for decomposed functions, then environment selection is simplified, but optimal resource utilization cannot be achieved
Solution Approach 1:
The system implements feedback mechanisms that monitor resource utilization, performance metrics, and cost data from executed functions. This feedback is used to continuously optimize environment selection decisions, allowing the system to learn from past executions and improve resource allocation. The feedback loop maintains ease of operation while significantly improving productivity and resource utilization efficiency.
Solution Approach 2:
The system dynamically changes execution environment parameters based on function characteristics, resource availability, and performance requirements. By adjusting parameters such as compute resources, memory allocation, and environment type, the system achieves optimal resource utilization while maintaining simplified environment selection through automated decision-making.
4Productivity
If developers want to specify optimal execution environments for each function, then resource utilization can be optimized, but the system complexity increases
Solution Approach 1:
The system introduces an intermediary automated environment selection service that sits between the decomposed functions and the PaaS/FaaS execution environments. This intermediary automatically matches functions to optimal execution environments based on function characteristics and resource requirements, achieving optimized resource utilization without increasing developer workload or system complexity. The intermediary handles the complexity internally while presenting a simple interface to developers.
Data Source
AI summary
Techniques for function execution environment selection for a decomposed application are provided. In one example, an apparatus comprises at least one processing platform configured to execute a portion of an application program in a first virtual computing element, wherein the application program comprises one or more portions of marked code, receive a request for execution of one of the one or more portions of marked code, decide whether to execute the portion of marked code identified in the request in the first virtual computing element or in a second virtual computing element, determine an execution environment from one or more execution environments specified in the marked code for the second virtual computing element to execute the marked code, when it is decided to execute the portion of the marked code in the second virtual computing element, and cause the portion of marked code identified in the request to be executed.


