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.
分享到:
相关推荐
### WebLogic宕机问题及其解决策略 #### 一、引言 在现代企业级应用部署中,Oracle WebLogic Server作为一款高性能的企业级Java应用服务器,因其稳定性和强大的功能集受到广泛青睐。然而,在实际生产环境中,...
tomcat宕机重启脚本,比较简单的一种设置
宕机检测工具就是为了这个目的而设计的,它能够实时监控服务器状态,及时发现并报警服务异常,避免因服务器宕机导致的业务中断。本文将深入探讨宕机检测工具的工作原理、功能特性以及如何运用这些工具来提升系统稳定...
在IT行业中,"永不宕机的服务器"是一个重要的概念,尤其对于那些依赖高可用性和连续服务的企业来说至关重要。"宕机"是指服务器因为各种原因停止服务,无法响应客户端请求,这对业务连续性和用户体验可能造成严重影响...
服务器宕机的应急预案 服务器宕机是一种常见的IT灾难,它可能会导致业务中断、数据丢失和经济损失。因此,拥有一个完善的服务器故障应急预案对于企业的正常运营至关重要。本文将讨论服务器宕机的原因、备份和冗余...
在处理WebLogic宕机问题时,我们首先遇到的是与数据库相关的优化问题。在这个场景中,项目组最初认为数据库是问题所在,因为SGA(System Global Area)使用的是默认参数,导致缓冲区命中率低。这可能意味着数据读取...
### MySQL 主备机宕机自动切换详解 #### 一、MySQL主备复制机制简介 MySQL复制(Replication)是MySQL数据库系统中一个重要的特性,它允许数据从一台MySQL服务器(称为Master)复制到另一台或多台MySQL服务器...
更重要的是,nginx还提供了宕机自动切换的能力,这确保了在某后端服务器发生故障时,能够快速切换到健康节点继续提供服务,从而保障了服务的连续性和稳定性。 在nginx中进行负载均衡配置,一般会利用到默认安装的...
如发生在 mysql 软件可承受力够但是服务器硬件,或者其他服务导致的 宕机 又或者 MYSQL 参数配置过大或者参数配置不合理...,出现宕机的可能多种多样,本文档主要体现的是宕机后可能出现的问题和后遗症较大的情况是什么
"ORACLE数据库一次意外宕机的分析处理实记(ora-1578)" 在本文中,我们将讲述ORACLE数据库一次意外宕机的分析处理过程。该宕机事件发生在测试环境中的一台装有ORACLE数据库的AIX小机上,导致数据库宕机。我们将从...
### IT知识要点:宕机对企业的影响与IBM POWER7的应对策略 #### 1. 宕机对企业的影响 - **业务中断**:宕机会导致企业工作流程的中断,直接影响业务连续性和客户服务,造成收入损失。 - **经济损失**:包括直接的...
RAC节点宕机故障分析 RAC 节点宕机故障分析是指在 Oracle Real Application Clusters(RAC)环境中,节点宕机故障的诊断和解决方法。在这个主题中,我们将重点介绍 RAC 节点宕机故障的分析和解决方法,涵盖 ALERT ...
然而,当GitLab服务器遭遇宕机时,可能会导致开发者无法正常进行代码的提交和下载,这对任何依赖GitLab进行日常开发工作的团队来说都是一个重大的挑战。本文将详细解释如何在GitLab服务器宕机后恢复代码仓库,确保...
java监听Tomcat是否宕机 可以重启
部署在winserver的c盘/program file/mail下,自动通过outlook给自己发送邮件,可在outlook设置收到邮件后保存一个savelog.txt的标记,脚本根据是否有savelog以及发邮件是否成功,判断服务器是否宕机。
根据生成的宕机文件监测并发送短信提示 也可以改为监测端口发送短信提示
主数据库服务器宕机应急预案(正式篇) 数据库服务器宕机应急预案 预案目的 主数据库服务器宕机应急预案的目的是在主数据库服务器宕机时,快速恢复主数据库服务器的正常使用,以保证金融线上业务的正常访问。 ...
作为domino从业人员,经常会遇到系统宕机的问题,可是对于很多domino者,看到nsd报告的一大堆信息,就像天书一样无从下手。 本人通过下面两种方式进行说明:手动分析、NSD工具分析。Nsd报告是技术群一朋友提供,我...
《Domino宕机诊断工具-LND 2.5:深入解析与应用》 在IT行业中,尤其是企业级的协作和信息管理领域,Lotus Domino是一款备受推崇的平台。它为邮件、日程、文档共享以及应用程序开发提供了强大的支持。然而,如同任何...
由于项目需要,编写基于zookeeper集群监测服务器宕机情况,并发邮件通知代码;实现很简单,编写了客户端和服务端,基于maven实现,代码方面修改zookeeper ip地址,需要部署的服务器名和邮件信息即可实现。直接打包...