10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

中移动宁宇分析 12306 的“三宗罪”以及背后原因

2012 年 10 月 07 日

前不久,InfoQ 中文站报道了《 12306 再次陷入危机,网友发起开源项目》,从技术角度分析了 12306 网站的缺失。

宁宇是中国移动业务支撑系统部副经理,国庆长假中,他撰写了一篇博客《铁道部系统的分析与借鉴》,从企业信息的角度,谈到了他对于铁道部客票系统的理解,以及对于该系统的规划和设计方面的一些观点,最后还分享了他认为 IT 支撑系统建设在此次事件中可参考和借鉴的经验教训。

首先,他从铁道部信息化办公室披露的信息中分析得出结论:

中标的太极和同方主要做的是硬件和“配套系统”,而作为信息系统的核心——应用软件,则由铁科院“自主开发”。而从时间上来看,9 月 14 号太极刚刚宣布中标“新一代客票系统”,硬件设备应该还在原厂的仓库里,3 亿多投资还未生效,现在在用的应是原来的“铁路客票系统”。从这个意义上来说,目前暴露出的网站能力不足、安全防护能力差、体验不佳等,恰恰说明对当前系统升级改造的重要性和紧迫性;而在这期项目中,也引入外部公司实施安全、监控、决策等系统的建设。

接下来,他提出了自己对“铁路客票系统”和“新一代客票系统”在规划和设计方面的观点,指出身为传统行业代表的铁道部,在信息系统建设方面的“三宗罪”。

第一宗罪:重硬件轻软件。

重硬件轻软件是国内信息化项目常出现的问题。领导看硬件设备放在那儿,心里踏实;软件难以量化评估,尤其是自主研发的软件成本到底应该如何计算?一般系统 70% 的投资是硬件,软件只占 20-30%,而且其中还包含着安全软件、工具软件等,很多时候应用软件是送的。3.3 亿投资看似不小,但软件方面的投入又会有多少呢?

第二宗罪:重管理轻客户。

对于一个服务企业来说,面向客户的“网站售票、客服、支付”等环节应该是应用系统最关注的,也就是说,客户体验、以客户为中心,应作为 IT 系统建设的重要原则。但对于传统企业来说,后端的管理需求、核心数据、内部效率和效益等往往会被放在更重要的位置上。铁道部的“铁路客票系统”客户体验不佳,无论是投资不够还是重视程度不足,根子上还是思想观念没转过来,没有真正以客户为中心。

第三宗罪:重建设轻运营。

重建设轻运营,忽视安全和服务。这方面不多说了,大家都看得到,希望铁道部能从中汲取教训,亡羊补牢。

宁宇认为:车票作为客票系统的核心资源,数据管理和使用流程的设计非常关键。他从四个角度展开分析:

1、票务集中的角度

全国票务集中管理是件了不起的大事,既涉及总部与地方的管理和权力之争,也存在技术方面的难题。……票务管理很复杂。如果铁道部门把运营效率作为票务管理的目标,希望每列火车都获得最大收益,那么火车票管理的算法会更加复杂,而复杂的运算会降低系统的运行效率,所以这方面的设计者绝对不是随便就能做的,必须是技术和业务的高手。

2、流程和接口设计

从买票的视角看,对票务资源的操作要经历产生、预占、出票等阶段,还可能会发生回退、变更等操作,流程和接口的设计非常关键。……遇到超大规模的业务量时,每个错误设计都可能给系统带来致命的负面影响。

3、异常流程和特殊需求

说白了,就是需求部门要不要给自己留一些后门,给自己留多少寻租的空间。IT 系统很傻的,只会按照规定执行,不会根据原则灵活掌握,给领导和关系户留票;而这方面的需求有多大量,有多少种?IT 不是万能的,但 IT 确实可以实现客户明确的需求,这种需求不满足,会遭到需求部门的咒骂;但异常流程、特殊需求多了,系统就复杂了,慢了。

4、资源供应角度

在资源不足、供不应求的情况下,IT 的高效率和自动化可能导致供需矛盾翻倍加剧。运力就这么多,即使将票务资源向京东、苏宁、淘宝、携程开放,车票缺口的问题还是解决不了。而如果将票务资源向电商开放,各渠道之间的资源如何平衡,会不会出现网站抢票虚占资源的情况?如果电商虚占抢票,票务资源紧张的局面会加剧,所以这些问题的解决确实不简单。

宁宇认为:

这样的软件系统不太可能是个成熟的可复制的商业软件,铁道部让自己的研究所来开发这套核心系统是有道理的。

对于 12306 网站,宁宇认为它

目前只是铁科院开发的铁路客票系统的一个附属模块,却是引发问题的源头,

其背后的原因有 4 点:

  1. 铁科院的核心与主力都集中在票务资源管理,因此 12306 网站在资金、设备、安全机制、人员等资源方面投入少,这是网站烂、低级错误多的主要原因。
  2. 既然这个网站是铁路客票系统的一个小模块,没有单独立项,又缺乏资源,很可能存在开发建设不规范、技术设计不严谨、验收测试跟不上等问题,确实可能就是几个搞计算机的学生鼓捣出来的,和大系统搅合在一起,无法进行单独的成本核算;而这可能是迟迟不公布网站建设成本的原因。
  3. 流程设计时更多考虑的是核心系统的运行效率,如果把铁路客票资源管理作为系统核心,那么网站设计时必须要绥靖内部流程,这就更易加重 12306 网站的负担,导致客户体验进一步下降。
  4. 客观来说,以民众对铁路客票的需求、以及铁路部门客票的发售等管理方式,这个网站的设计并不简单,还是存在一些技术方面的难题的。

