Policy Driven Flight Management for Feature Rollout

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional deployment systems for hosted services with multiple features face challenges such as lack of gradual rollout protection, inadequate ring validation, unreliable flight train delivery, and inefficient build validation, leading to costly errors and increased developer workload.

Innovation Solution

Implementing a policy-driven flight management system using a flight state machine that retrieves policies from a policy store to manage feature rollouts across multiple deployment environments, allowing for controlled and validated deployments based on defined rules and states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual configuration files are used for feature deployment, then developers can control the rollout process, but the system lacks gradual rollout protection and real ring validation

Engineering Contradiction:
Improvegradual rollout protectionVSAvoiddeployment system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A flight state machine is introduced as an intermediary component between the deployment system and feature rollout process. This state machine automatically manages the gradual rollout across multiple rings (development, testing, production) by validating flight configurations and enforcing rollout policies, thereby providing reliability without requiring complex manual procedures

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The deployment system performs self-validation through automated ring validation checks and flight configuration verification. The system automatically detects and prevents invalid deployments without requiring external manual verification, enabling reliable gradual rollout while maintaining manageable system complexity

Inventive Principle:
Principle #25Self-service

2Productivity

If developers manually manage configuration files for each environment, then deployment control is possible, but user errors increase and productivity decreases

Engineering Contradiction:
Improvedeployment efficiencyVSAvoidconfiguration management ease
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The flight state machine automatically generates and validates flight configurations for different environments, eliminating the need for developers to manually create and manage configuration files. The system self-services the deployment process by automatically enforcing policies and validating configurations, thereby improving productivity without sacrificing operational ease

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A single flight configuration can be universally applied across multiple environments (development, testing, production) through the flight state machine's environment-agnostic validation and deployment logic. This universal approach eliminates the need for separate manual configuration management for each environment, improving both productivity and ease of operation

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If incremental builds are used for feature deployment, then deployment speed increases, but basic errors are not caught leading to costly build breaks

Engineering Contradiction:
Improvedeployment speedVSAvoidbuild validation reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The flight state machine performs preliminary validation of flight configurations and build artifacts before incremental deployment begins. By checking for basic errors and validating configurations in advance, the system prevents costly build breaks while maintaining fast incremental deployment speeds

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms that continuously monitor the deployment process and provide validation results at each stage. This feedback loop catches errors early in the incremental build process, preventing propagation of defects while maintaining deployment speed through automated error detection and reporting

Inventive Principle:
Principle #23Feedback

4Loss of time

If fast deployment is implemented, then time to market improves, but control over deployment speed and risk management decreases

Engineering Contradiction:
Improvedeployment timeVSAvoidrisk control capability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The flight state machine enables dynamic control of deployment speed by allowing configuration of rollout rates, batch sizes, and timing parameters. This dynamic approach maintains fast deployment overall while providing granular control over risk exposure at each stage, balancing speed with reliability

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The deployment process is segmented into multiple controlled stages (rings) with automated validation at each transition. This segmentation allows fast progression through stages while maintaining risk control through systematic validation checkpoints, preventing rushed deployments that could compromise reliability

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10341465B2Policy driven flight management
Publication Date: 2019.07.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10341465B2 patent drawing
  • US10341465B2 patent drawing
  • US10341465B2 patent drawing

AI summary

A hosted service may include multiple applications and have a large number of active features, each in varying stages of deployment, that are gradually rolled out in one or more deployment environments. The hosted service may include a flight state machine, which may provide policy based flight management for feature rollout. For example, in response to receipt of a flight request associated with a feature of the hosted service, the flight state machine may be configured to retrieve a policy associated with rollout of the feature, determine a flight state, and determine a deployment state of the feature. The flight state machine may then be configured to initiate or continue deployment of the feature in a current deployment environment or initiate deployment of the feature in a next environment based on the policy, the flight state, and the deployment state of the feature.