災難復原計畫¶
範圍及目標¶
此計畫涵蓋會影響 Weblate 服務可用性、資料完整性或營運持續性的重大災難事件復原。
備註
此計畫專為 Weblate s.r.o. 營運的 Weblate 部署環境設計,但也能以類似方式套用至其他部署環境。
定義¶
災難:任何導致服務、資料、或系統功能完全或重大喪失的計劃外事件,例如硬體故障、資料損壞、基礎設施中斷,或惡意攻擊。
復原點目標 (RPO): 可接受的資料遺失間隔上限為 24 小時。
復原時間目標 (RTO): 完整復原服務的可接受時間上限為 8 小時。
關鍵元件¶
應用程式層: Weblate Python/Django 應用程式、背景工作程式 (Celery) 及排程工作。
資料層:PostgreSQL 資料庫、翻譯儲存庫 (Git) 和日誌。
基礎設施:Web 伺服器 (NGINX/Apache)、反向代理、儲存磁碟區、SSL/TLS 設定,及選用的 SIEM 日誌系統。
備份政策¶
使用 BorgBackup 自動備份 處理程序可確保所有必要元件(資料庫、資料及設定)每天都會備份。備份會儲存在兩個不同的地理位置。備份保留政策可確保每日備份近期均可使用,並保留 6 個月。
復原步驟¶
故障情境:整台主機/整套系統遺失¶
開通新主機。
使用佈建軟體啟動 Weblate。
遵循 從 BorgBackup 復原備份 還原 Weblate 備份。
重啟 Weblate 容器。
驗證功能並執行一致性檢查。
故障情境:資料庫損毀或資料磁碟區遺失¶
停止 Weblate,以防止進一步的寫入作業。
遵循 從 BorgBackup 復原備份 還原 Weblate 備份。
重新啟動服務,並驗證翻譯與使用者資料的一致性。
故障情境:惡意竄改或勒索軟體¶
將受影響的主機與網路隔離。
找出最近一份已知正常的備份(感染前)。
依照 故障情境:整台主機/整套系統遺失 的步驟,在新主機上部署系統。
認證與測試¶
備份驗證:Weblate 備份的每月還原測試。
災難復原演練: 至少每年執行一次,包括完整還原至預備環境。
自動完整性檢查: BorgBackup 可確保備份封存檔的完整性。
復原後的步驟¶
確認所有服務執行正常且可存取。
將復原狀態通知使用者及利害關係人。
記錄事件時序、根本原因及經驗教訓。
套用更新或變更基礎架構,以避免再次發生。
若涉及弱點,請遵循 漏洞揭露政策。