Progressive deployment and termination of canary instances for software analysis

US9225621B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9225621-B2
Application numberUS-201313926797-A
CountryUS
Kind codeB2
Filing dateJun 25, 2013
Priority dateJun 25, 2013
Publication dateDec 29, 2015
Grant dateDec 29, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

We claim: 1. 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 a plurality of 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. 2. The method of claim 1 , further comprising: determining that the performance data does not indicate a negative performance issue, and in response thereto: using computing apparatus, automatically updating the first proportion to be smaller and updating the second proportion to be larger, and then reconfiguring the load balancer based upon the first proportion and the second proportion. 3. The method of claim 2 , further comprising terminating one or more of the baseline application instances. 4. The method of claim 1 , wherein the determining that the performance data indicates a negative performance issue includes using computing apparatus to evaluate at least one of (i) a threshold amount of variance, (ii) one or more error messages relating to the collected performance data and (iii) a lack of performance data. 5. The method of claim 1 , comprising causing instantiating the plurality of baseline application instances in a first cluster and causing instantiating the one or more canary application instances in a second cluster. 6. The method of claim 5 , wherein the first cluster and second cluster are defined by metadata that is created and managed using a web application console that is independent of a particular cloud service provider at which the plurality of baseline application instances and the one or more canary application instances have been instantiated. 7. The method of claim 1 , comprising causing instantiating the plurality of baseline application instances in a first cluster and causing instantiating the one or more canary application instances in a second cluster, and comprising instantiating the plurality of baseline application instances using a first cloud service provider and causing instantiating the one or more canary application instances using a second cloud service provider that is different from the first cloud service provider. 8. The method of claim 1 , using computing apparatus, a plurality of canary application instances corresponding in number to the baseline application instances; 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 application instances; using computing apparatus, automatically progressively updating the first proportion to be smaller and updating the second proportion to be larger, reconfiguring the load balancer based upon the first proportion and the second proportion, and progressively terminating the baseline application instances until all the requests are directed only to the canary application instances. 9. The method of claim 1 , further comprising terminating one or more of the canary application instances. 10. A non-transitory computer-readable medium storing one or more sequences of instructions which when executed cause performing: using computing apparatus, causing instantiating, at one or more cloud service providers, 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 a plurality of 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. 11. The non-transitory computer-readable medium of claim 10 , further comprising sequences of instructions which when executed cause: determining that the performance data does not indicate a negative performance issue, and in response thereto: using computing apparatus, automatically updating the first proportion to be smaller and updating the second proportion to be larger, and then reconfiguring the load balancer based upon the first proportion and the second proportion. 12. The non-transitory computer-readable medium of claim 11 , further comprising sequences of instructions which when executed cause terminating one or more of the baseline application instances. 13. The non-transitory computer-readable medium of claim 10 , wherein the sequences of instructions which when executed cause determining comprise sequences of instructions which when executed cause determining that the performance data indicates a negative performance issue using computing apparatus to evaluate at least one of (i) a threshold amount of variance, (ii) one or more error messages relating to the collected performance data and (iii) a lack of performance data. 14. The non-transitory computer-readable medium of claim 10 , comprising sequences of instructions which when executed cause instantiating the plurality of baseline application instances in a first cluster and causing instantiating the one or more canary application instances in a second cluster. 15. The non-transitory computer-readable medium of claim 14 , wherein the first cluster and second cluster are defined by metadata that is created and managed using a web application console that is independent of a particular cloud service provider at which the plurality of baseline application instances and the one or more canary application instances have been instantiated. 16. The non-transitory computer-readable medium of claim 10 , comprising sequences of instructions which when executed cause instantiating the plurality of baseline application instances in a first cluster and causing instantiating the one or more canary application instances in a second cluster, and comprising instantiating the plurality of baseline application instances using a first cloud service provider and causing instantiating the one or more canary application instances using a second cloud service provider that is different from the first cloud service provider. 17. The non-transitory computer-readable medium of claim 10 , further comprising sequences of instructions which when executed cause: using computing apparatus, a plurality of canary application instances corresponding in number to the baseline application instances; using computing apparatus including a load balancer, causing selectively routing a first p

Assignees

Inventors

Classifications

  • H04L43/08Primary

    Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters · CPC title

  • by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade · CPC title

  • wherein the managed service relates to distributed or central networked applications · CPC title

  • for test version control, e.g. updating test cases to a new software version · CPC title

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9225621B2 cover?
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 t…
Who is the assignee on this patent?
Netflix Inc
What technology area does this patent fall under?
Primary CPC classification H04L43/08. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 29 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).