部门好久没有出过事件了,ps:事件可以简单的理解为bug,事件分为5个类别,其中严重的是1级,灾难性的。但是这次是天灾,避免不了。
首先说说我们发布程序的过程,首先程序员发布到测试环境,测试人员测试通过,然后发布到uat,业务人员接着测,这个地方其实是很薄弱的,uat环境缺失很多数据,有的地方根本没有办法测,最后测试人员点通过,项目经理上生产,这个时候也不是直接上生产的,项目经理会告诉发布人员这个站点可以发布了,发布人员会从集群里面拉出一台机器做堡垒,把最新开发的代码发布到堡垒机上测试,堡垒测试还是测试人员来测的,只不过这个时候访问的是真实生产环境的数据,用的账号也是真实生产环境的账号。当然这个地方只是冒烟测试,不会测的很细致,因为在测试环境会测很长时间,虽然是黑盒但是会测的很细致,所以在生产环境上只是走一走常规流程。
整个过程是没有什么问题的,但是在某些情况下就不行了。offline预定站点访问量相对较少,注意只是相对。只有两台机器,如果拉一台出来做堡垒机,那客户所有的访问都会瞬间涌入到另外一台机器上,这个时候会暴漏出一个问题,504 gateway time-out,不用我解释你们可能已经清楚什么问题。
拉出来的这台堡垒机只有那几个测试人员在上面访问,绝对不会报这个错误,但是剩下的那台生产机就不一样了啊,相当于两个人的担子现在一个人来挑,于是它就罢工了,一直报504,堡垒测试的时间超过1小时,意味着这1个小时它完全趴下了,客户报修一个接着一个,完了,一个一级事件出现了。
你可能会疑问,测试人员如何在堡垒机上测试,如何保证自己测到的是最新的代码,答案是host,测试人员在自己host上指定堡垒机的IP地址,这样访问到的站点会映射到堡垒机上。
开发的技术很重要,测试很重要,流程也同等重要,一个大的站点不可能发布了,直接拷贝到生产环境就了事了,测试工具,发布工具,日志都是缺一不可的。但是不管怎么说问题还是会不断地出现。