2015年5月28日上午11时许,携程旅行网官方网站突然陷入瘫痪,打开主页后点击时均显示“Service Unavailable”,经过12小时的紧急抢修后,携程网终于恢复,可正常访问。
虽然事情已经过去几天了,但通过网上的各种传言,到处都透露出携程网在网站建设中的种种不专业行为,有些传言甚至让人匪夷所思,典型的就是所有数据库数据都被物理删除,无法恢复这一条,容后表述。
下面列出一些携程网显然做的不足的方面,以资讨论。
1.运维工程师,开发工程师,测试人员等各角色的职责和权限必须定义清晰
互联网站建设的几个重要环节,基本是产品->开发->测试->运维这样一个流程。让我们根据这个流程看一下,究竟是哪个环节出问题了呢?毫无疑问是运维这部分。
出问题的可能性大致推测如下:
运维工程师不小心删除了根目录下的全部文件;
运维人员水平所限,没有搭建灾备系统;
公司管理混乱,不该具备操作权限的非运维人员也有权进入生产环境的主服务器进行操作;
外部黑客攻击网站。

根据上面的推断,基本可以发现,运维人员的水平高低,往往是决定网站能否正常运行的关键环节。而携程网显然在运维这一环节关键时刻掉链子,才造成了网站大面积宕机的惨剧。
无法想象在今天的互联网时代,一个大中型网站竟然没有灾备系统或者集群,网络拓扑结构等的配置。携程网的运维部门,必然不合格。
时至今日,在网站建设中的各个角色的定义已经相当清晰,一般来说,只有运维部门有权在生产服务器上进行发布新版等操作,如果这一点尚存疑问,携程网确实需要好好补课才行。

2.灾备系统的重要性
根据官方统计,携程网在12个小时内,网站所有功能都陷于瘫痪。说明此网站完全没有进行灾难备份。在当今一些要求比较高的应用,例如银行,金融业等,必须要求7*24小时不宕机,在这种情况下,往往至少会在生产环境发布两套系统,一旦主服务器出现异常,马上可以切换到备份服务器。另外,使用nginx的权重分配等方法也可以完成类似操作。携程网的系统架构师和运维人员显然不具备这种灾难恢复意识。

网上甚至一度盛传所有数据库数据都被物理删除,无法恢复。在实际应用中,大型网站的数据库几乎都是主从(master-slave)数据库,每隔半小时,1或2小时就会对数据库做一次备份,备份还分为冷备和热备。怎么还会出现这种问题,最多也就是丢失1至2小时的数据而已。携程网的说法实在是让人诧异不已。

3.java的安全性能相对较高,.net程序则一般运行在IIS的windows机器上,权限控制太弱
事发后,大家才获知携程网至今仍然使用的是.net进行的网站建设,那么它的全部代码理应跑在windows系统的IIS web服务器下。众所周知windows系统几乎对系统安全性不做限制,那么随便一个内部人员几乎都可以上去增删代码;而linux系统对权限的控制就严格的多。
另外,还有一说,是遭到了外部攻击造成系统瘫痪。目测时至今日,大的正规网站基本都使用了Java,php等编程语言来进行网站建设(.net基本已经被大家遗弃,不是没有理由的)。Java系统天生安全性能就较高,可以较好的抵御外部入侵。

4.系统架构的重要性
携程网瘫痪了12个小时,只有主页可以浏览,其他所有功能都陷于瘫痪。官方解释是遭到了外部攻击造成系统瘫痪。这从另一个方面说明,该网站的各个功能模块互相依赖,耦合性太强。一旦受到外部攻击,整个系统的自洽性极低,崩溃会迅速从点蔓延到面,造成整个网站瘫痪。
对大中型网站建设来说,用户系统,购物系统,订单系统,客服系统。。。甚至缓存系统,数据库集群等等,基本都是独立出来为整站提供服务。例如,客服系统受到攻击,其他系统基本不受影响。而携程网则非常诡异的全站瘫痪,实在是闻所未闻。
一种传言是有人将主服务器根目录下的所有文件都删除了。但是依我的经验,对一个大中型网站来说,通常都使用网络拓扑加服务器集群(主备或者权重)的方式来发布,删除所有服务器上的运行程序,几乎是不可能发生的事情。
从系统架构的角度来看,这是一个极其不合格的系统。一个好的系统,应该尽量降低模块间的耦合性,分散到多个服务器上发布。这样不但可以提高开发测试等工作效率,方便模块发布,也有利于系统拆分及升级扩容,显然携程网的架构师离这一要求还相去甚远。

5.公司企业文化的重要性
最后来阐述一下,公司处于稳定发展期后,企业文化对公司持续良好发展的重要影响。
根据不少使用过携程网的用户反应,此网站经常搞一些小动作,注册用户在退票时各种推诿,不能爽快的退还应付款项。感觉上是公司为了营收,经常对用户进行无理由克扣款项,肆意践踏网站自己制定的客户须知等内容,毫无企业诚信可言。

