Description
According to T372557: MPIC: [SPIKE] Create disaster recovery plan for MPIC we explored several ways to create a disaster recovery plan for MPIC. The result of that exploration was written down in a document with several proposals which was reviewed to figure out which one was the most appropriate according to the MPIC's needs.
Finally Option 3: (Background job embedded with MPIC was the proposal we decided to implement
Create a background job embedded in MPIC. We could do it with BullMQ or node-cron
- We could define the proper periodicity (daily, weekly, monthly, . . .)
- We could save the result to a Ceph persistent volume that SREs could prepare for us
- Use an alternative backup system ( https://github.com/wamdam/backy2 or https://restic.net/ or https://www.borgbackup.org/) that SREs can prepare for us. The regular backup would be synchronized to a backup host like https://wikitech.wikimedia.org/wiki/Data_Platform/Systems/DB_Replica
Acceptance criteria
- We have defined the appropriate periodicity (daly, weekly, . . .)
- We have created a background job embedded with MPIC (see notes) that generates a PHP operations/mediawiki-config compatible dump of the MPIC instruments configuration
- A Ceph persistent volume is ready for the embedded MPIC job to save there the above backup (collaboration with SREs will be needed here)
- MPIC background job saves the dump in the Ceph persisten volume according to the right periodicity
Notes
- Task scheduler for Node.js based application: node-cron
- Alternative backup systems were proposed by SREs:
- The regular backup would be synchronized to a backup host like https://wikitech.wikimedia.org/wiki/Data_Platform/Systems/DB_Replica