羊昨晚看新闻,注意到今年的春运这两天才刚刚结束。

又一次见证世界上最大规模的人口迁徙,已经成为我们过年特有的文化现象。

过去三年,有多少宝子由于或客观或主观的因素,被阻隔在千里之外。

想回的家乡,想逛的城市,都成了难以抵达的远方。

在这个春节,终于都狠狠实现了。

据不完全统计,今年春运是20.95亿人次参与的大项目,想来你我都有份

其中,羊有特别关注到一组数据。

全国3285个铁路车站,15.5万公里的铁路线,4.2万公里的高铁线上,迎来送往了至少3亿人。

而铁路客票系统12306,更是卖出3.85亿张票。

正月初七返程高峰当天,单日售出1325万张票,1秒就能卖出1300张票…

对于经常选择火车、动车和高铁回家or出行的宝子来说,12306客票系统早已是老工具人了。

即便原地不动的,微信里也会频繁收到亲戚朋友同事们的高铁抢票加速包。

可纵使用了好多年,或许并无人在意。

我们每一次顺利出行的岁月静好,都离不开12306在替我们负重前行。

它拥有超6亿注册用户,和大多数人生活密不可分。

它年售票超40亿张,加起来可绕地球8圈。还能秒杀所有的黄牛抢票软件。

这个由我们中国人自主研发建立,也是全球最大的票务交易系统,到底有多牛?且听羊来细说。

图源:央视《开讲了》单杏花

12306的客票系统

没你想得那么简单

首先宝子们需要明确一个概念,「12306」原本是指中国铁路的客服电话。

后随着技术进步,构建出了一个为我们提供购票、退票、换票等渠道的互联网客票管理系统,包括前台的电话、网站和App多种途径。

由此,前台的购票服务和后台的整套票务管理系统,被以12306宽泛代指。

我们普通人在12306中,用得最多的功能是查询余票和买票(抢票)。

这个几乎每个中国人都离不开的购票平台,首先使用人数上自然是相当庞大。

它在春运高峰日的点击量,可以达到1495亿次,相当于每秒承受170万次点击。

12306监控中心

这个数字太大了,很多宝子可能没什么概念。

以全球访问量最大的搜索引擎谷歌来做个对比,谷歌的日访量是56亿次左右。

直观来看,谷歌的日活点击量不及12306客票系统的零头

并且,12306可以在供应100万人同时抢到1万张火车票的同时,还能够保证系统正常、稳定运行。

用通俗易懂地话来说,就是每秒有几百万人挤进你家大门,你家门槛非但没被踩烂,而且没有出现踩踏事故。

而涌入你家大门的几百万人,也许需要排队,但是只是短暂地一小下下。

相信不少宝子,都参与过电商的双十一、双十二的零点秒杀吧?

是不是常常排队人太多,挤不进去。再一刷新,就会出现服务器错误的页面。

再联想一下,我们大学时候的教务系统,几百个人选课都能直接瘫痪…

这些问题12306也不会有,因为后端强大的信息系统架构给足了安全感。

再说,买东西和买票,还是不一样。

毫不夸张评价,12306客票系统比某宝电商系统要复杂几百倍。

大家都知道,电商的订单是独立的,卖出一单减一个库存。

但我们一趟列车有多个停靠站,所以每一张火车票都是动态关联的。

可谓牵一发而动全身,并不能简单粗暴地增减就完事儿了。

图源:央视《行业影像志》

通俗来说,就是12306每卖出一张票,系统都要计算一次和这张票的关联。

要对全线路上的所有车票进行实时数据更新,由此决定了余票动态计算过程的复杂性。

具体的计算方式,可以看图中的举例解释

图源:央视《行业影像志》

余票计算步骤繁杂,还有加上实名认证、精准对号入座、去纸质化的改进。

以及一系列的配票算法,来决定你在买票时就知道能坐到靠窗还是靠过道。

相当于要求12306当场做高数题,1秒做1300道还不能做错一道

除此以外,它还要防备第三方抢票软件来插队,以确保大家靠自己买上票。

而以上种种,不过只是12306客票系统面向我们服务的几件基础小事而已。

其背后也能统一调配车次编组、经停车站、停靠时刻以及票价票据。

还覆盖其他售票渠道、实名制验票、进出站检票、列车员验票、临时身份制证等等业务。

可以说,12306客票系统是中国官方部门做的最强大的电商服务系统。

别看后端运行系统复杂到业界称奇,前台的操作界面却十分简洁。

极大方便了我们日常的出行和生活,难怪几乎每个中国人都离不开呢(老赖除外)!

然而,曾经的12306,可还不这样。