从这个现象可窥豹一斑,此公司的企业文化就是比较鸡贼,擅搞小动作。而有一种网上传闻则是,携程网的运维总监和运维部L员工的女友上床,招致该员工报复性的删除了主服务器上根目录下的全部数据,看看外界对携程网的认知和评价,马上就让人觉得这样的事情发生在携程网不足为奇了。
什么样的企业文化,培养出什么样的员工,纯粹是no zuo no die.

携程网宕机事故深度剖析相关推荐

  1. 《让系统发生重大宕机事故的15个方法》

    来源| 技术领导力(ID:jishulingdaoli) 你没看错,本文探讨的主题是"让系统发生重大宕机事故的15个方法",仔细研究后你会发现,把系统搞宕机是一件非常有技术含量的事 ...

  2. 2018年十大云宕机事故盘点:主流无一幸免!

    根据IDC今年7月份发布的<中国公有云服务市场半年度跟踪报告>显示,阿里云的市场占有率已过45%,腾讯云达到10%.在全球市场,根据Gartner最新数据显示,亚马逊AWS占全球份额的51 ...

  3. 微软再现宕机事故 部分用户9天无法使用电邮

    据CloudPro称,微软Office 365中的电子邮件服务已经连续宕机9天了. 微软对CloudPro说,这个问题并没有影响到Office 365的所有用户,但是"那些受到影响的客户可能 ...

  4. GitHub历史上最糟糕宕机事故回放及反省

    http://www.csdn.net/article/2013-01-05/2813427-Github-Downtime-last-Saturday 摘要:距离今年9月份在两天内两次宕机仅间隔3个 ...

  5. 阿里云爆发史上最严重宕机事故。。。

    阿里云香港区于2022年12月18日出现故障,多个香港和澳门的网站受到影响,包括Linux中国的官网(https://linux.cn/).澳门金融管理局.澳门银河.莲花卫视.澳门水泥厂等关键基础设施 ...

  6. HBase案例 | 20000个分区导致HBase集群宕机事故处理

    这是几个月前遇到的一次HBase集群宕机事件,今天重新整理下事故分析报告.概况的说是业务方的一个10节点HBase集群支撑百TB级别的数据量,集群region数量达 23000+,最终集群支持不住业务 ...

  7. Facebook宕机事故,暴露了上云不是唯一的答案

    当国内人民欢度假期的时候,互联网巨头Facebook却收获了"负面新闻大礼包". 负面之一,就是长达6小时的全球大宕机. 据说,这是Facebook创办以来最严重的一次网络访问事故 ...

  8. [译]GitHub应对1.28宕机事故的前前后后

    原文:January 28th Incident Report 译者:杰微刊兼职译者张胜超 上周GitHub是不能使用了两个小时6分钟.我们理解你们有多么依赖GitHub,并且考虑到服务的可用性也是我 ...

  9. oracle小机系统,【案例分享】Oracle系统参数过小导致数据库宕机

    数据库双机安装完成后,数据库实例能够正常启动,但当启动全部应用软件后约10分钟,主机数据库出现自动切换至备机,再运行约10分钟备机数据库自动宕机. 原因分析: 启动应用软件前,数据库双机运行正常且能正 ...

最新文章

  1. 打印菱形(曼哈顿距离法)
  2. 地图画指定区域_零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境...
  3. JMeter正则表达式-学习(3)
  4. 使用Recast.AI创建具有人工智能的聊天机器人
  5. 带你剖析WebGis的世界奥秘----Geojson数据加载(高级)
  6. 只让输入数字、字母、中文的输入框
  7. 跨浏览器开发工作小结
  8. oracle函数总结
  9. SpringBoot 如何测试打包部署
  10. 如何计算页面打开获取流量_网站SEO优化如何获取更多的流量?
  11. HFSS学习笔记—18.SMA模拟端口
  12. 2023年度深圳市中小试基地认定资助申请指南
  13. Fingerprint has already been taken
  14. 上传图片方法到免费服务器
  15. 软件设计师之朴素的模式匹配算法
  16. Andre Weil的一生
  17. 文件共享服务器热备,两台云服务器如何实现双机热备
  18. 嵌入式Linux设备驱动程序开发指南17(IIO子系统一)——读书笔记
  19. 【C#】消除锯齿 - 指定抗锯齿的呈现。
  20. 测试用例的思路---矿泉水瓶

热门文章

  1. 1060 爱丁顿数(JAVA)
  2. 类微信APP,移动互联网第三大入口?
  3. RHEL 6.9 官方下载地址
  4. 我是如何用Python制作出知乎问答收集工具的?
  5. java计算机毕业设计酒店管理系统源码+数据库+lw文档+系统
  6. 【苏州数字力量】面经 base上海
  7. 让 Linux 注释更和谐,有人提议用 hug 替换 F**k;自如取消不涨价限制
  8. python解数字三角形
  9. Maps模块管理地图控件,用于在web页面中显示地图控件,提供各种接口操作地图控件,如添加标点、路线等。通过plus.maps可获取地图管理对象
  10. html完成名片的制作