Feature Deployment Service Dependency Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software deployment methods often result in errors and outages due to the lack of mechanisms for determining feature dependencies, leading to out-of-cycle deployments where changes are applied to devices before their prerequisites are met, causing unnecessary errors and downtime.

Innovation Solution

A data processing system and method that receive information about a feature, including dependency requirements, identify a target build version, determine if a device meets this version, and tag it for deployment, ensuring that changes are deployed only when all dependencies are satisfied, using a feature deployment service and dependency engine to manage cross-dependencies during deployment and rollback.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If changes are deployed in stages to different groups of devices at highly frequent levels, then productivity is improved, but reliability deteriorates due to unknown defects and design flaws being introduced to devices before dependencies are satisfied

Engineering Contradiction:
Improvedeployment frequencyVSAvoidsoftware stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by checking feature dependencies and determining a target build version before deploying changes to devices. The deployment service evaluates whether required features are present in the device's current software version and only advances deployment when dependencies are satisfied, preventing errors before they occur.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If changes are deployed rapidly across computing devices, then productivity is improved, but the complexity of determining proper deployment timing increases due to multiple dependencies and staged deployments

Engineering Contradiction:
Improvedeployment speedVSAvoiddeployment coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The deployment service automatically evaluates feature dependencies and determines deployment readiness without manual intervention. The system self-services by checking whether required features are present in device build versions, automatically identifying the target build version, and making deployment decisions based on dependency satisfaction, thereby reducing coordination complexity.

Inventive Principle:
Principle #25Self-service

3Reliability

If feature dependencies are checked and target build versions are determined before deployment, then reliability is improved, but the time required for deployment increases due to evaluation and tagging processes

Engineering Contradiction:
Improvedeployment accuracyVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs dependency checks and target build version determination as preliminary actions before deployment. The deployment service evaluates features and their dependencies in advance, determines the appropriate target build version, and tags devices as ready for deployment, ensuring reliability while streamlining the subsequent deployment process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12175234B2Method and system for implementing safe deployment of features
Publication Date: 2024.12.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12175234B2 patent drawing
  • US12175234B2 patent drawing
  • US12175234B2 patent drawing

AI summary

A method of and system for implementing a safe deployment of a first feature in a computing environment is carried out by receiving registration information for the first feature, the registration information including a second feature on which the first feature depends or a feature type on which the first feature depends. Based on the second feature or the feature type, a target build version that meets dependency requirements of the second feature or the feature type is then identified before obtaining a list of build versions for a plurality of computing devices in the computing environment. From among the plurality of computing devices, one or more computing devices that have build versions that meet the target build version are then identified before marking the identified computing devices as being available for deployment of the feature and advancing deployment of the feature to those computing devices.