【原文】上周,微盟遭遇大规模系统故障。,晚上18:562月23日,因个人精神和生活原因,通过个人VPN登录公司内网跳机,恶意破坏微盟线上生产环境;这是运维部的核心员工。是生产环境中的“删除数据库”操作引起的。这起数据库删除事件引起了IT技术界的广泛关注;小编整理了几个网友比较好奇的问题:为什么运维带来的危害这么大?为什么维修周期这么长?微盟是否存在管理漏洞?如何防止类似事件发生?为此,小编专访了沃顿在线负责人朱磊、阿里云OLAP产品团队资深产品专家韩峰、业内知名软件研发工程效率专家茹炳生。内容组织如下。为什么单个运维人员造成的危害如此之大?在信息时代,没有孤立的个体。信息时代,系统集成度越来越高,一个人就可以彻底摧毁一个系统。但在信息时代之前,这是不可想象的。在人类历史上,个人决定一个民族、一个朝代的走向并非闻所未闻,但那一定是那些身居高位的大人物。作为公司的核心运维人员,这次事件的主角显然在这种事情上有着天然的便利。谈到运维和DevOps,我们会发现很多IT运维人员的权限太大,甚至到了可以毁掉一个系统/产品的程度,这在一些初创公司中很常见。目前微盟提供的服务都是部署在服务器上的。为了方便工作,运维工程师手里拿着一个高权限的账号,可以对服务器进行任何操作。比如这次数据库删除事件,运维工程师使用高权限账号删除服务器上的文件,直接导致服务器崩溃,进而导致公司业务中断。无法避免的人为因素无所谓运维人员是否会恶意破坏自己的系统,但作为人控,忙中出错的概率不小。因此,这个问题给我们带来的启示是,要充分关注个体在系统中可能发挥的作用,就必须严格监督个体的行为,避免个体造成系统失灵。为什么恢复需要这么长时间?据介绍,一般来说,数据备份至少要在30分钟内恢复到最近的数据。既然微盟已经在全力修复,腾讯云也表示正在提供技术协助,为什么要这么久才能完全恢复?影响因素一:容灾出现问题。运维人员删除了生产服务器上的文件,但没有提到销毁备份服务器。如果微盟有高性能容灾,在技术层面恢复服务并不会太难。不过根据目前官方的资料来看,应该是在生产环境的本地库中不可逆删除了数据库,不然用不了这么长时间。假设本地生产数据库没有了,唯一的办法就是使用异地容灾的全量备份数据库进行恢复,但是这样也会带来一系列的问题,比如异地数据库容量大,需要一个大量的网络传输时间。影响因素二:恢复过程复杂。就数据恢复而言,受影响的因素很多,包括应急团队的响应速度、技术能力、删除文件的大小、文件删除后频繁读写硬盘等问题。任何一个都会影响恢复时间。影响因素三:恢复计划不完善当企业遭受如此重大的损失时,是否有完整的恢复计划和真人演练就变得非常重要。如果之前没有相关准备,当问题发生时,很难快速响应,并清楚地考虑问题的范围、恢复方式、相关风险和所需资源。贸然投入战斗,难免会看不到对方,恢复的程度和恢复的时间也难以预料。影响因素四:技术实现难不熟悉运维的人可能认为恢复比较简单:不就是重装系统或者恢复数据库备份吗?事实上,其中涉及的技术比我们想象的要复杂。1、业务架构复杂。常用软件的架构和部署极其复杂。在微服务流行的今天,每个微服务本身就是一个集群。微服务与微服务之间存在各种依赖关系。同时每一个微服务都可能和数据库打交道,大家了解这些服务之间的依赖关系和配置就足够了。2、时间紧,任务重。这件事涉及梳理整体架构,难度不亚于从0到1搭建一个新系统,再加上客户压力和舆论压力,难度可想而知。3、数据库问题可能是增量备份不完整造成的。此外,最近的数据方案更改可能会导致备份数据兼容性问题。这些都需要研发人员和运维人员的共同推进,会导致工作量的增加和时间的延误。微盟的问题:技术管理和数据容灾不能忽视成本,成本是影响公司数据管理投资的直接因素。微盟删库事件暴露了一些互联网公司内部数据管理的混乱。按理说,像微盟这样规模的公司,应该在数据安全和保护上投入和重视。但是这件事的背后是利益问题。对于以微盟为代表的企业来说,数据安全和保护是比较大的成本,不能直接产生收入。因此,经常会有一些企业还处于成长期。不注重投资,很多制度保护往往是肤浅的。对于大公司来说,如果忽视数据安全,可能会带来更大的损失。所以一般来说,大公司在数据安全方面的投入和措施都比较规范,基本不会出现像微盟这样的删库问题。互联网公司缺乏内部管理能力。21世纪属于互联网等新兴产业的时代,但管理问题一直是新兴互联网企业前进的最大障碍。估计每一个企业高管都明白企业管理的重要性。是任谁掌舵的人都不会忽视的问题,但真正做到这一点却很难。互联网的快速发展也埋下了隐患。浮躁的行业让互联网公司的高层无暇学习管理、修炼内功。这次微盟事件给互联网公司上了重要的一课,希望更多的公司能够吸取教训。如何避免此类事件的发生?该事件给微盟及微盟客户造成了巨大损失。对于整个事件背后暴露出的管理和技术漏洞,其他企业乃至整个行业如何避免类似问题的再次发生?小编总结了茹炳生和朱雷的建议,我们从运维和公司的角度来谈谈。对于运维技术人员:1、杜绝任何形式的人肉运维。随着软件架构复杂度的不断增加,从早期的“人肉”操作,Dimension的理念和技术手段也在不断演变。但人类的影响一直存在。这也是为什么大企业会建立比较完善的分级分级发布流程,层层监管审批,避免个别单点故障无限放大。当然,这些监管和审批必须纳入技术驱动的DevOps流水线中才能完成,而不是依赖传统的领导签名。生产环境的所有变更,如系统参数、安全策略、网络配置、应用参数、环境参数、文件更新、数据库更新等,都应该通过DevOps流水线走正式发布流程。所有的操作都必须通过脚本或者自动化代码来完成,个人不应该有在生产环境直接执行命令操作的场景。因此,应避免任何形式的人为运维,提倡“人管代码,代码管机器”,而不是“人直接管机器”。2、未雨绸缪,做好灾备演练。一般来说,待办事项分为两类,即重要且紧急的事项和非常重要但不紧急的事项,是运维同学经常面对的各种救火类型。任务(生产环境Bug修复、Hotfix发布等)理想情况下,应该多花时间未雨绸缪,少花时间救火。未雨绸缪任务做好了,救火的概率就会下降。但现实恰恰相反。运维同学每天忙于各种发布和线上救火,无心偿还各个时期欠下的技术债。这种模式难逃成本中心的宿命。因此,运维部门有必要定期进行一些故障演练,结合混沌工程(ChaosEngineering)的思想,保证系统的健壮性和可维护性,从而应对各种突如其来的“黑天鹅”事件。“纸上谈兵是肤浅的,但我们必须自己动手。”只有在实际故障演练过程中,才能获得很多宝贵的第一手实践经验,并且光靠思考是不够的,对于整个公司来说:1.运维是成本中心的谬误在很多人眼里,运维部被归类为成本中心,简单来说就是一个部门运维是成本中心的宿命论,其实对运维的发展是非常不利的。长期在生产环境中厮杀,会陷入无穷无尽的恶性循环。很多时候,我们总是解决看得见的问题,看不见的问题往往会聚集在看不见的地方。这样的问题一旦出现,都是大问题。因此,我们需要改变运维是成本中心的思维方式,让运维同学更积极地思考和解决系统性问题。2、做好危机公关微盟删库事件给不少行业用户造成了不小的影响,但在危机面前,微盟的社会责任感值得我们学习借鉴。面对突如其来的故障,微盟并没有试图掩盖真相,而是第一时间在官网发表声明,解释了事件背后的原因,并明确告知了后期的恢复计划和明确的时间节点。多一些诚意,少一些套路,共同处理问题,才是面对这种危机的最好方式。如果你想掩盖,掩盖不了就撒谎,再像张宇唱的那样“用一个谎言来完成另一个谎言”,势必会让自己陷入更深的危机。危机之下,我们要的是公开信息,减少舆论猜测,抵制黑公关,得到大家的理解和支持。3、练好“内功”面对疫情等突发事件,首先要让员工了解真实情况,做好必要的宣传工作。从员工的角度来说,这样的情况一般都能理解,也愿意付出。二是做好工作量考核和必要的人员安排,包括值班、轮岗等,最重要的一点是负责人到岗,与员工共同承担责任;一方面有利于快速反应和快速决策;另一方面减轻了员工的压力,有利于公司业务的快速发展。另外,对于管理来说,应该强调技术工作(包括基础运维)的重要性。在团队建设方面,打造一支具有战斗力的技术团队。从人才角度,在“选、育、用、留”多个环节把握公司价值观,选好用好真正认同公司价值观、乐于奉献的学生;淘汰不合格人员。最新消息2020年2月25日,微盟发布公告称,公司线上生产环境和数据遭到员工恶意破坏,导致公司系统服务无法使用。经过几天的“抢救”,3月1日,微盟再次发布公告称,数据已全部找回,将于3月2日进行系统上线演练,3月9日上午9点正式上线数据恢复3、同时,对受影响的商户也给出了补偿方案。补偿方案公开资料显示,微盟目前拥有1600多家渠道代理,注册商户超过300万。微盟此次宕机,可能会导致300万商户的业务停摆,造成巨大损失。为此,微盟也公布了商户补偿方案,并准备了1.5亿元的综合补偿金,其中微盟公司承担1亿元,管理层承担5000万元。针对商户因系统不可用造成的损失不同,微盟也制定了不同的补偿方案:现金补偿方案对于因系统不可用造成利润损失的商户,微盟将根据商户的利润率进行赔付。计算公式如下:贡献率=日均营收×行业平均贡献率利润率×系统故障时间流量补偿方案对于因系统不可用造成流量流失的商家,微盟给予腾讯广告50000impression的流量补偿,以及提供账号运营服务,同时延长SaaS服务有效期两个月。放弃自建数据库,为基础设施全力上云,不仅仅是经济上的补偿。在技??术上,核心运维对微盟的生产环境和数据造成破坏,让商家对微盟系统的安全性和稳定性产生质疑。同时,也给微盟本身敲响了警钟。微盟在3月1日发布的公告中表示,微盟将支持基础设施上云,逐步放弃自建数据库服务,迁移至腾讯云数据库(CDB),增加数据库跨可用区和异地容灾.同时,黑石1.0实体机全面升级为黑石2.0,云主机得到充分利用。此外,微盟还宣布将加强数据安全管理机制和安全容灾体系建设。受访者:1、茹炳生:业内知名软件质量与研发工程效率专家,腾讯云最具价值专家,中国商业联合会互联网应用技术委员会智库专家,畅销书♂作者,《软件测试第52讲——从小工到专家的实战方法专栏作家》。现任DellEMC中国研发组高级架构师,曾任eBay中国研发中心测试基础架构技术总监、惠普软件中国研发中心高级架构师和性能测试专家、阿尔卡特朗讯高级技术总监、以及思科中国研发中心高级工程师等,拥有超过16年的软件开发和技术管理经验。2.朱磊:北京沃顿在线信息技术有限公司创始人,专注运维安全,《暗战:数字世界之战》一书作者。曾任京东研发系统安全负责人。多年互联网信息安全管理经验,丰富的信息安全理念和多种安全体系架构经验。3.韩峰:昵称:群峰,阿里云数据库产品组高级产品专家,CCIA(中国计算机行业协会)常务理事,OracleACE,dbaplus社区联合创始人,ACMUG局及专家组成员,《SQL优化最佳实践》作者。【原创稿件,合作网站转载请注明原作者和出处为.com】
