截止阀厂家
免费服务热线

Free service

hotline

010-00000000
截止阀厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

深入解析和反思携程宕机事件

发布时间:2020-03-23 13:39:34 阅读: 来源:截止阀厂家

感谢数据中心操作系统的投递

携程网宕机事件还在延续,截止28号晚上11点,携程首页还是指向一个静态页面,所有动态网页都访问不了。关于事故本源,网上众说纷纭。作为互联网运维老兵,尝试分析缘由,谈谈我的看法。

1 、宕机缘由分析

网上有各种说法,有说是数据库数据和备份数据被物理删除的。也有说是各个节点的业务代码被删除 现在重新在部署。也有说是误操作,致使业务不可用,还有说是黑客攻击乃至是内部员工歹意破坏的。

先说一下最早传出来的“数据库物理删除”,其实这个提法就很不专业,应该是第一个传播者,试图强调问题之严重和恢复之困难,所以用了一个普通电脑用户比较熟习的“物理删除”的概念。实际上,任何一个网站的数据库,都分为本地高可用备份、异地热备、磁带冷备三道防线,相应的数据库管理员、操作系统管理员、存储管理员3者的权限是分离的,磁带备份的数据乃至是保存在银行的地下金库中的。从理论上而言,很难有一个人能把所有的备份数据都删除,更不用说这个绘声绘色的物理删除了。

第二个则是黑客攻击和内部员工破坏的说法,这个说法能满足一些围观者猎奇的心理,因此也传播的比较快。但理性分析,可能性也不大。黑客讲求的是潜伏和隐蔽,做这类事等因而在做自杀性攻击。而内部员工也不太可能,我还是相信携程的运维人员的操守和职业素养,在刑法的威慑下,除非像“法航飞行员撞山”那种极个别案列,正常情况下不太可能出现人为歹意的可能性。

从现象上看,确切是携程的应用程序和数据库都被删除。我分析,最大的可能还是运维人员在正常的批量操作时出现了误操作。我猜想的版本是:携程网被“乌云”暴光了一个安全漏洞,漏洞触及到了大部分运用服务器和数据库服务器;运维人员在使用pssh这样的批量操作履行修复漏洞的脚本时,无意中写错了删除命令的对象,产生了无差别的全局删除,所有的运用服务器和数据库服务器都遭到了影响。

这个段子在运维圈子中作为笑话流传了很多年,没想到竟然真的有这样一天。

2、 为何恢复的如此缓慢?

从上午11点传出故障,到晚上8点,携程网站一直没能恢复。所以很多朋友很疑惑:“为何网站恢复的如此缓慢?是否是数据库没有备份了?”这也是那个“数据库物理删除”的说法很流行的一个本源。实际上这个还是普通用户,把网站的备份和恢复理解成了类似我们的笔记本的系统备份和恢复的场景,认为只有有备份在,很快就能导入和恢复运用。

实际上大型网站,远不是像把几台运用和数据库服务器那末简单。看似很久都没有变化的一个网站,后台是一个由SOA(面向服务)架构组成的庞大服务器集群,看似简单的一个页面背后由成百上千个运用子系统组成,每一个子系统又包括若干台运用和数据库服务器,大家可以理解为每个从首页跳转过去的二级域名都是一个独立的运用子系统。这上千的个运用子系统,平时真正常常发布和变更的,可能就是不到20%的核心子系统,而且发布时都是做加法,很少完全重新部署一个运用。

在平时的运维进程中,对常见的故障都会有应急预案。但像携程这次所有系统包括数据库都需要重新部署的极端情况,明显不可能在应急预案的范畴中。在仓促上阵应急的情况下,技术方案的评估和选择问题,不同技术岗位之间的管理调和的问题,不同运用系统之间的耦合和依赖关系,还有很多平时欠下的技术债都集中爆发了,更不用说很多不经常使用的子系统,可能上线以后就没人动过,一时半会都找不到能处理的人。更要命的是,网站的核心系统,可能会写死依赖了这个平时根本没人关注的运用,想绕开边沿运用只恢复核心业务都做到。更别说在这样的高压之下,各种噪音和干扰很多,运维工程师的反应也没有平时灵敏。

简单的说,就算所有代码和数据库的备份都存在,想要快速恢复业务,乃至比从0开始重新搭建一个携程更困难。携程的工程师今天肯定是一个不眠夜。乐观的估计,要是能在24小时以内恢复核心业务,就已非常利害了。

天下运维是一家。携程的同行加油,尽快度过难关!

3 、故障本源反思:黑盒运维之殇。

携程的这次事件,不管缘由是什么,都会成为IT运维历史上的一个标志性事件。相信以后所有的IT企业和技术人员,都会去认真的反思,总结经验教训。但我相信,不同的人在不同的位置上,看到的东西可能是截然相反的,乃至可能会有很多企业的管理者遭到误导,开始制定更严格的规章制度,严犯运维人员再犯事。在此,我想表明一下我的态度:这是一个由运维引发的问题,但真正的本源其实不单单在运维,预防和治理更应当从全部企业的治理入手。

长久以来,在所有的企业中,运维部门的地位都是很边缘化的。企业的管理者会觉得运维部门是本钱部门,只要能支持业务就行。业务部门只负责提业务需求,开发部门只管做功能的开发,很多非功能性的问题无人重视,只能靠运维人员肩挑人扛到处救火,可以认为是运维部门靠自己的血肉之躯实现了业务部门的信息化。在这样的场景下,不光企业的管理者不知道该如何评价运维的价值,乃至很多运维从业者都不知道自己除到处救火外真正应当关注甚么,固然也没有时间和精力去思考。

在上文的情况下,传统的运维人员实际上是所谓的“黑盒运维”,不断的去做重复性的操作,时间长了以后,只知道自己管理的服务器能正常对外服务,但是却不知道里面运用的依赖关系,哪些配置是有效配置、哪些是无效配置,只敢加配置,不敢删配置,欠的技术债愈来愈多。在这样的情况下,遇到这次携程的极端案列,需要完全的重建系统时候,就很容易一筹莫展了。

对这样的故障,我认为真正有效的本源解决做法是从黑盒运维走向白盒运维。和puppet这样的运维工具理念一致,运维的核心和难点其实是配置管理,运维人员只有真正的清楚所管理的系统的功能和配置,才能从本源上解决到处救火疲于奔命的情况,也才能真正的杜绝今天携程这样的事件重现,从根本上解决运维的问题。

从黑盒运维走向白盒运维,再进一步实现devops(开发运维衔接)和软件定义数据中心,就是所谓的运维2.0了。很明显,这个单靠运维部门本身是做不到的,需要每个企业的管理者、业务部门、开发部门去思考。因此,我希望今天这个事件,不要简单的让运维来背黑锅,而是让大家真正的从中得到教训和启示。

本文作者智锦,资深运维从业者,自动化运维和云计算倡导者,曾作为支付宝运维团队创始人,管理过上万台服务器,后作为建行特聘互联网技术专家,主导了建设银行总行数据中心私有云计算平台建设。智锦目前是杭州云霁科技有限公司创始人,做运维领域的创业,致力于开发全中国最好的数据中心操作系统,欢迎关注公司微信号idcos_yunji。

关注我们:

南昌博大耳鼻咽喉医院预约挂号

心胸医院

郑州美容医院哪家最好

沈阳最好的血液病医院