# US 11,115,344 B2 · Computerized methods and systems for migrating cloud computer services

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

- Number: US 11,115,344 B2
- Document ID: US11115344B2
- Status: Granted
- Kind: B2
- Application number: 16/272,060
- Filed: 2019-02-11
- Published: 2020-01-02
- Granted: 2021-09-07
- Earliest claimed: 2018-06-27
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Paul G. Greenstein; Michael J. Carlson
- Web page: https://patentgrep.com/patent/US11115344B2

## CPC

- H04L 41/0813: characterised by the conditions triggering a change of settings
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0649: {Lifecycle management}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- H04L 41/0897: by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
- H04L 45/76: Routing in software-defined topologies, e.g. routing between virtual machines
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 47/83: based on usage prediction
- H04L 45/00: Routing or path finding of packets in data switching networks (routing or path finding in wireless networks H04W40/00)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and other embodiments associated with migrating instances of services are described. In one embodiment, a method includes maintaining a first zone of computing resources used to host an instance of a service. The example method may also include routing access requests to the instance. The example method may also include constructing a pre-provisioned instance of the service within a second zone. The pre-provisioned instance comprises a computing environment of computing resources of the second zone and executable code of an application stack of the service. The example method may also include provisioning the pre-provision instance as a migrated instance by executing the executable code of the application stack in response to a request to migrate the instance. The example method may also include routing subsequent access requests to the migrated instance.

## Claims

### Claim 1

A non-transitory computer-readable medium storing computer-executable instructions that when executed by a processor of a computing device causes the processor to:
maintain a first zone of computing resources used to host an instance of a service, wherein the instance executes executable code of an application stack of the service using the computing resources of the first zone;
wherein one or more remote computers are assigned to access the instance of the service and wherein the one or more remote computers submit access requests for the service;
route the access requests for the service to the instance within the first zone;
maintain a second zone of computing resources used to host instances of services;
construct a pre-provisioned instance of the service within the second zone, wherein the pre-provisioned instance comprises a computing environment of computing resources of the second zone and the application stack of the service; and
in response to receiving a request to migrate the instance, reconstruct the instance by:
provisioning the pre-provisioned instance as a migrated instance of the service within the second zone, wherein the migrated instance executes the executable code of the application stack using the computing resources of the second zone;
rerouting subsequent access requests for the service within the first zone to the migrated instance within the second zone; and
drain pending access requests being processed by the instance in the first zone by:
(i) allowing the instance to complete the pending access requests; and
(ii) after the pending access requests are completed, turn off access to a database comprising client data used by the instance in the first zone.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the instructions comprise instructions to:
in response to routing the access requests to the migrated instance:
determine that the instance in the first zone is marked for debugging and in response:
(i) perform a debugging process upon the instance in the first zone; and
(ii) in response to an expiration of a time period, decommission the instance by deallocating the computing resources of the first zone from the instance; and
determine that the instance in the first zone is not marked for debugging and in response:
decommission the instance by deallocating the computing resources of the first zone from the instance.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the instructions comprise instructions to:
in response to routing the access requests to the migrated instance:
disassociate the instance from client data stored within a computing environment; and
associate the migrated instance with the client data for processing of the client data.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the instructions comprise instructions to:
identify a software upgrade for the service; and
implement the software upgrade upon the executable code within the pre-provisioned instance.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the instructions to provision the pre-provisioned instance comprise instructions to:
after turning off access by the instance to a database comprising client data
insert a database connection string of the instance into the migrated instance for accessing the database.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the instructions to provision the pre-provisioned instance comprise instructions to:
disable monitoring of resource usage by the instance; and
enable monitoring of resource usage by the migrated instance.

### Claim 7

A computing system, comprising:
a processor connected to memory; and
a migration module stored on a non-transitory computer readable medium and configured with instructions that when executed by the processor cause the processor to:
maintain a first zone of computing resources used to host an instance of a service, wherein the instance executes executable code of an application stack of the service using the computing resources of the first zone;
wherein one or more remote computers are assigned to access the instance of the service and wherein the one or more remote computers submit access requests for the service;
route the access requests for the service to the instance within the first zone;
maintain a second zone of computing resources used to host instances of services;
construct a pre-provisioned instance of the service within the second zone, wherein the pre-provisioned instance comprises a computing environment of computing resources of the second zone and the application stack of the service; and
in response to receiving a request to migrate the instance, reconstruct the instance by causing at least the processor to:
provision the pre-provisioned instance as a migrated instance of the service within the second zone, wherein the migrated instance executes the executable code of the application stack using computing resources of the second zone;
route the access requests directed for the instance of the service within the first zone to the migrated instance within the second zone; and
drain pending access requests being processed by the instance in the first zone.

### Claim 8 (depends on 7)

The computing system of claim 7, wherein the instructions comprise instructions that cause the processor to:
maintain the first zone within a first data center and the second zone within a second data center;
wherein the instructions to route the access requests to the migrated instance within the second zone comprise instructions that cause the processor to:
update a routing tier of the second data center to point to the migrated instance of the service for routing the access requests to the migrated instance within the second zone of the second data center;
update a routing tier of the first data center to stop pointing to the instance of the service for routing the access requests to the instance;
migrate client data processed by the instance from the first data center to the second data center;
update a database connection string of the migrated instance to point to the migrated client data within the second data center;
wherein the instructions to migrate comprise instructions that cause the processor to:
perform a mirroring operation to mirror the client data from the first data center to the second data center; and
in response to the mirroring operation completing, decommission storage of the client data by the first data center.

### Claim 9 (depends on 8)

The computing system of claim 8, wherein the instructions to provision comprise instructions that cause the processor to:
transmit a notification of the migration to a monitoring module, wherein the notification instructs the monitoring module to stop monitoring resource usage by the instance of the first zone within the first data center and to start monitoring resource usage by the migrated instance of the second zone within the second data center.

### Claim 10 (depends on 8)

The computing system of claim 8, wherein the instructions to route comprise instructions that cause the processor to:
update domain name system translation of an instance endpoint of the service to point to a load balancer of the second data center for routing the access requests to the migrated instance.

### Claim 11 (depends on 7)

The computing system of claim 7, wherein the instructions comprise instructions that cause the processor to:
identify a set of instances of services that have a dependency upon the instance of the service; and
migrate the set of instances from the first zone to the second zone.

### Claim 12

A computer-implemented method, the computer-implemented method involving a computing device comprising a processor, and the computer-implemented method comprising:
maintaining, by the processor, a zone of computing resources used to host an instance of a service, wherein the instance executes executable code of an application stack of the service using the computing resources of the zone;
wherein one or more remote computers are assigned to access the instance of the service and wherein the one or more remote computers submit access requests for the service;
routing, by the processor, the access requests for the service to the instance within the zone;
constructing, by the processor, a pre-provisioned instance of the service within the zone, wherein the pre-provisioned instance comprises a computing environment of computing resources of the zone and the application stack of the service, wherein the pre-provisioned instance is maintained within a non-execution state; and
in response to receiving a request to migrate the instance, reconstructing the instance by:
provisioning the pre-provisioned instance into an execution state as a migrated instance of the service, wherein the migrated instance executes the executable code of the application stack using computing resources of the zone;
rerouting the access requests to the migrated instance of the service; and
draining pending access requests being processed by the instance in the zone by allowing the instance to complete the pending access requests.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, further comprising:
after draining the pending access requests, decommissioning the instance by deallocating the computing resources from the instance.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, further comprising:
determining that the instance is marked for debugging;
performing a debugging process upon the instance; and
in response to an expiration of a time period, decommissioning the instance by deallocating the computing resources from the instance.
