Scientist Yxorp
This is a simple reverse proxy to allow for testing http targets while comparing to an existing http control.
Overview
The idea is that given an existing web service, there is a requirement to develop a new, and tested, web service and check that the results from both are consistent.
How it works
Given an existing web server, configure this proxy to run on a different host and/or port. In the configuration of the proxy, you provide the existing web servers address as the candidate url. You will also provide the candidate url, which is the web server that is being built.
Every request sent to the proxy will be firstly recorded and then the request will be translated and sent to both the control and candidate web servers.Each of the servers will generate a respoinse and send it back to the proxy, which will compare both responses and determine if they match. If they match, YAY, al good. However if they do not match, the responses from both will be logged for further analysis.
Once the response is received from the control, that response will be sent back to the caller and the caller should be none the wiser that all of that has occurred.
Future
- Support for HTTPS targets
- Support for Client Certificates (would require a man in the middle configuration and client certificate)
- Log response for control, candidate or both
- Attach a RequestId HEADER to the response in order to track
- Store performance information with the RequestId
- Incorporate a REST API to allow controlling of the experiment
- Allow for multiple experiments to be run, controlled through a REST API
- Testing Control and Candidate with different scenarios