写点什么

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

  • 2012-10-07
  • 本文字数:2711 字

    阅读完需:约 9 分钟

前不久,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:573498
用户头像

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

关注

评论

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

nginx5种负载策略的设置方法,看完直接怼产品经理

程序媛可鸥

Python 程序员 面试

WorkPlus移动平台 | 如何建设“智慧校园”新样态?

WorkPlus

Python中用tuple作为key,写的太详细了

程序媛可鸥

Python 程序员 面试

Tapdata 在“疫”线:携手张家港市卫健委争分夺秒实时抗疫

tapdata

数据库 实时数据

python实现读取并显示图片的两种方法,15分钟的字节跳动视频面试

程序媛可鸥

Python 程序员 面试

fastposter v2.6.1 发布 程序员专属海报生成器

物有本末

海报 fastposter 海报生成器 电商海报

Python所有方向的学习路线,你们要的知识体系在这,千万别做了无用功

程序媛可鸥

Python 程序员 面试

AI+生物计算:用计算机视觉技术理解细胞生命

百度开发者中心

python 同时迭代多个序列,还没吃透内存缓存LruCache实现原理的看这篇文章

程序媛可鸥

Python 程序员 面试

Python 开发编码规范,阿里面试100%会问到的JVM

程序媛可鸥

Python 程序员 面试

python函数练习题,万字长文

程序媛可鸥

Python 程序员 面试

python回调函数之获取jenkins构建结果,Python编程零基础

程序媛可鸥

Python 程序员 面试

python基础教程:元组和集合,踩坑了

程序媛可鸥

Python 实现二叉树前序,中序,后序,零基础也能看得懂

程序媛可鸥

Python 程序员 面试

Python代码报错看不懂?记住这些报错提示单词轻松解决bug,2021年Python开发陷入饱和,

程序媛可鸥

Python 程序员 面试

Python基础教程:print输出带颜色的方法详解,Python开发基础面试题

程序媛可鸥

Python 程序员 面试

18M 超轻量系统开源

百度开发者中心

python DataFrame数据合并 merge()、concat()方法,拿下我人生中第7个Offer

程序媛可鸥

Python 程序员 面试

阿里巴巴副总裁陈丽娟:我对阿里云产品生态的思考 | 云原生加速器观点

阿里巴巴云原生

python3 基础小练习: 判断闰年,2021最新Python算法相关面试大

程序媛可鸥

Python 程序员 面试

Python实现自动发送B站直播弹幕软件,Python开发环境

程序媛可鸥

Python 程序员 面试

python3的变量作用域规则和nonlocal关键字,Python面试及答案

程序媛可鸥

Python 程序员 面试

Python“鉴黄”小程序,我离职后面试收割小米等大厂offer

程序媛可鸥

Python 程序员 面试

Python中return和yield的区别,2021年Python笔试题总结

程序媛可鸥

Python 程序员 面试

Python教程:抽象类与归一化,Python多线程断点续传

程序媛可鸥

Python 程序员 面试

Python GUI编程:关于 tkinter 怎么才能写出更好看的界面,华为架构师深入讲解Python开发

程序媛可鸥

程序员

浅谈NIO和Epoll实现原理

Linux服务器开发

网络编程 epoll Linux服务器开发 Linux后台开发 网络io

python中把列表中的字符串转成整型的3种方法,收割快手,字节,百度,美团的Offer之旅

程序媛可鸥

Python 程序员 面试

云原生周报 | Prometheus 采用率处于领先地位;Linkerd 发布 K8s自动故障转移特性

百度开发者中心

从硬件到软件,教你从零搭建智慧农业大脑

华为云开发者联盟

物联网 智慧农业 华为云IoT 小熊开发板 STM32L431芯片

Python爬取知乎上搞笑视频,一顿爆笑送给大家,程序员面试题精选100题

程序媛可鸥

Python 程序员 面试

中移动宁宇分析12306的“三宗罪”以及背后原因_架构_郑柯_InfoQ精选文章