# US 10,310,966 B1 · Automatic test stack creation via production system replication

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

- Number: US 10,310,966 B1
- Document ID: US10310966B1
- Status: Granted
- Kind: B1
- Application number: 15/611,535
- Filed: 2017-06-01
- Granted: 2019-06-04
- Earliest claimed: 2017-06-01
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Liang Ge; Mohit Gupta
- Web page: https://patentgrep.com/patent/US10310966B1

## CPC

- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 8/60: Software deployment
- G06F 9/45504: {Abstract machines for program code execution, e.g. Java virtual machine [JVM], interpreters or emulators}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- G06F 2009/45591: {Monitoring or debugging support}
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L 43/0817: by checking functioning
- H04L 43/50: Testing arrangements
- 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

A virtual private cloud (VPC) that includes one or more computing devices (e.g., a physical computing device, a virtual computing device, etc.) that each implement a service present in an actual production environment is provided herein. For example, at the request of a user, an instance deployment manager may replicate one or more of the services provided by an actual production environment such that the services can be executed by the computing devices within the VPC. The computing devices within the VPC may be configured to communicate with each other. However, the computing devices may not communicate with devices outside the VPC. Thus, the VPC may represent a sandboxed or isolated test stack that allows a user to independently test code within a replicated production environment.

## Claims

### Claim 1

A computer-implemented method of launching a test stack, the method comprising:
as implemented by one or more computing devices configured with specific computer-executable instructions,
receiving a request for the test stack, wherein the request comprises user credentials and an identification of one or more production system services;
determining that the user credentials are verified;
transmitting an instruction to launch a virtual private cloud network environment (VPC) and one or more virtual computing devices in the VPC, wherein the one or more virtual computing devices, when launched, are arranged within a virtualized local area network, the virtualized local area network generated by a substrate network hosting the VPC, and wherein the VPC is configured to simulate test code in a replica of a production environment;
determining that a first virtual computing device in the one or more virtual computing devices is available;
retrieving first code associated with a first production system service in the one or more production system services;
causing the first virtual computing device to implement the first code;
and
transmitting a notification that the VPC is available to simulate the test code.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
querying whether a second virtual computing device in the one or more virtual computing devices is available;
determining that the second virtual computing device is unavailable;
after a threshold period of time expires, querying whether the second virtual computing device is available; and
determining that the second virtual computing device is available.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
retrieving second code associated with a second production system service in the one or more production system services;
causing a second virtual computing device in the one or more virtual computing devices to implement the retrieved second code;
querying whether the second virtual computing device comprises a healthy status;
determining that the second virtual computing device comprises an unhealthy status;
causing the second virtual computing device to re-store the retrieved second code;
querying whether the second virtual computing device comprises the healthy status after re-storing the retrieved second code; and
determining that the second virtual computing device comprises the healthy status.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising determining that the first virtual computing device comprises a healthy status, wherein the healthy status comprises an indication that the first virtual computing device can execute the first code without runtime errors.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the first production system service comprises one of a routing service, a control plane service, a persistent block storage service, a data center placement control service, a client service, or a user metadata management service.

### Claim 6

A system, the system comprising:
a service data store comprising first code associated with a first production system service in a plurality of production system services; and
an instance deployment manager comprising a processor configured with specific computer-executable instructions that, when executed, cause the instance deployment manager to at least:
receive a request for a test stack, wherein the request comprises an identification of the first production system service;
transmit an instruction to launch a virtual private cloud network environment (VPC) and one or more virtual computing devices in the VPC, wherein the one or more virtual computing devices, when launched, are arranged within a virtualized local area network, and wherein the VPC is configured to simulate test code in a replica of a production environment;
determine that a first virtual computing device in the one or more virtual computing devices is available;
retrieve the first code from the service data store; and
cause the first virtual computing device to implement the retrieved first code.

### Claim 7 (depends on 6)

The system of claim 6, wherein the specific computer-executable instructions, when executed, further cause the instance deployment manager to at least:
query whether a second virtual computing device in the one or more virtual computing devices is available;
determine that the second virtual computing device is unavailable;
after a threshold period of time expires, query whether the second virtual computing device is available; and
determine that the second virtual computing device is available.

