Under the distributed application architecture based on microservices, business requires multiple services to be completed through a series of services and middleware calls. The pressure testing of a single service can no longer reflect the real scenario.
In the test environment, the cost of rebuild complete set of pressure test environment similar to the production environment is too high. It is usually impossible to simulate the complexity and data of the production environment.
So, it is the better way to use the production environment for pressure test. The test results obtained real capacity and performance of the system accurately.
pressure testing on production environment is a complex and huge task. Coordination and adjustments between microservices and middlewares required to cope with the transparent transmission of different flow rates and pressure test tags. Usually we will build a complete set of pressure testing platform for different test plans.
Data isolation have to be done at the database-level, in order to ensure the reliability and integrity of the production data, data generated by pressure testing routed to test database. Prevent test data from polluting the real data in the production database.
This requires business applications to perform data classification based on the transparently transmitted pressure test identification before executing SQL, and route the corresponding SQL to the corresponding data source.
**Apache ShardingSphere focuses on data solutions in pressure testing on production environment.
The main goal of the Apache ShardingSphere shadow Database module is routing pressure testing data to user defined database automatically.**
Source Codes: https://github.com/apache/shardingsphere/tree/master/shardingsphere-features/shardingsphere-shadow