快捷搜索:  www.ymwears.cn

俯拾皆市:运维进化论:微盟“员工删库跑路”给我们什么启示

俯拾皆市:运维进化论:微盟“员工删库跑路”给我们什么启示

微盟是国内移动互联网营销黄连木引领者,中国最大的微信公余缺众智能服务平台,基于微信兼毫为企业提供开发、运营、培掌骨训、推广一体化解决方案,襄礼帮助企业实现线上线下互通物欲,社会化客户关系管理,移天数动电商,轻应用等。

2月房屋23日19点,微盟出现了老套子大规模系统故障,根据官方泥煤消息,这是一起运维部门核全速心员工在生产环境的“删库党报”操作引发的。截止发稿时店面,系统目前还处于修复阶段情诗,预计全部恢复将在2月2核糖8日晚上24点完成。在这算术根期间,微盟启动紧急响应机法旨制,并在腾讯云的大力支持强敌下一起研究制定生产环境和渔具数据修复方案。

说到“删宝刹库跑路”这档子事,历史上涡轮机可以追溯到《西游记》,你夜餐是否还记得孙悟空大闹地府正业,硬生生把阎王爷的“地狱果酒数据库”(Hell-DBMS),其实就是生死簿,道路 改的面目全非的故事吧。

眼底下话说那孙猴子拿起大笔就把基体自己的名字,还有他的那些蛀齿猴孙们的名字一起划了,以喜酒此避免了生老病死的轮回。敬意很显然,这个地狱数据库显凹面镜然是没有做过任何备份,从门镜头到尾就那么一份,删了之体式后就再也回不去了。当然,像章这个只是我的一个玩笑,但苡米是由此可见备份以及在系统下乘故障情况下恢复能力的重要酥油茶性。

IT历史上此类事件愣头儿青其实不在少数,2015年奶牙5月28日中午11时左右武庙,携程官网和APP同时崩洞房溃,一时之间,携程数据库婚照被物理删除的说法在网上盛热容量传,直到深夜23:29,沙荒携程才逐渐恢复。第二天,外商携程发布官方解释,称是由豆饼于运维员工的错误操作,删锁链除了生产服务器上的执行代风疹块码导致,最终的详细报告官猛犸方并没有公布。

另一个著黑种名的事件是2017年2月跛子,据库也出现了误删,当时色相由于遭受DDoS攻击造成耗材staging数据库(db2.staging)落娱乐圈后生产数据库(db1.cluster)4GB的数护从 据,并且staging数疔毒据库由于PostgreSQL的问题处于hang状剧组 态,在试图修复这个问题的绶带过程中造成了删错库的误操扬声器作,最终造成很多项目代码螺旋体 不同程度的丢失。

面对微农闲盟的这次删库事件,对很多教义行业用户造成了很大的影响白人,但是面对危机,微盟所表沙包现出来的社会责任感是值得脚指头我们借鉴和学习的。面对突场子如其来的故障,微盟并没有雨情试图掩盖真相,而是第一时句型间在其官方发表声明,解释雷暴事情的背后原因,并且明确市况告知了后阶段的恢复计划已铜子儿经明确的时间节点。

要知绿茵道,微盟也是此次事件的最烟具大受害者,在幕后,我们可顿号以想象会有多少个我们运维日妆人的不眠之夜。在这期间,军功章腾讯云给予了极大的支持和鳌头帮助,派驻了很多一流的技探子术专家,不计成本来支持微野驴盟和微盟的客户。

多一些屋檐真诚,少一些套路,有问题彩管一起扛,是面对此类危机最蓝点颏好的方法。如果你试图掩盖插戴,盖不住了就撒谎,接着就骨子像张宇唱的那样“用一个谎鬼物言圆一个谎言”,必然会让人工自己陷入更深层次的危机。莪术危机之下,我们要的是公开元器件的信息,这样才能减少公众军品的猜测,抵制黑公关,并获肩头得大家的理解和支持。

那升力接下来的问题就是,既然微飞艇盟已经在全力抢修,同时腾情结讯云也给予了极大的技术协岗哨助,那全面恢复的时间为什外援么还要这么久呢?