那些年春节的隐形传统还不是骂春晚烂,而是骂12306烂

在12306诞生之前,回家过年只能线下购票。

需要早早卷着铺盖、带着干粮,去火车站的窗口排队,再着急也没辙。

2011年6月12日,12306开通网站购票业务。

2013年年底上线客户端,并在同年进行了第一次改版。

增加了自动查询、自动提交订单、有票提醒等功能。

12306建设初期体系架构示意图

改版升级后的12306,依然会时不时会出现系统宕机与崩溃的情况。

在前台购票时就经常出现闪退、买了票不显示等问题。

还有很多转战网络炒票的「黄牛」插队抢票,一到春运12306就瘫痪,因此挨了不少骂。

一直到2014年,这些问题都没能得到很好的解决。2015年,12306选择和阿里云合作。

他们租用公有云,和铁路的私有云共同组成了混合云的系统架构。

这一年春运期间,阿里云承担12306客票系统中75%的流量压力,主要是车票查询业务。

不久,12306又上线了选取图片验证码的方式,阻挡技术黄牛倒卖车票。

后面还逐步升级了风控系统,拦截第三方刷票软件的入侵流量。

2017年支持微信支付,2019年上线候补功能,2020年开通支付宝小程序…

当然,程序员肯定是最了解12306票务系统到底有多繁复。

我们外行人只要知道,正是一直在不断优化升级,才有了今天全球最大票务交易系统。

可有人会说,12306客票系统之所以强大和牛逼,是阿里的技术和服务器的功劳。

的确,有了阿里云的加入,让12306的运行更加丝滑。

但12306客票系统,并不仅仅只有春运高峰抢票的功能。

而此前网传阿里提供技术支援,也被前阿里云公关总监亲口否认过。

如此以偏概全,直接抹掉了自主搭建12306全套信息系统架构那群人,30年来的努力和付出。

而其中最重要的技术带头人、12306总工程师单杏花,可第一个不答应。

是她见证并参与了中国铁路客票系统从零到有的全过程。没有她,就没有12306的今天。

从大山放牛娃逆袭

12306的最强大脑

1974年3月,单杏花出生于江西婺源一个小山村,有兄弟姐妹四个。

由于全家唯一的经济来源是靠父亲种田,日子格外穷苦一些。

哥哥读到初三家里就供不起了,姐姐读完四年级也辍了学。

单杏花6岁起就和姐姐一起放牛,上了小学每天要往返20里地。

后来她考上30里外的镇初中,每周走路回家一趟装点辣椒酱或霉豆腐,就是一周的伙食。

只要放假,单杏花除了放牛,还要帮家里干农活儿。锄地、种菜、砍柴、插秧、割稻子,以及去深山里打猪草等等。

14岁时,她考上离家60里地的县重点高中婺源二中,99块学费难倒了全家。

在外婆看来,女孩子迟早是要嫁人,读那么多书没有用。可单杏花的父亲还是东拼西凑借钱送她去读了。

高中三年她每月回家一次,几乎以吃丛菜、酸菜、辣椒酱、豆腐乳为主。生活上的苦她并不觉得苦,每天只想着如何学好每门功课,追上成绩更好的同学。

功夫不负有心人,17岁的单杏花考上西安工业学院计算机应用专业,得以走出大山。

大学四年她省吃俭用、勤工俭学,学习上丝毫不敢放松,生怕拿不上奖学金。

1996年,21岁的单杏花又继续考入华东交通大学读研,主修交通运输工程与控制。

9月份入学,9月底就被学校派到中国铁道科学研究院,参与全国客票系统的研发推广工作(12306的前身)。

12月底,包括单杏花在内的华东交大四位师生,被安排去九江站进行客票系统1.0版本的推广。

2000年前后,和单杏花一起参加客票系统1.0版本的7所高校28个师生,先后都各奔了前程。

只有她坚定地选择了留下来,期间有公司愿意出比她当时工资高4倍的价格挖她,姐都不为所动。

客票系统从1.0版本到5.0版本,再到新一代从手工售票到计算机售票,从车站独立售票到全国联网售票,再到铁路12306互联网售票。

无权无势唯有一腔热情的单杏花,全靠自己埋头努力,一步步从学习协助到独挡一面,从主持负责到总体设计。

再后来,她凭借研发中国铁路客票发售和预定系统,斩获了国家科技进步一等奖。

她成了铁科院总工程设计师,铁路12306科创中心副主任,中国铁路客票系统技术带头人,被称为12306的「最强大脑」。

今年,她还以「最美铁路人」的身份,出现在了春晚的镜头里。

可这背后的辛苦和成果,之前只有单杏花和她的团队知道。而羊觉得,有必要被大家都看到。

