17611538698
webmaster@21cto.com

如何打造一个经常宕机的业务系统

资讯 0 2176 2020-12-22 09:04:18
<p><img alt="" src="https://www.21cto.com/uploads/images/ecommerce-in-china-potentieel-of-gevaar.jpg" style="width: 2000px; height: 860px;" /></p> <p>删库跑路专家、宕机行为艺术家、肥胖版吴彦祖--老K,曾经说过:&ldquo;<strong>打造一个偶尔宕机的系统并不难,难的是经常宕机,一辈子宕机,从来没有稳定过的系统,这才是最难的</strong>。&rdquo;</p> <p>但是,作为一个有追求的技术人,<strong>我们要迎男而上,做一条为梦想窒息的咸鱼</strong>。</p> <p>&nbsp;</p> <p>老K做程序员那会儿,曾经写嵌套循环搞宕数据库、手抖误删过线上环境、乱写日志撑爆过硬盘。总之,<strong>没有人比我更懂宕机</strong>。</p> <p>这些血和泪的教训,总结下来总共20条,条条酸爽:</p> <p>&nbsp;</p> <p><strong><em>1、</em></strong><strong>需求不问价值,多做无用功</strong>。开发一堆没人用的功能,让用户莫名其妙。产品也不容易,<strong>别随便骂他们不动脑,因为不动脑的前提是,他首先得有个脑子</strong>。</p> <p>&nbsp;</p> <p><em><strong>2、</strong></em><strong>不拆分需求,坚持做大版本</strong>。一个大story开发一周、两个月发版一次,迭代慢慢来,有没有熬死对手不知道,先熬死自己。大有什么不好?找女朋友就应该找个胖一点的,<strong>反正花同样的钱,找个大只一点的不好吗</strong>。</p> <p>&nbsp;</p> <p><em><strong>3、</strong></em><strong>不评审技术方案</strong>。技术方案就像内裤,我知道我的代码有漏洞,我不让你看到就行了。<strong>开发也要彼此尊重,不要动不动就看对方的内裤或代码,你自己又不是没有</strong>。</p> <p>&nbsp;</p> <p><em><strong>4、</strong></em><strong>不遵守设计规范,编码规范</strong>。勇敢做自己,就是这么随性。<strong>我就是我,颜色不一样的烟火;我就是我,看到自己都冒火</strong>。</p> <p>&nbsp;</p> <p><em><strong>5、</strong></em><strong>前端不考虑兼容、托底、组件解耦</strong>。前端只管用户交互爽、界面简洁,不要管什么代码结构,想这么多头都要炸开了,做这么多用户又看不到,何必为难自己。</p> <p>&nbsp;</p> <p><em><strong>6、</strong></em><strong>前端调用后端接口,不考虑压力、频次</strong>。后端开发不是牛逼吗?鄙视链上瞧不起前端?老子调死你,循环调用,上线即压测。<strong>所有命运的馈赠,早已暗中标好了价格,后端拿高工资是吧?我前端搞死你</strong>。</p> <p>&nbsp;</p> <p><em><strong>7、</strong></em><strong>领域划分不清,各层之间乱调用</strong>。后端写代码乱调用,怎么快速怎么来,只管挖坑,让下一任来填坑吧。这一挖一填之间,大家都升职加薪了,谁不高兴呢?</p> <p>&nbsp;</p> <p><em><strong>8、</strong></em><strong>系统强依赖</strong>。千万别解耦、异步,整那么复杂干嘛?系统强耦合、强依赖,不要考虑异常情况,<strong>要相信其它同事写的代码跟你一样烂,相信相信的力量</strong>。</p> <p>&nbsp;</p> <p><em><strong>9、</strong></em><strong>系统伸缩性差</strong>。还考虑啥伸缩性啊,不行就推翻重来,靠机器堆出来的性能不牛逼,等我用汇编、C++从操作系统内核开始优化,预计还需要99年。</p> <p>&nbsp;</p> <p><em><strong>10、</strong></em><strong>单点部署</strong>。我自己还凭实力单身呢,我写的应用单点部署又怎么了,跟我很配啊。</p> <p>&nbsp;</p> <p><em><strong>11、</strong></em><strong>不做过载保护</strong>。兜底、降级策略并不重要,快速失败也是一种策略嘛,谁叫接入层不做缓存,谁叫数据层性能这么弱,凭啥我来做过载保护?我偏不。</p> <p>&nbsp;</p> <p><em><strong>12、</strong></em><strong>测试环境跟生产环境不一致</strong>。这招玩好了,很容易让人怀疑人生:我明明在测试环境好好的啊,会不会是生产环境有问题?改改生产环境吧。<strong>人生就是这样,你以为你早看透了什么是人生,但你就是玩不过它</strong>。</p> <p>&nbsp;</p> <p><em><strong>13、</strong></em><strong>不做压力测试</strong>。没事做压力测试不是有病么,我好端端的程序,你压它干嘛?我没事压你,你什么感受。<strong>呃,还是算了吧,开发果然都有男言之隐</strong>。</p> <p>&nbsp;</p> <p><em><strong>14、</strong></em><strong>上线不走流程</strong>。上线偷偷上,不知不觉中就事给办利索了。<strong>轻轻地我发布了,正如当初我轻轻地把系统搞宕机了</strong>。徐志摩都拍手说你牛逼。<strong>时间告诉我们,无理取闹的年龄过了,到了该装逼的时候了</strong>。</p> <p>&nbsp;</p> <p><em><strong>15、</strong></em><strong>没有监控,忽略预警</strong>。增加监控,那不是还要写很多代码?有这功夫,不如多写几个没用的业务功能,多挖坑填坑,大家升职加薪不好吗?</p> <p>&nbsp;</p> <p><em><strong>16、</strong></em><strong>不关注业务系统运行</strong>。系统上线后,就是运营、运维的活了,用得咋样、系统稳不稳定关我屁事啊。</p> <p>&nbsp;</p> <p><em><strong>17、</strong></em><strong>不做持续重构</strong>。重构很烦的,就像没事把头发剃光,再重新长出来一样。那不是有病吗?你头发多,也别跑来这里炫富好吗。</p> <p>&nbsp;</p> <p><em><strong>18、</strong></em><strong>出现线上事故,不及时处理</strong>。平时上班很忙的,宕机就重启啊,三板斧交给你:重启应用、重启机器、重装机器。如果一遍不行,就搞两遍,再不行就跑路吧。</p> <p>&nbsp;</p> <p><em><strong>19、</strong></em><strong>不做事故复盘</strong>。事情都已经发生了,还有什么好说的。别跟K嫂一样,老爱翻旧账了,向前看吧。<strong>生活就像是个骗子,被它欺骗了,不要伤感,明天它还会继续诈骗你,最后我们都学会自欺欺人。</strong></p> <p>&nbsp;</p> <p><em><strong>20、</strong></em><strong>做事不形成闭环</strong>。就算做了复盘,也要不改正,让这最后一步功亏一篑。</p> <p>要学着安慰自己,<strong>有些事情做不完,就留到明天做吧,运气好的话,明天挂了就不用做了</strong>。</p> <p>&nbsp;</p> <p>西游记告诉我们,<strong>凡是有后台的妖怪都被接走了,凡是没后台的都被一棒子打死了</strong>。在职场也是一样的道理,没有本事就不要作妖。</p> <p>&nbsp;</p> <p>以上20条,有则改之,无则加冕。</p> <p>&nbsp;</p> <section powered-by="xiumi.us"> <section> <section powered-by="xiumi.us"> <p><strong>作者简介</strong>:<strong>Mr.K</strong>,知名电商公司技术老K级人物。文出过畅销书,武做过CTO,若非生活所迫,谁愿一身才华。</p> </section> </section> </section>

评论