Dynamic Restore Policy for Microservice Dependencies

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud native applications with microservices face challenges in data corruption and lack of fine-grained control during restore processes, particularly due to frequent updates and interdependent microservices, which are not well-suited for dynamic cloud environments.

Innovation Solution

A data protection system with automated smart restore functionality that creates granular restore policies for microservices, using service mesh connections to identify and restore only necessary microservices to a previous point in time, ensuring interdependent services are restored together while independent services can be updated separately.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual restore processes are used to identify and restore failed microservices, then fine-grained control over restore operations is achieved, but the process is time-consuming and not suitable for dynamic cloud environments

Engineering Contradiction:
Improvefine-grained controlVSAvoidrestore time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system implements self-service by automatically detecting microservice failures, identifying affected dependent microservices, and executing restore operations without manual administrator intervention. The automated smart restore functionality monitors the system state, determines which microservices need restoration, and performs the restore process autonomously, eliminating the time-consuming manual steps while maintaining fine-grained control.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by pre-establishing dependency relationships between microservices and pre-configuring restore policies. When a failure occurs, the system already has the information needed to quickly determine which microservices are affected and should be restored together, enabling rapid automated response without needing to analyze dependencies in real-time during the restore process.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If bulk random restore processes are used, then restore operations can be performed, but fine-grained control over restore order and scope is lost

Engineering Contradiction:
Improverestore operation speedVSAvoidrestore control granularity
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system applies segmentation by dividing the restore process into discrete, controllable units at the microservice level. Instead of treating restores as bulk operations, the system identifies individual failed microservices and their specific dependent services, creating segmented restore tasks that can be precisely controlled and executed in the correct order based on dependency relationships.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements dynamics by making the restore process adaptive to the specific failure scenario. The restore scope and order are dynamically determined based on the actual failure state and dependency relationships, rather than following a fixed bulk restore pattern. This allows the system to adjust the restore granularity and sequence automatically based on the situation.

Inventive Principle:
Principle #15Dynamics

3Productivity

If microservices are updated frequently to improve productivity, then application development efficiency increases, but the risk of data corruption and system failure increases

Engineering Contradiction:
Improveapplication development efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system provides beforehand cushioning by implementing automated restore capabilities that stand ready to compensate for potential update failures. Before frequent updates can cause data corruption or system failure, the system has pre-configured restore policies and automated detection mechanisms in place to quickly respond to and recover from update-related issues, cushioning against the increased risks of frequent updates.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The system uses feedback by continuously monitoring microservice health and automatically detecting failures caused by updates. This real-time feedback enables the system to identify when an update has caused a failure and trigger appropriate restore operations, creating a closed-loop system where update risks are continuously monitored and corrected, allowing frequent updates while maintaining reliability.

Inventive Principle:
Principle #23Feedback

4Ease of operation

If interdependent microservices are restored independently, then individual service restoration is simplified, but failures can propagate to dependent microservices

Engineering Contradiction:
Improverestore operation simplicityVSAvoidsystem stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system applies merging by automatically identifying and grouping interdependent microservices that need to be restored together. When a failure is detected, the system traces dependency relationships to determine which microservices are affected and combines them into a coordinated restore operation, ensuring that dependent services are restored together while maintaining the simplicity of automated execution.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11385965B2Automatically setting a dynamic restore policy in a native cloud environment
Publication Date: 2022.07.12 EMC IP HLDG CO LLC
  • US11385965B2 patent drawing
  • US11385965B2 patent drawing
  • US11385965B2 patent drawing

AI summary

One example method includes identifying a group of microservices that form respective portions of an application, capturing any relations among microservices in the group of microservices, generating one or more restore policies for the application, based on identified relations among the microservices in the group of microservices, and configuring one of the restore policies so that such restore policy specifies restoring, together, a microservice that was identified as a partial cause of a problem, and any other microservices that are dependent on that microservice.