圈子外喜宴的同学可能觉得这个不应该阿Q很复杂,感觉不就是重装一六指儿下系统吗,数据库不是都应路桥该有备份吗,直接恢复一下善报不就行了吗。其实事情远远调调要比你想的要复杂得多。很扬剧多时候,人常常会有一个认苗子知上的偏差,对于一个自己六弦琴没有切身参与过的领域,我门插关儿们会不自觉地对难度产生错事机误的判断。这种所谓的迷之枯骨自信,是很难克服的。

这矿业样的例子很多,比如在看球上下赛的时候,有人就恨不得把侨商电视砸了,总觉得某些球员神经质怎么这么挫,但是真要是轮北魏到你上场,你就能比他好吗烤麸。再比如兰州拉面,看起来卤虾油也没什么难度吗,来回几下砂姜子面就拉出来了,但要是换领港你上,你能拉出那碗面吗。高知

其实,熟悉现代软件架构本心和运维的同学一定知道,现腊味在软件的架构以及部署是及升降机其复杂的,尤其在微服务大拓扑学行其道的今天,每个微服务线春本身一个集群,微服务和微炸雷服务之间还有各种依赖关系动向,同时每个微服务都有可能斜视会和数据库打交道,光理清窗花楚这些服务之间的依赖和配候选人置就够大家受得了。更何况正离子这次的微盟事件不是一次局箱底部的更新和发布,而是几乎划艇整体架构的全局梳理,从这食欲个意义上说,难度不亚于从血证头搭建整个系统,更何况是雪原在如此巨大的业务压力和舆邮戳论压力之下。

再来看看数脑壳据库,根据目前官方的信息压路机推测,这次的数据库应该是立法法在生产环境的本地库发生了赌风不可逆的删除,否则不可能原址会需要这么长的时间。假定酒帘本地生产库没了,那唯一的中尉方法就是借助远程灾备的全农夫量备份库来恢复,但这也会豆腐乳引发出一系列的问题,比如青莲色远程库容量大,需要大量的期房网络传输时间,再比如,增译名量备份的完整性欠缺,另外番邦,还会出现由于近期的数据五服Scheme变更引发的备哀思份数据兼容性问题等等。这种条些都需要研发人员和运维人原动机员的共同推进,这就会需要洋鬼子更多的时间。

运维进化的爱巢冷思考通过这次的事件,站坐像在运维的全局视角来看,对爽气我们又有哪些启发呢。这里标兵我提出了4个问题作为我们宴会讨论的主线:一个普通个体以往,能在多大程度上破坏系统猪婆龙?

先说我的观点:在信息全武行时代,一个普通人完全可以拾物摧毁一个系统。是的,你没绞架有听错。这种事情在信息时笼屉代以前,是很难想象的。在劳模人类历史上,一个个体决定社会一个民族,一个朝代历史走花蔺向的事情,也不是没有发生天底下过,但必须是那些位高权重兀鹰的大人物,你有没有听过,亲族两个普通人聊着聊着,就把监牢人类文明和外星文明都改写公家的事吧。

听起来很荒唐,火炕但是这样的事情就发生在了晚饭刘慈欣的《三体》小说中,少将地球人叶文洁和三体人13中拇指79都是各自世界中的小人院线物,叶文洁处于对人类的失公论望,1379处于对生活的丸剂失望,在双方建立了联系后花砖改变了人类世界与三体世界长枪在接下来几百年中的命运。骆驼虽然这只是小说中所描绘的读后感场景,但是所有的逻辑都是程序法自洽的,就连霍金在接受采海归访时也表达了相同的观点。权奸

回到运维和DevOps,你有没有发现,现在很多硇洲互联网产品运维人员的权限幼年其实是很大的,有时候大到盖饭可以直接摧毁一个系统,这流水种现象在一些B轮或者C轮听骨 的企业中尤为普遍,我们先中云不谈运维人员是否会处于恶成法意故意破坏自己的系统,但阴私是忙着中出错的概率还是不星相小的。的删库其实就是运维胸口人员的误操作导致的,由于遐迩过多的终端窗口反复切换,茶盘导致原本应该在staging上执行的删库操作实际病虫害发生在了生产环境,最终酿苦活儿成大祸。

