Containerized Function Conversion to Microservices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Containerized functions in serverless execution models experience slow execution due to 'cold starts,' which can lead to resource consumption spikes and negatively impact service level agreement metrics like latency, especially when there are frequent short periods of inactivity.
Innovation Solution
Implementing a system that monitors containerized functions for idle time and cold starts, and automatically converts highly utilized functions with frequent cold starts to microservices, which are always running, thereby reducing cold start issues and resource consumption spikes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If containerized functions are used to achieve resource efficiency and scalability, then resource consumption is optimized and scalability is improved, but cold start latency increases and service level agreement metrics deteriorate
Solution Approach 1:
The system performs preliminary actions by starting a proxy service before actual function invocations occur. The proxy service pre-warms the execution environment, establishes connections, and prepares resources in advance, so when a function is actually called, the cold start latency is significantly reduced or eliminated entirely.
Solution Approach 2:
An intermediary proxy service is introduced between the client and the containerized function. This proxy handles the initial connection establishment, authentication, and setup tasks, allowing the actual function execution to start faster. The proxy acts as a buffer that absorbs the cold start overhead without impacting the user-perceived latency.
2Use of energy by moving object
If containerized functions are used to optimize resource consumption, then resource utilization is improved, but resource consumption spikes occur during frequent invocations
Solution Approach 1:
The system merges multiple function invocations into a single sustained proxy service execution. Instead of repeatedly starting and stopping containers for each invocation, the proxy service remains active and handles multiple requests sequentially or in parallel, smoothing out resource consumption patterns and eliminating spikes.
Solution Approach 2:
The proxy service performs preliminary resource allocation and preparation, establishing all necessary connections, loading required libraries, and initializing execution environments before actual function invocations. This preliminary action prevents resource consumption spikes by ensuring resources are already allocated and ready when functions need to execute.
3Adaptability or versatility
If containerized functions are used to achieve serverless execution, then deployment flexibility is improved, but execution speed deteriorates due to cold starts
Solution Approach 1:
The system performs preliminary execution environment setup by maintaining a persistent proxy service that keeps the execution context warm. This preliminary action ensures that when function code needs to execute, the environment is already prepared, eliminating the need for time-consuming container initialization and significantly improving execution speed while maintaining deployment flexibility.
Solution Approach 2:
An intermediary proxy service is deployed that handles the execution overhead, allowing the actual function code to run faster. The proxy manages container lifecycle, handles cold starts in advance, and mediates between the deployment system and function execution, thereby improving execution speed without sacrificing the adaptability and versatility of serverless deployment.
Data Source
AI summary
A system can monitor a containerized function for a number of iterations of the containerized function. The system can, for the respective iterations, determine respective upper limits of amounts of time for which the containerized function is idle, and determine respective numbers of cold starts of the containerized function. The system can determine whether a percentage of the respective iterations, for which corresponding upper limits, of the respective upper limits, on amount of time for which the containerized function is idle, is below a threshold idleness value, and for which corresponding numbers of cold starts, of the respective numbers of cold starts, are above a threshold cold start value. The system can, in response to determining that the percentage of the respective iterations is above a threshold successful probes value, deploy a microservice that is configured to execute the function.


