作者回复: 你好,术子米德 你提的这个问题特别对,这其实也是写这篇文章的初衷。对于发布要进行监控,是这样的。这个也有监控,在发布平台也有,但是对应的DBA的忽略掉了它。这就是认知太重要的原因,大家还是要去寻找bug的思路,而不是寻找变化的思路。而大脑很神奇,就彻底忽略了它。 而当时又是下班后的时间,大家也没有去发布平台看,就相信了当事人。 很多问题事后回顾都是这样,哭笑不得,生产的问题大概如此,这也是这么多年看生产问题得出的结论。所以才总结出不是寻找bug,而不是寻找变化的恢复思路,这个认知特别重要,其实今天很多企业,也没有得出这个认知,你想想是不是?
作者回复: 你好,yshan 总结的真全面,真棒
作者回复: 你好,Weehua 简单的办法但最管用,因为符合本质。
作者回复: 你好,Tony.xu 思考的都特别好,这些实际就是我带领的团队都一直坚持的内容,加油。
作者回复: 你好,Y024 是的,其实记好log,本身时监控体系的一部分,如果数据都不对,不准确,后面在寻找问题时会出问题。这也是为什么我们寻找变化,而不是寻找bug的原因,很多信息都没有记录,所以难以定位。
作者回复: 你好,worfzyq 谢谢提出问题,我们来讨论一下。 第一,现在有问题,不回退,是业务有问题,甚至是不可用,两者权衡,取舍如何做决定,回退是最优解,因为回退的版本是业务可以正常运行的版本。 第二,发布是在业务低峰期,比如一般公司是在晚上,这时候回退了,查明问题再进行发布心理压力多小 第三,回退带来的问题就是上线失败了,但是业务不受影响;而不回退是业务受影响。如果我们不能保证每次发布一定成功,就必须有应对方案,回退就是一个保底的应对方案。回退+发布在业务低峰期,我的职业生涯中认为就是最优解决方案;回退在项目层级是不好,在业务层级对于业务影响几乎没有,是在发布失败时的最优解。 我们一起讨论,也可以结合一个具体的案来看看,是否还有更优的解,再次感谢提出问题。
作者回复: 你好,Jy 回退应该是回到上一个稳定的业务版本,这个是在发布前就准备好的。 对于大项目,一个大版本发布的组织,这点比较难,但真的是把自己置于险地。只能在线上解决掉问题,团队的心理压力太大了。 我职业生涯碰到过,所以我再也不想再碰到这种情况,从理论上、概率上就彻底消除掉这种情况,那这个研发过程多轻松。
作者回复: 第一,一定要有B计划 第二,如果一定是破釜沉舟,必须成功,那就要控制好研发质量,确保不会有问题。监控体系,测试覆盖率,同行评审,代码走查都要做到万无一失。
作者回复: 你好, 暗夜微光 持续完善,CI,CD,CO,肯定可以达到的。
作者回复: 你好, 知行合一 太棒了,学以致用,是最好的学习效果