Automated Server Update Coordination via Segmented Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing environments, maintaining scalability, availability, and performance while managing heterogeneous computing resources that require software updates is complex, especially due to differences in devices and the need to minimize customer impact during deployments.

Innovation Solution

A deployment subsystem coordinates software updates across server computer systems, using update scripts to manage operations such as generating redundant data copies and scheduling updates to minimize downtime, and maintains a wait list for systems that fail initial updates to retry without affecting overall service availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If software updates are deployed to all server computer systems simultaneously, then update speed is improved, but service availability deteriorates due to potential failures and downtime

Engineering Contradiction:
Improveupdate speedVSAvoidservice availability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent segments the fleet of server computer systems into multiple groups or cohorts, deploying updates to each segment sequentially rather than simultaneously. This allows the update process to progress through the fleet in controlled waves, maintaining service availability while achieving comprehensive updates over time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary testing and validation steps before full-scale deployment. Update scripts are tested on subset systems first, and only after successful validation are they propagated to the broader fleet. This preliminary action prevents widespread failures and maintains service availability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If software updates are deployed to ensure high availability, then service continuity is improved, but update completion time worsens due to systematic failure handling and retries

Engineering Contradiction:
Improveservice continuityVSAvoidupdate completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements self-healing mechanisms where the update system automatically detects failures, retries updates on affected systems, and recovers from errors without manual intervention. This self-service approach maintains service continuity while systematically addressing update failures, reducing the overall time loss compared to manual recovery processes.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If heterogeneous computing resources are managed with uniform update procedures, then deployment simplicity is improved, but update effectiveness worsens due to device differences

Engineering Contradiction:
Improvedeployment simplicityVSAvoidupdate effectiveness
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements local quality by tailoring update procedures to specific device characteristics. Update scripts are customized or configured based on the heterogeneous nature of individual server systems, addressing device-specific requirements while maintaining overall deployment manageability. This ensures update effectiveness across diverse hardware and software environments.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11003437B2Automated transparent distribution of updates to server computer systems in a fleet
Publication Date: 2021.05.11 AMAZON TECH INC
  • US11003437B2 patent drawing
  • US11003437B2 patent drawing
  • US11003437B2 patent drawing

AI summary

A deployment subsystem provides updates to an application and/or software executed by server computer systems. The update is included in an update script. Execution of the update script by a server computer system causes the server computer system to execute a set of checks. After completing the set of checks the server computer system may execute the update to the application and/or software executed by server computer systems.