# US 12,216,556 B2 · Adaptive application recovery

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,556 B2
- Document ID: US12216556B2
- Status: Granted
- Kind: B2
- Application number: 18/480,821
- Filed: 2023-10-04
- Published: 2024-01-25
- Granted: 2025-02-04
- Earliest claimed: 2021-12-10
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Javed Asghar; Rajagopalan Janakiraman; Raghu Rajendra Arur
- Web page: https://patentgrep.com/patent/US12216556B2

## CPC

- G06F 11/203: {using migration}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/3409: {for performance assessment}
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 2201/81: Threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This disclosure describes techniques for adaptive disaster recovery of applications running on network devices. The techniques include generating an application template and an application template clone that include application attributes usable to deploy an application stack at an application site. The techniques also include sending the application template clone to a disaster recovery site group to await deployment instructions. In some examples, an observer may determine that a health metric of the application site indicates that a disaster recovery process be triggered. A disaster recovery site of the disaster recovery site group may be selected based at least in part on a performance metric. The application stack may be deployed at the disaster recovery site utilizing the application template clone.

## Claims

### Claim 1

A computer-implemented method comprising:
sending an application template to an application site group, the application template representing application attributes that are usable to deploy an application stack at an application site of the application site group;
causing the application stack to be deployed at the application site;
generating an application template clone of the application template;
sending the application template clone to one or more disaster recovery sites;
in response to a predicted failure of the application stack at the application site, selecting, based at least in part on a performance metric associated with the one or more disaster recovery sites, a particular disaster recovery site for deployment of the application stack; and
causing the particular disaster recovery site to deploy the application stack using the application template clone.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the application template and the application template clone comprise application structure information and application data that are used to deploy the application stack.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the predicted failure of the application stack is based at least in part on monitoring a health metric that comprises a resource utilization value.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
storing the application template clone in memory at the particular disaster recovery site; and
provisioning the application template clone to deploy the application stack at the particular disaster recovery site in response to the predicted failure of the application stack at the application site.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the performance metric comprises a resource utilization pattern.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
ranking the one or more disaster recovery sites based at least in part on the resource utilization pattern; and
selecting the particular disaster recovery site based at least in part on the ranking.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
monitoring a health metric of the application site after the application stack is deployed at the particular disaster recovery site;
determining that the health metric of the application site has returned to an acceptable level; and
in response to determining that the health metric has returned to an acceptable level, directing application traffic to the application stack at the application site.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, further comprising:
in response to directing application traffic to the application stack at the application site, undeploying the application stack at the particular disaster recovery site.

### Claim 9

A disaster recovery system comprising:
one or more processors; and
one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:
send an application template to an application site group, the application template representing application attributes that are usable to deploy an application stack at an application site of the application site group;
cause the application stack to be deployed at the application site;
generate an application template clone of the application template;
send the application template clone to one or more disaster recovery sites;
monitor the application site running the application stack;
predict a potential failure of the application stack;
based at least in part on predicting the potential failure of the application stack, select a particular disaster recovery site for deployment of the application stack; and
cause the particular disaster recovery site to deploy the application stack using the application template clone.

### Claim 10 (depends on 9)

The disaster recovery system of claim 9, wherein the application template and the application template clone comprise application structure information and application data that are used to deploy the application stack.

### Claim 11 (depends on 9)

The disaster recovery system of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
monitor the application site by monitoring a health metric comprising resource utilization.

### Claim 12 (depends on 9)

The disaster recovery system of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
store the application template clone in memory at the particular disaster recovery site; and
provision the application template clone to deploy the application stack at the particular disaster recovery site in response to the potential failure of the application stack.

### Claim 13 (depends on 9)

The disaster recovery system of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
select the particular disaster recovery site for deployment of the application stack based at least in part on a performance metric associated with the one or more disaster recovery sites.

### Claim 14 (depends on 13)

The disaster recovery system of claim 13, wherein the performance metric comprises a resource utilization pattern, and wherein the computer-executable instructions further cause the one or more processors to:
rank the one or more disaster recovery sites based at least in part on the resource utilization pattern; and
select the particular disaster recovery site based at least in part on the ranking.

### Claim 15 (depends on 9)

The disaster recovery system of claim 9, wherein the computer-executable instructions further cause the one or more processors to:
monitor a health metric of the application site after the application stack is deployed at the particular disaster recovery site;
determine that the health metric of the application site has returned to an acceptable level; and
in response to determining that the health metric has returned to an acceptable level, direct application traffic to the application stack at the application site.

### Claim 16 (depends on 15)

The disaster recovery system of claim 15, wherein the computer-executable instructions further cause the one or more processors to:
in response to directing application traffic to the application stack at the application site, undeploy the application stack at the particular disaster recovery site.

### Claim 17

A method comprising:
generating an application template, the application template representing application attributes that are usable to deploy an application stack at an application site;
causing the application stack to be deployed at the application site utilizing the application template;
generating an application template clone of the application template;
sending the application template clone to multiple disaster recovery sites located in one or more different site groups than the application site;
in response to a predicted failure of the application stack at the application site, selecting a particular individual disaster recovery site based at least in part on a performance metric; and
causing the particular individual disaster recovery site to deploy the application stack using the application template clone.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
monitoring a health metric of the application site; and
predicting the predicted failure of the application stack based at least in part on the monitoring of the health metric.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
based at least in part on the monitoring of the health metric, determining an application tier for a disaster recovery process that includes causing the particular individual disaster recovery site to deploy the application stack using the application template clone.

### Claim 20 (depends on 19)

The method of claim 19, wherein the application tier comprises one of:
the application stack;
the application stack and at least one additional application stack running at the application site; or
the application stack and at least one additional application stack running at another application site within a site group that includes the application site.
