sul-dlss / argo

The administrative discovery interface for Stanford's Digital Object Registry
Other
21 stars 5 forks source link

EPIC: Reset Stage and QA environment data #3947

Closed andrewjbtw closed 1 year ago

andrewjbtw commented 1 year ago

Why reset the testing environments?

The stage environment has been running continuously since 2019. The QA environment has also been running for over a year. Both have accumulated a lot of data. Both have accumulated a lot of bad data. Bad data in the testing environments is a tax on all current and future development and the tax grows every week.

We need the stage and QA environments to reasonably approximate production so that:

Some problem data is inevitable in testing environments because that's a part of testing. Either we create problem data to test the system or the function we are testing creates problem data. When the volume of problem data is small, it can either be remediated or ignored and it's not a drag on the rest of the system.

The problem with our current environments is that the volume of bad data is not small, and the cost of remediating it is also not small. Problem data

The development team, product owners, the repository manager, and anyone else who uses stage for testing sees the cost of bad data on a regular basis. For the development team and the repository manager, it's become a constant, ongoing cost every week.

We are also running out of space in the stage "preservation" storage and should not keep expanding it. SDR has no simple way to delete data on a case by case basis without generating more errors.

Since stage is not actually a preservation system, we should be able to clear everything out and start over.

Benefits of starting over

What do we need to start over?

The SDR environment has to be seeded with certain objects to get started. (See https://github.com/sul-dlss/argo/issues/1782 for earlier discussion, but that was when SDR was based on Fedora.) We would need to make a full list but in terms of data we at the least need:

It would also be nice to have the Canonical objects because they took much effort to create and they represent different types of objects for use in testing Purl and sul-embed behavior.

With the foundational objects in place, we can create other test data as needed. There will be a judgement call on how far to go beyond the absolute minimum necessary to have a functional testing environment.

Nice to have

It would be nice to make this a repeatable process but not strictly necessary.

andrewjbtw commented 1 year ago

This will also require some coordination with stage users, especially Amy and Peter Chan because they actively use or create test objects there.

andrewjbtw commented 1 year ago

Potentially could be done in conjunction with https://github.com/sul-dlss/preservation_catalog/issues/1986

mjgiarlo commented 1 year ago

Analysis

mjgiarlo commented 1 year ago

Application State

mjgiarlo commented 1 year ago

Execution

mjgiarlo commented 1 year ago

Questions

mjgiarlo commented 1 year ago

Export / Import Process

TBD

mjgiarlo commented 1 year ago

Reset Process

NOTE: This is based on the restart ordering, and has some flaws. This is a draft only.

mjgiarlo commented 1 year ago

Much of the above has been superseded by https://docs.google.com/document/d/1u1D3cFKfvhzaI6a1t7-VQTtbS27fmTXTqtfj7Esr7Rk/edit?pli=1

andrewjbtw commented 1 year ago

We did this in the workcycle that ended on October 13, 2023.