站点运营

站点运营:改版上线前,先把备份和回滚演练做一遍

改版、迁移、换模板之前,先回答三个问题:备份在哪、恢复要多久、谁来决定回滚。本文把备份分成数据、代码、配置三层,给出可落地的回滚演练步骤,并说明当改动涉及 URL 时,重定向、canonical 与站点地图该怎样一起回退。

站点运营

站点运营:改版上线前,先把备份和回滚演练做一遍

改版、迁移、换模板、调服务器配置,这些动作在站点运营里都很常见。大家通常把精力放在“怎么改”上,很少有人提前写清楚“改砸了怎么办”。真出问题的时候,决定损失大小的往往不是上线方案,而是回滚方案。

先想回滚,再谈上线

回滚不是运维一个人的事。做运营的人至少要知道三件事:备份在哪、恢复要多久、谁有权决定回滚。如果这三个问题答不上来,上线就是在赌。

下面这些操作,一旦执行就很难原路返回:

  • 直接在生产数据库上执行批量 UPDATE 或 DELETE
  • 覆盖式发布,旧版本没有留存
  • 只在线上改配置,本地和文档都没同步
  • 批量修改 URL 或删除旧栏目,没有保留跳转
  • 顺手清理了看起来没用的上传目录和旧模板

备份要分层,不要只备一个数据库

数据层

数据库是常规操作,但别漏了上传目录、用户头像、附件、订单文件这类放在磁盘上的内容。配置文件、证书私钥、第三方接口密钥,也应该有独立的加密备份。

代码与模板层

用版本管理工具管理代码,每次发布打一个 tag。发布包和当前线上版本要能对应上,否则回滚时你不知道该退回哪一个提交。

配置与规则层

Web 服务器配置、CDN 缓存规则、重定向规则、robots.txt、站点地图,这些文件变更的频率比代码还高,也最容易被忽略。建议每次修改前把旧文件另存一份,带上日期。

回滚演练怎么做

备份没验证过,就等于没有备份。演练不需要很复杂,但要走完整流程:

  1. 选一个访问低峰时段,提前通知相关同事。
  2. 在一台干净的环境里,用最近一次备份做一次完整恢复。
  3. 记录耗时:从决定回滚到站点恢复正常,一共用了多少分钟。
  4. 明确触发条件,比如核心页面连续报错超过一定时间、支付或登录不可用,就由值班人直接执行回滚。
  5. 把步骤写成清单,尽量做到一条命令或一个按钮完成,减少现场判断。
  6. 演练完更新文档,标注备份位置、保留周期和负责人。

演练中发现问题其实是好事。恢复脚本报错、备份文件不完整、权限拿不到,这些在演练时暴露出来,比在半夜暴露出来便宜得多。

改版牵涉 URL 时,回滚范围要一起算

如果这次改动涉及 URL 结构、栏目路径、模板层级的调整,回滚就不只是把文件换回去。搜索引擎已经看到的中间状态,需要一起处理。

  • 重定向规则:旧 URL 的跳转如果已经生效并被抓取,回滚后不要立刻全部删掉,先确认新旧地址都能正常访问。
  • canonical 与站点地图:这两处的改动要和页面同步回退,避免出现页面指旧版、站点地图列新版的情况。
  • robots.txt:临时屏蔽规则一定要写清楚解除时间,回滚时优先检查这一条。
  • 缓存:CDN 和页面缓存里的旧内容,回滚后主动刷新一遍。
搜索引擎记录下的是抓取那一刻的状态。回滚越快,需要事后清理的残留就越少。

上线当天的观察清单

不管有没有回滚,上线后头几个小时都值得盯一下:

  • 状态码分布是否正常,有没有突然多出来的 5xx 或软 404
  • 核心页面能否正常打开,登录、搜索、下单这些主流程走不走得通
  • 日志里的报错数量有没有明显上升
  • 蜘蛛的抓取频次和落点有没有异常波动
  • 证书有效期、CDN 回源是否正常

小结

备份和回滚是站点运营里的安全带,平时用不上,出事时能救命。把备份分层、把恢复时间测出来、把回滚触发条件写清楚,剩下的才是放心地做改版。