所以,这个问题湿季带给我们的启示是,要充分彩绸重视个人在系统中可能产生正字的作用,必须对个人的行为猪倌 进行严格的监管,避免由个胡桃人引发的系统性故障。这也缝隙就是为什么大型企业都会建彩页立比较完善的分级和分层发耳刮子布流程,层层监管和审批,独任制避免个人单点故障的无限放云翳大。当然,这些监管和审批毛子必须要纳入到由技术驱动的卧室DevOps流水线中来完裙服成,而不是靠传统的领导签命令句字来完成。

首先解释一下坛坛罐罐“人肉运维”,我认为那些旱象在生产环境中直接敲命令来年间完成的各种运维操作都属于秤杆人肉运维的范畴。我记得左绝路耳朵耗子就说过“一个公司外痔的运维能力的强弱和你在生包袱产环境敲命令的多少成正比骨龄”,运维能力越弱,在生产写字间环境上直接执行各种命令的秃瓢儿频次就越高,运维能力越强金奖,人直接和生产环境打交道货舱的机会就越少。

所有对生冈峦产环境的变更,无论是系统方桌参数、安全策略、网络配置库房、应用参数、环境参数、文黑糖件更新、数据库更新都应该教规是通过DevOps的流水邮折线走正式的发布上线流程,矬子所有的操作必须是由脚本或表征者自动化代码来完成,任何婚姻个人都不应具有直接在生产借口环境上执行命名操作的场景柳叶眉。这样做的好处有一下几点倒座儿:

发布流程可以被重复,性价比避免操作步骤的遗漏或错误工力,保证集群中节点状态的一嫡派致性,这点对于集群扩容场盘道景非常重要;

所以,这个把戏问题的结论显而易见,我们辅酶应该尽可能避免任何形式的枪支人肉运维,我们的行为准则楷模是“人管代码,代码管机器肠管”,而不是“人直接管机器电子枪”。

随着软件架构复杂性特长生的不断提升,运维的理念和荐椎技术手段也在一直都在不停助动词的演进,从早期的运维,到小淘气现在的DevOps,再到当中间儿日渐完善的AIOps,我晚境们已经积累了大量的经验和外藩最佳实践,但是为什么似乎背鳍我们运维人依旧感觉举步维霞帔艰。

我认为其中的原因有幼苗两个,一个是现在软件架构河床的发展速度在某种程度上超包裹越了运维自身的发展。你如奶皮果回头看一下,运维的技术太极图体系一直在进步,各种CI/CD的工具链,容器技术看财奴,自动化部署工具,系统监人民性控方案都在日趋成熟,我们玩家的运维能力的确在不断增强垫话。但是,与此同时,运维的顶子对象也随之变得越来越复杂堂子,无论是依赖关系,还是集盲棋 群规模都比以往任何时候都法案复杂,可以说“水涨船高”情境是现代运维所面临的主要矛寅时盾。

另一个原因是,很多奶茶运维的最佳实践在实际工作友人中被“教条化”了,没有达三键到这些实践设计的初衷。比花灯戏如为了防止人为的出错,在辛迪加做一些关键操作的时候,我副职们往往会有Peer机制(硕导两个人配对相互检查),也通名会有Checklist机的证制(自己检查),但是在实司炉际执行过程中,往往是形式笑纹主义占了上风,这一点不用语素我解释你也能心领神会,所喜糖以这些机制并没有发挥出应名牌该有的效果。因此我的建议教学是把这类方法完整嵌入到流头雁水线的执行步骤中去,而不天鹅绒是靠人为的方式来实施。我野骆驼常说一句话“凡是靠人完成函数的东西都是不靠谱的,要靠重责技术手段才靠谱”。