最后,宁宇分享了他认为 IT 支撑系统建设在此次事件中可参考和借鉴的三点经验教训:

  1. 服务性企业,尤其是直接向最终客户提供产品和服务的企业,IT 系统设计和建设必须以客户为中心,流程的设计要重点关注客户体现和用户的使用效率。依据传统的“以资源为中心、实现内部资源利益最大化”原则设计和建设的系统,会被用户骂死。电信运营商的系统建设一定要引以为戒。
  2. 给铁科院提个醒,多系统集成的设计思路和单一系统不一样。这次新一代客票系统是多系统集成的方式,网站、支付、安全、决策等都是独立的模块,这些模块和核心系统的集成模式有多种技术实现方案;但在业务量超大、运行效率非常重要的情况下,技术方案的选择一定要慎重;而这个问题,要在业务流程设计的时候就予以重点考虑。
  3. 信息系统建设既要自主掌握核心,也要考虑将一些部件交给专业化的公司或单位执行;不仅要关注硬件,关键和核心还是应用软件。领导希望软件自主开发、掌控核心,但要达成这个美好的目标,不仅要有大量的人力资源,而且还有很多其他的配套条件,否则一旦系统出问题,负面的影响更大。

该博文发出后,在微博上引发不少评论。付亮的竞争情报应用认为:

专业人士,基于有限信息,分析得比较全面,连中国特色需求影响斗分析到了,不过联系实际多了一点,战略高度差了一点,最大问题还是高层对 #信息化# 工作缺乏足够的理解,头疼医头,目标不明确,立项调研深度不足。

魔隐者提到:

信息化建设最重要的就是领导的决心,这种决心不在于投资额度,而在于对信息化工作的持续支持、持续监督、持续过问。

企业信息系统建设,除了技术之外,更多依赖于管理和流程,宁宇这篇博客的分析也证明了这一点。有过相关经验的读者,欢迎在评论中留下您的看法。

2012 年 10 月 07 日 22:573053
用户头像

发布了 479 篇内容, 共 131.5 次阅读, 收获喜欢 36 次。

关注

评论

发布
暂无评论
发现更多内容

对于大部分Java开发者说“60W年薪是无法逾越沟壑”你赞同吗?

愚者

Java 后端

卧槽这菜鸡程序员不讲武德,年薪居然有50万(50万面经分享)

java小李

面试

音视频面试题

hanaper

语音 图像识别 图像处理 视频流 图像增强

数字人民币专利数量井喷 智能合约成新方向

CECBC区块链专委会

结语:Apache Spark 3_0(十二)

数据与智能

sql spark API

ES6中的生成器函数是什么?

devpoint

ES6 JavaScrip 7月日更

如何激发责任心

escray

学习 极客时间 朱赟的技术管理课 7月日更

今晚拿下PHP反序列化的一系列操作

网络安全学海

php 网络安全 信息安全 渗透测试 漏洞分析

阿里资深架构师倾情力荐:Java全线成长宝典,P5到P8一应俱全

愚者

Java 面试

泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问

java小李

面试 Leader

详细了解Spring Bean 生命周期

愚者

Java Spring Bean

牛牛牛!一张图,5个章节就把高并发/高可用讲清楚了!

Java架构师迁哥

数字人民币是现有世界上最完整设计最灵活的央行数字货币

CECBC区块链专委会

如何对抗信息茧房?

caiyongji

程序员 信息茧房

阿里云技术三面Java岗,只需半个月,就可以成功拿25k offer ,轻松任职阿里云

愚者

Java 阿里云

关于机器学习的“灵魂拷问” ,这样的答案硬核!| 云途专栏

亚马逊云科技 (Amazon Web Services)

倒数第二天

IT蜗壳-Tango

7月日更

史上最全面Java面试指南手册宝典!轻松拿腾讯等大厂offer

愚者

Java 面试

再见~ 蚂蚁金服!(已拿offer)

java小李

JavaScript java新语法

网络攻防学习笔记 Day89

穿过生命散发芬芳

网络攻防 7月日更

Java程序员掌握这份文档,让你刚出来三个月从6K涨到15K

愚者

Java 涨薪

Java基础之hashcode剖析

愚者

Java

鉴释宣布加入RISC-V基金会、Linux基金会、seL4基金会与IoXt联盟, 旨在实现静态代码分析服务的全方位赋能

鉴释

Linux IoT 静态代码分析

硬核!一套基于SpringBoot + Vue 的开源物联网智能家居系统!

编程菌

Java 编程 程序员 项目 计算机

音视频延时和抖动问题分析和解决

hanaper

一文搞定,轻松掌握,进程的内存消耗和泄漏

奔着腾讯去

内存泄露 Linux Kenel 进程管理 内存消耗 VMA

秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

java小李

Spring Boot java架构

阿里巴巴中高级java面试题详解,吃透这20道面试题,offer拿到你手软

愚者

Java 面试

百分点数据科学实验室:智慧应急安全生产智能决策方案建设实践

百分点认知智能实验室

星环研发总监为你揭秘TDH8.0的前因后果 | TDH8.0 使用必读

星环科技

被下架三次了,手慢无,23w字中高级Java面试题库!

Java架构师迁哥

开源中间件技术学习路线

开源中间件技术学习路线

中移动宁宇分析12306的“三宗罪”以及背后原因-InfoQ