跳过暂存环境会出什么问题:三个真实故事

为了省时间而直接编辑上线的 WordPress 网站,可能会让你损失一天、一周,甚至…

Developer debugging code representing WordPress staging environment workflow

暂存环境属于那种看似多余、直到救你一命才显出价值的专业习惯。人们常想:「只是一个小改动而已,我直接改上线的网站,刷新一下就好了。」大多数时候确实如此。但在少数不奏效的情况下,代价就是数小时的恢复工作、流失的客户,或是一个本该在周二完成的改动、却让你搭上整个周六去修复。

以下是 Defyn 过去两年里的三个真实情境,已做匿名处理并略作演绎。每一次,在上线网站上做的一个五分钟改动,都付出了半天到整整一周的代价。每一次,暂存环境本都能在问题触及客户之前发现它。

故事一:吞掉结账流程的插件更新

一个使用 WooCommerce 的电商网站,在某个周六下午直接在生产环境上应用了一次例行插件更新。一个支付网关插件做了小版本升级。网站所有者点击更新,仪表盘变绿,然后就出门吃晚饭了。

他不知道的是,新版本对信用卡字段格式的清理方式做了一处小改动。在代理商的 PHP 版本下,网站测试一切正常。而在主机较旧的 PHP 版本上,该网关在每一笔交易时都抛出一个静默错误。结账立刻开始失败。

到周日早上所有者查看时,已有 31 位客户遇到损坏的结账流程并放弃了下单。插件在一小时内被回滚,但那 31 位客户再也没有回来。一个带有一笔测试交易的暂存环境,本可以在损失任何一笔真实订单之前就发现问题。

故事二:弄坏移动端的 CSS 微调

一个 B2B 服务网站需要做一个小的视觉改动。首页上的一个按钮需要稍微大一点、换一种红色。市场负责人打开自定义器,做了改动,保存,然后就认为搞定了。

这个改动弄坏了移动端布局。在宽度小于 400 像素的屏幕上,按钮如今溢出了容器,把页面其余部分挤向一侧,还让导航菜单以别扭的方式换行。市场负责人从未在手机上打开过网站,因此没有注意到。

代理商在三周后的季度审查中才发现。到那时,三周的移动端流量(占网站受众的 60%)看到的都是一个损坏的首页。在那段时间里,移动端的跳出率悄悄上升了 18%。

故事三:弄丢首页的主题更新

某客户的 WordPress 主题有一个大版本可用。发行说明承诺带来性能提升和一些新功能。客户在某个周五下午应用了更新。网站重新构建后,整个首页布局都不见了,被新主题版本附带的一个默认模板取而代之。

这个大版本改变了主题存储布局数据的方式,而迁移脚本在生产数据库上运行得并不完善。恢复工作需要还原到之前的主题版本、从备份中手动重新导入首页布局,并重新应用三周的逐步编辑。总恢复时间:一个长周末里的 11 个小时。

在暂存副本上,这个故障 30 秒内就能被看到。代理商本会将该主题版本标记为有风险,并推荐另一条更新路径。面向客户的停机为零,损失的周末为零。

暂存环境究竟是什么

暂存环境是上线网站的一个私有副本,托管在另一个网址上,尽可能贴近地镜像生产环境。主题版本一致、插件版本一致、内容较新、数据库也大体保持最新。团队在那里做改动、进行测试,只有在确认可用之后才推送到生产环境。

现代的托管型 WordPress 主机(Pantheon、WP Engine、Kinsta、SiteHost)都提供一键暂存。大多数优质主机都会把它包含在套餐里。在托管主机上第一次设置它只需 10 分钟,之后它就会一直待在那里,作为一份便宜的保险。

关于纪律的部分

技术设置很容易,更难的是习惯。「只是一个小改动」这句话必须从团队的词汇里消失。每一次插件更新、主题更新和结构性的 CSS 改动,都要先经过暂存环境。没有例外。

内容编辑(改文字、更换特色图片、发布一篇新博文)通常可以不经暂存环境也没有风险。而结构性和基础设施层面的改动则不行。

如果你的网站没有暂存环境,或者有一个却没人真正使用,Defyn 的 WordPress 开发团队可以帮你搭建,并建立一套合理的工作流程。一旦团队用上一套行之有效的暂存流程满三个月,就再也没有人愿意直接编辑上线的网站了。

Claire Smith 的头像
Sponsored Loved this story? Defyn turns articles like this into the websites your competitors wish they had. Talk to us → defyn.com.au