IP Library › Granted Patent US 9,712,411
Granted Patent B2
US 9,712,411 · App. 14/981,629 · Granted Jul 18, 2017

Progressive deployment and termination of canary instances for software analysis

Inventors: Ariel Tseitlin (Sunnyvale, CA); Joseph Sondow (Los Gatos, CA)
Assignee: NETFLIX, INC.
H04L43/08H04L41/0896H04L41/5025H04L41/5096H04L67/10G06F11/368H04L29/0827H04L29/08153
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,712,411
App. No.
14/981,629
Granted
Jul 18, 2017
Kind
B2
Abstract

A data processing method, comprising: using computing apparatus, causing instantiating a plurality of baseline application instances that are running a first version of software, and one or more canary application instances that are running a second version of the software; using computing apparatus including a load balancer, causing selectively routing a first proportion of incoming requests to the baseline instances, and routing a second proportion of the incoming requests to the canary instances; monitoring the plurality of canary instances to collect performance data for performance metrics; determining that the performance data indicates a negative performance issue, and in response thereto: using computing apparatus, automatically updating the first proportion to be larger and updating the second proportion to be smaller, and then reconfiguring the load balancer based upon the first proportion and the second proportion; terminating one or more of the canary application instances.

Claims (32)

1. A computer-implemented method, comprising:

deploying one or more baseline application instances that run a first version of software application code and one or more canary application instances that run a second version of the software application code;

routing a first proportion of incoming requests to the one or more canary application instances;

monitoring the one or more canary application instances relative to one or more performance metrics; and

modifying the first proportion of incoming requests according to the one or more performance metrics.

2. The computer-implemented method of claim 1 , wherein the one or more performance metrics do not indicate a negative performance issue, and modifying the first proportion of incoming requests comprises increasing a size of the first proportion.

3. The computer-implemented method of claim 2 , further comprising deploying one or more additional canary application instances.

4. The computer-implemented method of claim 3 , further comprising terminating at least one of the baseline application instances included in the one or more baseline application instances.

5. The computer-implemented method of claim 1 , wherein the one or more performance metrics indicate a negative performance issue, and modifying the first proportion of incoming requests comprises decreasing a size of the first proportion.

6. The computer-implemented method of claim 5 , further comprising terminating at least one of the one or more canary application instances.

7. The computer-implemented method of claim 1 , further comprising determining whether the one or more performance metrics indicates a negative performance issue by evaluating at least one of (i) a threshold amount of variance, (ii) one or more error messages associated with the one or more performance metrics, and (iii) how much data has been collected for the one or more performance metrics.

8. The computer-implemented method of claim 1 , wherein the one or more baseline application instances are instantiated in a first cluster, and the one or more canary application instances are instantiated in a second cluster.

9. The computer-implemented method of claim 8 , wherein a first cloud service provider instantiates the one or more baseline application instances, and a second cloud service provider different than the first cloud service provider instantiates the one or more canary application instances.

10. A non-transitory computer-readable medium including instructions that, when executed by a processor, cause the processor to perform the steps of:

deploying one or more baseline application instances that run a first version of software application code and one or more canary application instances that run a second version of the software application code;

monitoring the one or more canary application instances relative to one or more performance metrics; and

deploying one or more additional canary application instances when the one or more performance metrics do not indicate a negative performance issue.

11. The non-transitory computer-readable medium of claim 10 , wherein the one or more performance metrics do not indicate a negative performance issue, and further comprising increasing a size of a first proportion of incoming requests routed to the one or more canary application instances.

12. The non-transitory computer-readable medium of claim 11 , further comprising deploying two or more additional canary application instances.

13. The non-transitory computer-readable medium of claim 12 , further comprising terminating at least one of the baseline application instances included in the one or more baseline application instances.

14. The non-transitory computer-readable medium of claim 10 , wherein the one or more performance metrics indicate a negative performance issue, and further comprising decreasing a size of a first proportion of incoming requests routed to the one or more canary application instances.

15. The non-transitory computer-readable medium of claim 14 , further comprising terminating at least one of the one or more canary application instances.

16. The non-transitory computer-readable medium of claim 10 , further comprising determining whether the one or more performance metrics indicate a negative performance issue by evaluating a threshold amount of variance, one or more error messages associated with the one or more performance metrics, or how much data has been collected for the one or more performance metrics.

17. The non-transitory computer-readable medium of claim 10 , wherein the one or more baseline application instances are instantiated in a first cluster, and the one or more canary application instances are instantiated in a second cluster.

18. A computer system, comprising:

a memory that stores a canary analysis engine; and

a processor that is coupled to the memory and, when executing the canary analysis engine, is configured to:

deploy one or more baseline application instances that run a first version of software application code and one or more canary application instances that run a second version of the software application code;

monitor the one or more canary application instances relative to one or more performance metrics; and

cause a first proportion of incoming requests routed to the one or more canary application instances to be modified according to the one or more performance metrics.

19. The computer system of claim 18 , wherein the one or more performance metrics do not indicate a negative performance issue, and causing comprises causing a size of the first proportion to be increased.

20. The computer system of claim 18 , wherein the one or more performance metrics indicate a negative performance issue, and causing comprises causing a size of the first proportion to be decreased.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2016
From: TSEITLIN, ARIEL; SONDOW, JOSEPH
To: NETFLIX, INC.
Reel/Frame 037881/0320 →
Continuity (2)
Continuation 13926797 · Jun 25, 2013
Related Publication 20160119207A1 · Apr 28, 2016