客票系统前后进行5次更新迭代,全国有近5000个车站,平均每2天完成一座车站的系统升级。

于是单杏花和团队同事们用了整整十年,跑遍了全国,让沿用近一个世纪的硬板票,退出了历史舞台。

2005年,单杏花开始主持铁路客票系统5.0版本的设计、研发和推广。

她带领团队进行了票额共用、复用剩余票调整等一系列售票组织技术的创新。

那一年,至少有2个月以上她都在通宵熬夜,因为系统的安装调试需要在夜间进行。

5.0版本推出后,单杏花团队的新功能为铁路客运至少每年增收30亿元以上。

2011年,单杏花又带队负责研发铁路12306互联网售票系统。

从接到任务到6月12日成功实现京津线互联网售票,她和她的团队只用了不到3个月就做出来了。

虽然平稳度过包括国庆在内的半年时间,但2012年春运一来,就把12306搞崩溃了。

当时的系统设置单日最高售票量是100万张,然而真实情况远超这个数。

就连仅仅是一次简单的「余票查询」,可能就是几万次的计算。

那个欢天喜地的春节里,单杏花并没有休息。

她和团队尽最大努力进行系统优化,保障着大家能够顺利回家。

每天白天她跟踪系统运行状况,分析压力最大的环节,思考解决方案。

晚上11点系统停售后,就上线白天优化的内容,再进行全面的测试。

到凌晨3、4点去休息,早上6点半再起来观察晚上升级的效果。

50多天的春运,都是这样加班加点过来的,还自主研发出了排队系统。

春运一结束,单杏花和团队又继续技术攻关。

对12306的核心系统做了五个方面的优化,研究出全球仅有的系列方法和技术。

工作繁忙至此,单杏花还在当年攻读完铁科院交通运输规划与管理专业的工学博士学位。

事业学业两不误到底是怎么做到的啊?求姐开课讲讲时间管理吧!

除了要保证我们能买上票,单杏花和她的团队还要对抗「黄牛」。

现在说的黄牛其实是一些第三方抢票软件,打着官方的幌子兜售加速包和各类保险,存在泄露个人信息的风险。

(说谁羊就不点名了)

而他们搞的抢票机器,点击速度是人手的几十倍、甚至上百倍。

可恶,就说我们怎么买不到票!

对此,单杏花和团队研发出12306风控系统,把疑似的抢票流量予以拒绝和屏蔽。

经过一系列技术迭代和优化,我们使用12306的体验感,才越来越好。

而鲜少有人知道,为了保证系统的持续优化和升级,经常通宵达旦的单杏花,患有先天性心脏病。

虽然她只是30年如一日尽力做好本职工作,但却保障着我们每一次的平安和团圆。

这些,难道不值得夸吗?

女生学不好数理化?

那些「被隐身」的技术女性

互联网是个有意思的地方,有博主发文夸单杏花。

却要被追着diss把功劳记她一人头上,是她窃取了阿里的功绩。

有些更是把中国铁路客票系统30年从零到有的成长和进步,凭空抹杀。

他们到底在怕什么?

他们的上蹿下跳,和那些说女生学不好数理化、女生不擅长逻辑思维的污名化有区别吗?

有区别,但不大。

提到做技术架构、搞信息系统的程序员,大多人的刻板印象都会是男生擅长。

但一个烫知识:世界上第一位程序员阿达·洛芙莱斯,是女性。

她还是计算机程序的创始人,为计算程序拟定算法,写出第一份程序设计流程图,建立了循环和子程序概念。

后来,有一门高级计算机编程语言以「Ada」命名,用来纪念阿达·洛夫莱斯。

世界上第一台大型数字计算机的第三名程序员葛丽丝·穆雷·霍普,是女性。

她创造了现代第一个编译器A-0系统,以及商用电脑编程语言COBOL。

还有如今计算机行业的专业术语「Bug」,也是她最开始说来代表程序故障的。

NASA的月球登陆异步处理系统,也是女程序员玛格丽特·汉密尔顿写出来的。

她是阿波罗计划的首席开发人员,也创造了计算机编程的核心理念,比微软的出现还早10年。

还有中国香港的余国荔,微软Halo团队的首席游戏引擎程序员。

微软游戏工作室第一位也是唯一一位女高管。

单杏花和她们的存在,就是要打破女生学不好数理化,男人思维逻辑能力更强的刻板印象。

就是要向这个世界证明,女性的能力一点都不差,女性程序员也可以很牛逼!

她们创造和改写了历史,她们不该被选择性隐身。

羊不仅要夸她们,还要大夸特夸!