NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

中移动宁宇分析 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:573410
用户头像

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

关注

评论

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

阿里云入选 2021 Gartner APM 魔力象限,国内唯一入选云厂商

阿里巴巴云原生

阿里云 容器 微服务 运维 云原生

一个朋友学会Java泛型后直接薪资翻倍!

北游学Java

Java 泛型

高德 Serverless 平台建设及实践

阿里巴巴云原生

Serverless 运维 云原生 监控 中间件

你到底想做什么

ES_her0

5月日更

耗时1年的前端技术框架切换之旅

华为云开发者联盟

大前端 软件工程 React 框架

HarmonyOS开发者创新大赛预选赛结束,23支队伍脱颖而出闯入决赛

Geek_283163

鸿蒙

Python OOP-5

若尘

oop Python编程 5月日更

恍然大悟丨Java 中 RMI 的使用

Java架构师迁哥

jmeter命令行执行测试并对测试报表进行初步分析

行者AI

测试 Jmeter

【LeetCode】解码异或后的排列Java题解

Albert

算法 LeetCode 5月日更

Golang Chaos Engineering

escray

学习 极客时间 Go 语言 5月日更

架构实战营-详细架构设计文档

Simon

架构实战营

技术干货|7个 React 性能提升技巧

拍乐云Pano

React

使用docker compose快速部署前后端分离项目案例

皮特王

nginx Docker Vue Docker-compose

工商银行分布式服务 C10K 场景解决方案

阿里巴巴云原生

容器 微服务 云原生 监控 应用服务中间件

那些激情燃烧的NFT们

zhoo299

区块链 加密货币 艺术 5月日更 NFT

SICP 习题2.6之丘奇数

程序员历小冰

函数式编程 SICP 5月日更

大数据实战:网站流量日志数据分析

大数据技术指南

大数据 5月日更

百度大脑UNIT拍了拍你,提醒你报名智能对话训练营

百度大脑

物联网 智能对话

开发者必看,面试官心中的最佳数据库人才模型是什么样?

华为云开发者联盟

面试 开发者 华为云数据库 数据库人才

五一假期回乡,跟大家聊聊感触

架构精进之路

心情 杂记 5月日更

聊聊 Zabbix 和 Prometheus(一)

耳东@Erdong

Prometheus zabbix 5月日更

自动发布.NET Core Web应用

DisonTangor

DevOps 运维自动化 jenkins dotnet

技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?

华为云开发者联盟

JavaScript typescript 大前端 浏览器 angular

只会重装系统的运维,不是好运维

运维研习社

Linux 5月日更 系统修复

华为云PB级数据库GaussDB(for Redis)揭秘第九期:与HBase的对比

华为云开发者联盟

HBase 华为云 开源数据库 NoSQL数据库 数据库GaussDB(for Redis)

腾讯云大神亲码“redis深度笔记”,从基础到源码,应有尽有

Java 编程 程序员 架构

打破思维定式(六)

Changing Lin

5月日更

这个英语学习APP更适合小白

小天同学

学习 英语 5月日更 APP推荐

精选Hive高频面试题11道,附答案详细解析

五分钟学大数据

大数据 hive 5月日更

如何更改 Notion 中的字体?

彭宏豪95

效率 Notion 工具 5月日更

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