Zero Downtime Code Deployment via Segmented Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems face challenges in processing online financial transactions within the required time frame when the financial institution's network or servers are unavailable, leading to frustrating transaction failures.
Innovation Solution
A computer-implemented method that allows a first computing device to download and switch to a new version of code for processing requests while still handling incoming requests with the prior version of code, enabling seamless transition and validation before deploying the new code to other devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the server downloads and switches to a new version of code, then the code version is updated, but service interruption occurs during the switch
Solution Approach 1:
The system downloads the new version of code in advance while the server is still running with the old version. The new code is stored in a temporary location and validated before switching, ensuring that service interruption is minimized and only occurs if necessary.
Solution Approach 2:
The code deployment process is segmented into distinct phases: downloading new code while old code operates, validating the new code separately, and then switching. This segmentation allows the system to maintain service continuity by isolating the update process from the operational process.
2Reliability
If the server validates new code before switching, then system stability is improved, but deployment time increases
Solution Approach 1:
Validation of the new code version is performed in advance, while the server continues to operate with the old version. This preliminary validation ensures system stability is maintained while the new code is being prepared, and deployment can proceed quickly once validation succeeds.
3Loss of time
If multiple computing devices are used for code deployment, then service continuity is maintained, but system complexity increases
Solution Approach 1:
The system is segmented into multiple computing devices, each responsible for servicing specific nodes. This segmentation enables service continuity as devices can be updated independently, with traffic routed to available devices during transitions.
Solution Approach 2:
A load balancer or routing mechanism acts as an intermediary to distribute requests to available computing devices. This intermediary manages the complexity of multi-device coordination while maintaining service continuity for users.
Data Source
AI summary
A method, computer program product, and computer system for downloading, by a first computing device, code associated with processing requests directed toward a datastore, wherein the code is a new version of code to replace a prior version of code associated with processing requests directed toward the datastore. The first computing device may receive a first request directed toward the datastore, wherein the first request may be received while downloading the new version of code. The first computing device may process the first request directed toward the datastore using the prior version of code while downloading the new version of code. The first computing device may switch from the prior version of code to the new version of code. A second request may be directed to be processed by a second computing device, wherein the second request is directed toward the datastore to be processed by the second computing device while the first computing device is switching from the prior version of code to the new version of code.


