灾难恢复计划¶
范围和对象¶
本计划是有关从影响 Weblate 服务可用性、数据完整性,或运行持续性的灾难性事件中进行的恢复。
备注
本计划是特别为部署 Weblate s.r.o 的 Weblate 设计的,但可以相似地应用到其他部署上。
定义¶
灾难:任何导致服务、数据、或系统功能完全或重大丧失的计划外事件,比如硬件故障、数据损坏、基础设施中断,或恶意攻击。
恢复点目标 (RPO):最长可接受的数据丢失间隔:24 小时。
恢复时间目标 (RTO):最长可接受的恢复完整服务的时间:8 小时。
关键部件¶
应用层:Weblate Python/Django 程序、后台 workers (Celery)、及计划任务。
数据层:PostgreSQL 数据库、翻译仓库 (Git) 和日志。
基础设施:Web 服务器 (NGINX/Apache)、反向代理、存储卷、SSL/TLS 配置,及可选的 SIEM 日志系统。
备份策略¶
使用 BorgBackup 进行的自动化备份 过程保证所有必须的部件(数据库、数据、配置)的每日备份。这些备份保存在两个不同的地理位置。备份保留政策确保近期备份每天可用并保留六个月的备份。
恢复流程¶
失败情景:主机/系统完全丢失¶
开通新主机。
使用预留软件启动 Weblate。
遵循 从 BorgBackup 恢复 恢复 Weblate 备份。
重启 Weblate 容器。
验证功能并执行一致性检查。
失败情景:数据库损坏或数据卷丢失¶
停止 Weblate 防止进一步的写入操作。
遵循 从 BorgBackup 恢复 恢复 Weblate 备份。
重启服务并验证翻译和用户数据一致性。
失败情景:恶意篡改或勒索软件¶
将受影响主机同网络隔离。
识别最后一个已知良好备份(感染前)。
遵照来自 失败情景:主机/系统完全丢失 步骤在新主机上部署系统。
验证和测试¶
备份验证:Weblate 备份的每月恢复测试。
灾难恢复演练:至少每年执行,包含完整恢复到预备环境。
自动的完整性检查:BorgBackup 确保备份压缩文件的完整性。
恢复后的步骤¶
确认所有服务运行正常且可访问。
通知用户和利益相关方恢复状态。
记录时间线、根本原因、学到的教训。
应用更新或基础设施更改来防止再次发生。
如涉及漏洞遵循 漏洞披露政策。