[WIP] Bedrock Performance Testing Framework #6152
8000
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bedrock
Initial implementation of a framework designed to allow us to interact at a granular level with each service.
Summary
Bedrock is a service that allows us to validate behaviours and performance of a given service or services but initially is focused on the rebaser loop. The actual implementation of which is fairly generic so should be able to be extended if required.
Record
First, it allows you to ‘snapshot’ any point in time from the Application’s perspective so that you can have a restore point to replay the following sequence of recorded events. [initially implemented by the ./record.sh script]
Prepare
Once the test has been recorded and the sequence of events and the restore point are stored, bedrock allows you to restore the stack back in the point in time. [ to be implemented into the A 8000 PI but equivalent provided]
Replay
Bedrock then allows you to trigger any recorded test via a POST call to it’s API and will report a basic version of what it thinks the result is.
This is the intended final implementation:
Where this PR gets us to here:
Authors Note: This PR needs a rebase and some linting at minimum, I'm just raising early for comments etc. I've also adjusted the tilt stack to help mitigate some issues I was having with resetting Postgres, which may or may not be desirable to merge (but more closely represents our Production stack)