Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shadow deployment for test in production

Tags:

testing

As well known, the most important parts of Test In Production (TiP) are:

  • Leverage real customer behavior/data
  • Mitigate the customer risk.

I found the Shadow Deployment a promising approach.

With this approach, the V-next product is deployed in production side by side with the V-current. When customer request arrives, a clone of the request is routed to V-next for testing purpose. But the result is never returned to customer. Thus NO risk is exposed to customer. Once the V-next is ready, we can simply switch to it and tear down the V-current.

So it seems the critical parts are:

  • How to implement the routing logic for various kinds of projects, such as Web service, Web site, etc.
  • How to isolate the data generated during the test because it could have side effect for upstream and downstream systems in production.

My questions are:

  • Is there anything else we need to care?
  • And is there any best practice/tools/design/solution to address these concerns?

For the specific technology details, please check here: https://stackoverflow.com/questions/14599167/how-to-clone-iis-request-and-redirect-to-a-test-version-site

(Unfortunately, SO community deleted above post...)

Thanks!

like image 615
smwikipedia Avatar asked Jan 30 '13 07:01

smwikipedia


People also ask

What is shadowing in testing?

Shadow Testing reduces risks when you consider replacing the current environment (V-Current) with candidate environment with new feature (V-Next). This approach is monitoring and capturing differences between two environments then compare and reduces all risks before you introduce a new feature/release.

What is a shadow deployment?

A shadow deployment is a method of testing a candidate model for production where production data runs through the model without the model actually returning predictions to the service or customers. Essentially, simulating how the model would perform in the production environment.

What is shadow mode software?

Shadow Mode is one main building block that is going to be used for the validation of highly automated driving functions. Shadowing is generally considered as the analysis of functions that are implemented in the car and simulate driving actions/decisions, but do not execute them.

What is shadow mode in machine learning?

What is Shadow Mode? “Shadow Mode” or “Dark Launch” as Google calls it is a technique where production traffic and data is run through a newly deployed version of a service or machine learning model, without that service or model actually returning the response or prediction to customers/other systems.


2 Answers

We did this at Twitter using Diffy. Not only do you want to capture V-next, you also want to compare it V-current. Further, you want to aggreagate and denoise this comparison over thousands of samples to gain confidence.

like image 199
khanduri Avatar answered Oct 16 '22 05:10

khanduri


A different approach for testing in production is to test on a low percentage of users or to open a new feature only to your QA team on production (dark launches).

There are many tools that can help you test in production, even on real users. Configz.io is a great tool for that.

like image 45
Monads are like... Avatar answered Oct 16 '22 05:10

Monads are like...