《让系统发生重大宕机事故的15个方法》
来自公众号:技术领导力
作者简介:Mr.K,知名电商公司技术老K级人物。文出过畅销书,武做过CTO,若非生活所迫,谁愿一身才华。
你没看错,本文探讨的主题是“让系统发生重大宕机事故的15个方法”,仔细研究后你会发现,把系统搞宕机是一件非常有技术含量的事情,团队成员不是瞎子,老板也不是傻子,怎么可能眼睁睁地看着你搞破坏呢?
但是梦想还是要有的,梦想就像内裤,要有,但不用逢人就去证明你有。
老K访谈了5位资深技术专家,在他们的职业生涯中都有过“删库跑路”、“rm -rf/*”等辉煌经历,总结了15个让系统发生重大宕机事故的方法,每一条都是一部血泪史。
1、每周超过15个线上bug。15个线上bug,这是最低要求,上不封顶,越多越好,让团队成员对线上问题变得麻木不仁。这是一个好的开始,虽然只是一小步,却是系统发生重大宕机事故的一大步。
2、每周超过3次线上事故。偶尔出现线上事故并不难,难的是坚持每周都出现3次以上线上事故,这需要有坚定的信念。出现事故以后,让开发在线上进行代码调试,别急着恢复生产,走自己的路,让用户崩溃去吧。
3、新入职开发人员超过50%。忙不过来就招聘新人,新人来了,立马上手改代码,这样很容易制造出一些莫名其妙的BUG,离线上宕机的目标又跨进一大步。
4、让高P核心开发人员离职,让低等级人来交接。多弄走几个P6、P7的开发,让P4的人来交接,不需要交接文档,交接速度越快越好。节省成本,老板一定举双手赞成。
5、每周发版超过4次。每周要频繁发版,让开发、测试越手忙脚乱越好,线上环境操作次数越多越好,使劲折腾生产环境,常在河边走,就看你的鞋什么时候湿。
6、程序员连续996超过45天。996是TMD福报,需求往死里压,不累吐血几个决不罢休,让开发身心疲惫,精神恍惚,出错概率又增加10%。
7、迭代中需求变更率超过40%。有一句话叫做“杀死一个程序员不用枪,只需要改三次需求”,三次太少了,需求变更率40%起步,越频繁越好。还是友情提醒一下,产品经理的背包里常备一些板砖、跌打药、遗书之类的东西,临时去弄怕来不及。
8、开发、测试人员比例8:1以上。都是天才全栈工程师,还要啥测试啊。我就遇到过一个天才程序员站在我面前,我们注视了很久,惺惺相惜,直到手累了,我才慢慢放下镜子。
9、不使用devops工具。别弄啥自动化运维工具,找几个运维兄弟,临时手写shell脚本,手越抖越好,玩的就是飘逸;double check?不存在的,因为信任,所以简单!相信,相信的力量!
10、不使用压测工具。是时候表演些真正的技术了,多表联结复杂SQL,多线程开到飞起,代码裸奔......
11、上线无回滚方案。回滚方案?不成功便成仁,开弓没有回头箭,落子无悔大丈夫,上线成功与否,全靠运气。
12、运维随意更改线上配置。运维就是要放纵不羁爱自由。这就是我,颜色不一样的烟火,我就是我,我看到自己都冒火。
13、DBA情绪不稳定。有人说DBA不自由,手机要实时在线、随时待命。做了DBA以后才知道,想删库就删库,想坐牢就坐牢,自由得很。
14、业务爆发式增长。技术这块已经安排得差不多了,还需要有一群爱折腾的市场和运营人员,秒杀一天搞上10场,拼团往死里整,促销“满100减200”,一切以压垮系统为目的,证明技术都是傻X。
15、经常发布重大版本。别整啥敏捷开发,统一两个月发版一次,要搞就搞大版本,系统宕机了还找不出是哪出的问题,因为几乎所有模块都改了,就问你酸爽不酸爽?
不管你愿不愿承认,我们在日常工作当中,都在或多或少地践行着以上15个方法。希望你把这篇文章转给身边的朋友,时刻用“海因里希法则”给自己和团队敲警钟。
系统宕机只是一个结果,雪崩的时候,每一片雪花都在勇闯天涯,没有谁是真正无辜的。