【故障公告】新版博客后台部署时的配置问题引发故障
最近,我们对新版博客后台(Angular 8.2.7 + .NET Core 3.0)进行了灰度发布,如果您访问博客后台时跳转到 https://i-beta.cnblogs.com/ ,说明使用的就是新版博客后台。
今天我们在一次基于 gitlab-ci 的自动化发布过程中,由于操作问题在发布前没有对 appsettings.Production.json 的修改进行保存,造成容器在启动时使用了旧版的配置文件,再加上容器的健康检查不能检查出这种不正常情况(这个地方的改进还没完成),最不该的是在发布后没有对关键功能进行测试验证以及值班人员没有及时处理用户反馈,从而造成 18:22~19:27 期间使用新版博客后的用户无法正常发布博文,非常抱歉由此给您带来了麻烦,请您谅解。
我们会吸取教训,并采取以下改进措施:
- 更高优先级改进健康检查。一是容器的检查检查,二是阿里云云监控的健康检查。当关键功能不可用时,让健康检查失败(之前的健康检查没有对业务功能进行检查)。这样发布时如果出现问题,容器健康检查失败,docker swarm 就不会部署新容器。当正在运行的容器出现问题影响关键功能的使用时及时报警。
- 尽可能实现在生产环境发布后用“机器人”对关键功能进行测试验证。
- 每次自动化发布时在值班群发消息通知值班人员留意用户反馈。