Incremental Server Update Mechanism for Enterprise Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Large, mission-critical enterprise content management systems face challenges in identifying sufficient maintenance windows for system upgrades due to their critical nature and high user dependency, leading to delayed upgrades and system downtime.
Innovation Solution
Implementing incremental system updates by enabling different server instances to operate at different code revision levels, with a packaging mechanism that controls new data elements and functional behaviors to ensure compatibility and integrity across all instances, allowing for selective deployment of add-in components based on minimum required code revision levels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If system upgrades are performed on mission-critical enterprise content management systems, then system functionality and code revision levels are improved, but system downtime increases and user availability decreases
Solution Approach 1:
The system is divided into multiple server instances that can be independently updated. Each server instance can be upgraded separately while others remain operational, allowing continuous system availability. The upgrade process segments the monolithic update into smaller, manageable portions applied to individual servers rather than requiring complete system shutdown.
Solution Approach 2:
The system dynamically manages multiple server instances with different code revision levels simultaneously. The load balancer dynamically routes requests to appropriate server instances based on their update status, enabling flexible transition from older to newer versions without fixed downtime windows. This dynamic approach allows the system to adapt its configuration in real-time during the upgrade process.
2Stability of the object's composition
If all server instances are updated simultaneously to ensure consistency, then system integrity is maintained, but system availability and productivity decrease
Solution Approach 1:
The server fleet is segmented into multiple independent instances that can be updated in stages. Rather than treating the system as a single unit requiring simultaneous update, each server instance is independently manageable, allowing progressive migration to new code revisions while maintaining overall system integrity through coordinated management.
Solution Approach 2:
Different server instances can operate at different code revision levels simultaneously, with each instance having its own local quality state. The load balancer intelligently distributes traffic based on the specific capabilities and update status of each server instance, allowing the system to leverage both old and new features across different nodes without requiring uniformity across the entire system.
3Productivity
If incremental updates are applied to individual server instances, then system availability is maintained, but complexity of managing different code revision levels increases
Solution Approach 1:
A load balancer acts as an intermediary between client requests and server instances with different code revision levels. This intermediary abstracts the complexity of managing heterogeneous server versions from the rest of the system, intelligently routing requests to appropriate servers based on their update status, capabilities, and current workload, thereby simplifying the management of code revision diversity.
Solution Approach 2:
The system manages code revision complexity by treating server instance configuration as a dynamic parameter rather than a fixed state. Each server instance can transition between different code revision parameters independently, and the load balancer adjusts its routing parameters in real-time based on the current state of server instances, allowing flexible management of version diversity without rigid constraints.
4Reliability
If maintenance windows are scheduled for system updates, then update integrity is ensured, but user dependency and operational disruption increase
Solution Approach 1:
The update process is segmented into independent server instance updates rather than a monolithic maintenance window. This allows the system to apply updates continuously across different servers without requiring coordinated downtime, effectively eliminating traditional maintenance windows while maintaining update integrity through controlled, incremental deployment to individual instances.
Solution Approach 2:
The system maintains continuous operational availability during the update process by ensuring that at least one server instance remains operational at all times. The update process is designed to preserve useful action continuity by transitioning between server instances seamlessly, preventing any interruption in service while still applying necessary updates to maintain system integrity and security.
Data Source
AI summary
According to one embodiment of the present invention, a computer system updates a system including a plurality of sever instances, and includes at least one processor. The computer system determines a level of configuration for each operating server instance. One or more sets of operational features are added to the system based on a comparison between the determined levels of configuration of the operating server instances and minimum levels of configuration associated with the one or more sets of operational features. Server operations are performed and one or more corresponding sets of operational features are applied to the server operations in response to the addition of those corresponding sets of operational features to the system. Embodiments of the present invention further include a method and computer program product for updating a system including a plurality of server instances in substantially the same manner described above.


