I'm working on a system that is going to need some regularly scheduled maintenance for:
- upgrades and releases
- regular data migration and database maintenance
How should I determine how long these maintenance windows can be and how often they can occur?
For example, some data needs to be moved from the "recent transactions" database into the main database. The amount of data in the main database precludes updating the indexes in real time, so it has to be an offline process with downtime. Would it be better to do it daily for an hour, weekly for three hours, or monthly for eight hours? Each of those options is going to have an effect on users as well as SEO.
Similarly, if a release takes an hour, is it acceptable to do it every night, or should it be done less frequently?