Repurposing Serverless Application Copies for Debugging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to maintaining serverless or FaaS applications are problematic due to their complex nature, lacking application state information, making debugging and troubleshooting error-prone, laborious, and risky, especially when relying on production system logs or performing debugging sessions that can lead to data loss and contamination.
Innovation Solution
A system and technique for automated capture, recovery, and repurposing of serverless applications using a serverless application manifest (SAM) that includes application function descriptors, backend services descriptors, application function mappings, and version details, allowing for the creation of backup copies that can be easily tested and debugged in a separate environment without affecting production.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If debugging sessions are performed on production systems, then troubleshooting can be done directly, but data loss and data contamination occur
Solution Approach 1:
The patent creates a copy of the production serverless application environment that can be used for debugging and troubleshooting. This copy includes replicated function code, configuration settings, and runtime environment, allowing developers to perform debugging operations without affecting the production system's data integrity while maintaining full debugging accessibility.
Solution Approach 2:
The patent segments the debugging function from the production environment by creating a separate copy of the application. This segmentation allows debugging operations to be performed in isolation, preventing any potential data loss or contamination of production data while maintaining ease of operation for troubleshooting.
2Difficulty of detecting and measuring
If message logs are reviewed for troubleshooting, then problem diagnosis can be attempted, but sufficient detail is lacking and parsing requires excessive time
Solution Approach 1:
The patent creates a copy of the production environment that preserves detailed runtime information and execution states. This copy enables comprehensive problem detection with full detail available for analysis, eliminating the need to parse through compressed or overwritten message logs and significantly reducing troubleshooting time.
3Ease of manufacture
If serverless applications are maintained using conventional approaches, then basic backup and debugging can be performed, but the complex nature and lack of application state information make these processes error-prone and laborious
Solution Approach 1:
The patent creates a complete copy of the serverless application environment that includes all function code, configuration settings, and runtime state information. This copy approach simplifies maintenance operations by providing a complete, self-contained environment that can be manipulated without affecting production, thereby reducing errors and labor associated with maintaining complex serverless applications.
Solution Approach 2:
The patent performs preliminary actions by creating and maintaining copies of the serverless application environment before maintenance operations are needed. This advance preparation includes replicating the application structure, configuration, and state information, which simplifies subsequent maintenance tasks and reduces the complexity of working with serverless applications that lack persistent state.
Data Source
AI summary
A selection is received of a copy of an application backed up from a first FaaS environment for deployment into a second FaaS environment. An application manifest used to backup the application is accessed. The manifest specifies application functions, backend services, and application function mappings. An application function interacts with a backend service in executing the application. An application function mapping includes a condition under which the application function is invoked. The copy of the application is restored into the second FaaS environment. A condition specified in the restored version of the application function mapping is changed. Based on the changed condition, the restored version of the application function is invoked when the restored version of the backend service performs an operation, and the application function of the application corresponding to the restored version of the application function is not invoked.