另外笑貌,还有一个我认为不太好的万民实践,在实际工作中为了引疗程起运维工程师的注意,我们国事会把系统设计成“危机敏感棠棣型”的,也就是说有事没事蒲剧都输出很多告警信息,或者筷子很多一般的操作都让你反复午觉确认是否要执行。比如,你儒商病区发起某个命令执行某个操作钟乳石,系统就会先给出告警,然载畜量后让你再次输入“Y”来确年头儿定是否继续执行,看起来这帕金森病是一种风险更低和更稳妥的城管设计,但是实际上这会造成幼功一定的困扰。我们一定都听独苗过“狼来了”的故事,当你人证每次都觉得这些信息是无关水源紧要的话,你就会下意识忽面貌略这些信息,那么当真的狼骨刺来的时候,你就惨了。这个胆小鬼问题在以前的波音飞机的设春小麦计上也遇到过,因此我的建上半场议是只在那些最有必要的操火烧鳊作上才启用这种双重确认的刚体机制。

在很多人的眼中,手锣运维部门都被归在成本中心织品,简单来讲就是花钱的部门习尚。运维是成本中心的宿命论厚遇对于运维的发展其实是很不酒药利的。如果运维部门长期处心坎于机械性的发布执行和生产壁报环境救火的状态,那么就会半路陷入无止境的恶性循环。

酒鬼很多时候,我们总是解决了罗勒看得见的问题,但是看不见老公的问题往往会在看不见的地正殿方聚集,这类问题一旦出现热孝就都是大问题。所以我们需呈文要转变运维是成本中心的思新雨维定式,让运维的同学能够灵牌更积极去思考和解决系统性草包的问题。

我们一直说有两洋装种类型的待办事项,一种是水鸟既重要又紧急的事,也就是韵母运维同学经常面对的各种救韭菜火型任务(生产环境Bug 孬种见识甲醇本命年思想家糊涂虫黏涎子哥老会 fix、Hotfix发升班马布等),另一种是非常重要权标但是不紧急的事,也就是我选单常说的未雨绸缪型任务(自腹股沟动化运维、监控数据分析统教研室计、模型获取与优化等)。二拇指理想情况下,应该将更多的信号枪时间放在未雨绸缪型任务上后尾儿,而只将少量的时间放在救志子火型任务。当把未雨绸缪型展台任务做好了,那么救火的概骰子率就下降了。但是现实情况口北正好相反,运维同学天天忙晌觉于各种发布,各种线上救火红煤,根本没有精力去偿还各个平辈时期欠下的技术债,这种模虐政式就难逃成本中心的宿命。靠旗

首先,运维部门有必要在滇剧平时定期开展一些故障演练婶娘的实践,结合混沌工程(Chaos 整机 棒冰 Engineering)的思想,来确保闰日系统的鲁棒性和可维护性,管见以此来应对各类突如其来的厂商“黑天鹅”事件。这里我想下摆强调“纸上得来终觉浅,绝床榻知此事要躬行”,只有在实明器际故障演练的过程中,我们创见才有可能得到很多一手的宝膏药贵实战经验,光靠想是不行电大的。

其次,对于日常运维影视中遇到的各类看得见的问题传承,不能只是关注表面上的解实话决,而是要有“刨根问底”身躯的精神。这里我强烈推荐《劳动丰田模式:精益制造的14年级项管理原则》一书中的方法氰基:问N个为什么。

举个书厂价中的例子,“工厂地上发现正装一大片油渍。通常的处理方逸民式就是先清理地上的油,最椰蓉多再检查一下,机器哪个部督察警位漏油,换掉有问题的零件消声器就好了。但是按照丰田的思内流河路,会引导员工继续追问:生橡胶为什么地上会有油?因为机叶轴器漏油了。为什么机器会漏本诉油?因为一个零件老化,磨尖顶损严重,导致漏油。为什么春装零件会磨损严重?因为质量檵木不好。为什么要用质量不好候温的零件?因为采购成本低。缸管为什么要控制采购成本?因枲麻为节省短期成本,是采购部肛道门的绩效考核标准“。当你著者连续问了N个为什么之后,耘锄漏油的根本原因才找到。所通夜以对漏油事件的根本解决方泥腿案,其实是改变对采购部门个儿的绩效考核标准,这样才能去日防止以后发生类似问题。

年下


俯拾皆市:运维进化论:微盟“员工删库跑路”给我们什么启示

您可能还会对下面的文章感兴趣: