Server Fleet Configuration Deployment with Segmented Rollout

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed systems, the safe deployment of configurations across multiple hosts is challenging due to concurrent changes from different producers, leading to misattribution of errors and potential service outages, as existing methods lack effective isolation and rollback mechanisms.

Innovation Solution

A system that shifts the responsibility of configuration deployment and testing from producers to consumers, allowing gradual exposure of new configurations to traffic while monitoring performance, isolating changes, and enabling centralized or localized rollback to prevent service outages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If configuration changes are deployed concurrently across multiple hosts from different producers, then deployment speed increases, but error attribution becomes difficult and service outages may occur

Engineering Contradiction:
Improvedeployment speedVSAvoiderror attribution accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the fleet of hosts into multiple subsets and schedules configuration deployments sequentially across these subsets rather than concurrently across all hosts. This segmentation allows the system to maintain high deployment speed while ensuring that errors can be attributed to specific configuration changes and subsets, resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If configuration changes are deployed to the entire fleet at once, then deployment time is reduced, but the risk of service outages increases

Engineering Contradiction:
Improvedeployment timeVSAvoidservice availability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent implements preliminary actions by first deploying configuration changes to a subset of hosts before rolling them out to the entire fleet. This preliminary deployment allows the system to validate configuration changes on a smaller scale, reducing the risk of widespread service outages while still achieving relatively fast deployment times through the subsequent sequential rollout to remaining hosts.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple configuration changes are tested concurrently on the same hosts, then testing efficiency improves, but the accuracy of identifying problematic configurations decreases

Engineering Contradiction:
Improvetesting efficiencyVSAvoidconfiguration impact accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent segments the testing process by assigning different configuration changes to different subsets of hosts, ensuring that each configuration change is tested in isolation on its designated subset. This segmentation maintains testing efficiency through parallel execution while preserving the ability to accurately attribute performance issues to specific configuration changes, resolving the contradiction between productivity and measurement precision.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11281459B2Safe deployment of configurations to server fleets
Publication Date: 2022.03.22 AMAZON TECH INC
  • US11281459B2 patent drawing
  • US11281459B2 patent drawing
  • US11281459B2 patent drawing

AI summary

Methods, systems, and computer-readable media for safe deployment of configurations to server fleets are disclosed. A host processes requests to a service according to a control versions of a first configuration and a second configuration. After receiving an experimental version of the first configuration, a host processes some requests to the service according to the control versions of the first configuration and the second configuration, and other requests according to the experimental version of the first configuration and the control version of the second configuration. The experimental version of the first configuration is approved or rejected based at least in part on performance of the service. The host then processes some requests to the service according to the experimental version of the first configuration and the control version of the second configuration, and other requests according to the experimental versions of the first configuration and the second configuration.