Hello, I couldn't find a relevant thread on this issue (only a few notes in various places), so I'll try it here. At our university, we have been operating Moodle for more than 15 years and are still looking for the ideal solution for long-term Moodle management. On average, we offer around 800 courses in one academic year, have thousands of course creators, and tens of thousands of students. Some courses are taught repeatedly every year, but it is also necessary to preserve student data from previous periods, so there may be variations for one subject from different years. Other courses are created on an ad-hoc basis.
In the initial phases of using Moodle, a single production installation was used. Its size and database size gradually increased. The Moodle content became confusing for users themselves (due to similar courses with different data and the excessive freedom of our users). After a few years, we reached a point where the database (not the data) was so large that it caused system crashes, and the system response time in many places was too slow. This problem was addressed several times by creating a completely new installation, and relevant content was somehow transferred to it, resulting in some cleanup. I'm not sure about the exact procedure, as it happened before my time. However, some irrelevant content also made its way into the new installation, so a complete cleanup was never achieved. This process was repeated every few years, approximately five times.
Since this solution did not suit us at that time, we tried to find another approach. After some time, we reached a state where we have one production installation per academic year. After the academic year ends, this installation becomes archival and is accessible only in read-only mode. (We have 4 archival installations.) A new installation is prepared for the new year, configured to the desired state. Before the start of the academic period, the installation is made accessible to users. We have a module that connects the production installation with all the archival ones (it's some existing module, but modified for our needs). Thus, a user (teacher) in the new installation can find their old courses from archival versions and transfer them automatically to the new installation. Initially, this solution was quite elegant. We always had a relatively small installation with current courses. The installation was clear. However, it was never possible to transfer all courses (success rate about 85%), and the rest were transferred manually. The time required for preparing this solution each year, the time needed to fix course transfers, and the time spent on module optimization (due to changes on the Moodle side) were continually increasing. The above procedure is simplified for presentation. It's essential to note that we now feel things could be done better, and we are considering a change.
There is a possibility that we stay in the current state but optimize some processes. Then there is a variant where we have some hybrid solution consisting of one production installation and one archival. Here, a semi-automated transfer would take place using a special module (this would be a proprietary solution tailored to us). And then there is an option to return to a single installation but create strict rules and arrange for old courses to be backed up to a server after some time (perhaps every five years) and then deleted from the system.
When we communicated with some other universities, it seemed that there is no entirely ideal solution anywhere. We encountered institutions that used one large installation and were slowly approaching a state of collapse (similar to what we experienced). We came across solutions that seemed to be still current and at the same time preserved old data, but in practice, it was unusable.
If you have experience with similar issues, would you like to share your know-how? I believe the university environment is very specific, both due to the vastness of Moodle (numbers of courses and users) and the various conditions for preserving older data (study results, sustainability of some courses within projects, etc.).
Thank you very much for your time and any responses.