災難復原計畫

範圍及目標

此計畫涵蓋會影響 Weblate 服務可用性、資料完整性或營運持續性的重大災難事件復原。

備註

此計畫專為 Weblate s.r.o. 營運的 Weblate 部署環境設計,但也能以類似方式套用至其他部署環境。

定義

  • 災難:任何導致服務、資料、或系統功能完全或重大喪失的計劃外事件,例如硬體故障、資料損壞、基礎設施中斷,或惡意攻擊。

  • 復原點目標 (RPO): 可接受的資料遺失間隔上限為 24 小時

  • 復原時間目標 (RTO): 完整復原服務的可接受時間上限為 8 小時

關鍵元件

  • 應用程式層: Weblate Python/Django 應用程式、背景工作程式 (Celery) 及排程工作。

  • 資料層:PostgreSQL 資料庫、翻譯儲存庫 (Git) 和日誌。

  • 基礎設施:Web 伺服器 (NGINX/Apache)、反向代理、儲存磁碟區、SSL/TLS 設定,及選用的 SIEM 日誌系統。

備份政策

使用 BorgBackup 自動備份 處理程序可確保所有必要元件(資料庫、資料及設定)每天都會備份。備份會儲存在兩個不同的地理位置。備份保留政策可確保每日備份近期均可使用,並保留 6 個月。

復原步驟

故障情境:整台主機/整套系統遺失

  1. 開通新主機。

  2. 使用佈建軟體啟動 Weblate。

  3. 遵循 從 BorgBackup 復原備份 還原 Weblate 備份。

  4. 重啟 Weblate 容器。

  5. 驗證功能並執行一致性檢查。

故障情境:資料庫損毀或資料磁碟區遺失

  1. 停止 Weblate,以防止進一步的寫入作業。

  2. 遵循 從 BorgBackup 復原備份 還原 Weblate 備份。

  3. 重新啟動服務,並驗證翻譯與使用者資料的一致性。

故障情境:惡意竄改或勒索軟體

  1. 將受影響的主機與網路隔離。

  2. 找出最近一份已知正常的備份(感染前)。

  3. 依照 故障情境:整台主機/整套系統遺失 的步驟,在新主機上部署系統。

認證與測試

  • 備份驗證:Weblate 備份的每月還原測試。

  • 災難復原演練: 至少每年執行一次,包括完整還原至預備環境。

  • 自動完整性檢查: BorgBackup 可確保備份封存檔的完整性。

復原後的步驟

  • 確認所有服務執行正常且可存取。

  • 將復原狀態通知使用者及利害關係人。

  • 記錄事件時序、根本原因及經驗教訓。

  • 套用更新或變更基礎架構,以避免再次發生。

  • 若涉及弱點,請遵循 漏洞揭露政策