### Claim 8 (depends on 6)

The system of claim 6, wherein the specific computer-executable instructions, when executed, further cause the instance deployment manager to at least:
retrieve second code from the service data store, wherein the second code corresponds to a second production system service in the plurality of production system services;
cause a second virtual computing device in the one or more virtual computing devices to implement the retrieved second code;
query whether the second virtual computing device comprises a healthy status;
determine that the second virtual computing device comprises an unhealthy status;
in response to the determination that the second virtual computing device comprises the unhealthy status, cause the second virtual computing device to re-store the retrieved second code;
query whether the second virtual computing device comprises the healthy status after re-storing the retrieved second code; and
determine that the second virtual computing device comprises the healthy status.

### Claim 9 (depends on 8)

The system of claim 8, wherein the healthy status comprises an indication that the second virtual computing device can execute the second code without runtime errors.

### Claim 10 (depends on 6)

The system of claim 6, wherein the first production system service comprises one of a routing service, a control plane service, a persistent block storage service, a data center placement control service, a client service, or a user metadata management service.

### Claim 11 (depends on 6)

The system of claim 6, wherein the first virtual computing device is restricted from communicating with physical computing devices external to the VPC.

### Claim 12 (depends on 6)

The system of claim 6, wherein a launch of the test stack fails if a second virtual computing device in the one or more virtual computing devices is unavailable after a threshold period of time.

### Claim 13 (depends on 6)

The system of claim 6, wherein a launch of the test stack fails if a second virtual computing device in the one or more virtual computing devices comprises an unhealthy status after reactivation of the second virtual computing occurs a threshold number of times.

### Claim 14 (depends on 6)

The system of claim 6, wherein the request further comprises an identification of a version of the first production system service and a number of first production system services to provision in the test stack.

### Claim 15 (depends on 14)

The system of claim 14, wherein the number of first production system services to provision in the test stack is greater than one, and wherein the specific computer-executable instructions, when executed, further cause the instance deployment manager to at least cause a second virtual computing device in the one or more virtual computing devices to implement the retrieved first code.

### Claim 16

Non-transitory, computer-readable storage media comprising computer-executable instructions for launching a test stack, wherein the computer-executable instructions, when executed by a computer system, cause the computer system to:
process a request for the test stack, wherein the request comprises an identification of a first production system service in a plurality of production system services;
transmit an instruction to launch a virtual private cloud network environment (VPC) and one or more virtual computing devices in the VPC, wherein the one or more virtual computing devices, when launched, are arranged within a virtualized local area network, and wherein the VPC is configured to simulate test code in a replica of a production environment;
determine that a first virtual computing device in the one or more virtual computing devices is available; and
cause the first virtual computing device to implement first code.

### Claim 17 (depends on 16)

The non-transitory, computer-readable storage media of claim 16, wherein the computer-executable instructions further cause the computer system to:
query whether a second virtual computing device in the one or more virtual computing devices is available;
determine that the second virtual computing device is unavailable;
after a threshold period of time expires, query whether the second virtual computing device is available; and
determine that the second virtual computing device is available.

### Claim 18 (depends on 16)

The non-transitory, computer-readable storage media of claim 16, wherein the computer-executable instructions further cause the computer system to:
cause a second virtual computing device in the one or more virtual computing devices to implement second code;
query whether the second virtual computing device comprises a healthy status;
determine that the second virtual computing device comprises an unhealthy status;
in response to the determination that the second virtual computing device comprises the unhealthy status, cause the second virtual computing device to re-store the second code;
query whether the second virtual computing device comprises the healthy status after re-storing the retrieved second code; and
determine that the second virtual computing device comprises the healthy status.

### Claim 19 (depends on 18)

The non-transitory, computer-readable storage media of claim 18, wherein the healthy status comprises an indication that the second virtual computing device can execute the second code without runtime errors.

### Claim 20 (depends on 16)

The non-transitory, computer-readable storage media of claim 16, wherein the first production system service comprises one of a routing service, a control plane service, a persistent block storage service, a data center placement control service, a client service, or a user metadata management service.
