深度:西安「一码通」宕机的谎言与真相!

百家 作者:运营商情报 2022-01-09 22:36:41


投稿 / 作者 古力

入行三十余载,历经几代通信技术变革和运营商重组的浮浮沉沉。就西安一码通宕机,谈一下本人对这件事的缘由理解。




这几天,全国的程序猿都在为西安一码通操心


一座1200万人口的新一线城市,疫情防控必备的健康码竟然崩了!还是两次!别说西安市民,我都想问一句,请问你是怎么做到的?


西安大数据局对此的解释是,与用户短时间内大量访问有关。可第一次宕机,你说没经验,怎么扩容、修复了半个月,还是没顶住?


到现在为止,参与“西安一码通”项目运营的企业,没一家承认自己有问题,逼得全国网民变身“福尔摩斯”,从网上公布的蛛丝马迹中找答案,有的程序猿更是把能还原的代码翻了个底朝天。不得不说,程序猿工资高是有道理的。


这几天,我把网上各类文章翻了一遍,有的靠谱,有理有据,感觉离真相不远,有的则纯粹为了骗流量。你好歹做做功课啊,义正辞严地骂了半天,结果自己搞错了靶子,这脸打的,肿得不要不要的。


其实,尽管“一码通”宕机的真正原因还有待调查组公布,但有些知识点,你得先知道。

 

总包等于“甩手掌柜”?电视剧看多了


这几天,西安电信是程序猿群嘲的对象,没办法,谁让它是西安“一码通”的项目总承包商呢。


据《财经》统计,整个项目由中国电信总包,再分包给西安东软、阿里云、安恒信息、美林数据等九家企业,另外,启明星辰、思安两家企业也参与了部分工作。

 


有网友说,西安电信这不就是个皮包商嘛,转手分包当个准甲方。可这话一听就知道,是个外行。


随着千行百业都走上数字化转型道路,没有哪家公司敢说自己的产品包打天下。术业有专攻,每个垂直行业都有深耕多年的IT服务商(ISP),每个项目的不同“部件”也有专业供应商提供服务,客户不可能对所有产品都了如指掌,所以通常会选择一个综合能力较强的服务商作为总包商,由其召集“各路人马”,大伙撸起袖子一起干。


所以,你看现在哪家公司,张口闭口说的不是“生态”?可不就是为了扩大“朋友圈”,好一起打单拿项目。


别以为这个总包商啥事也不干,它要做的是顶层设计,整个项目的需求要掰碎了分析,画出条条框框,才能找到合适的服务商。你想,你家盖房子,不得先画图纸,再去找木工、油漆工、瓦工……另外,各服务商之间的沟通博弈、系统的最后调试交付、突发情况的整体预案等等,都得总包商最后兜底。什么拿了项目转手外包,“躺在家里数钱”的猜测,都是电视剧看多了。


这次“一码通”崩掉,你可以说西安电信这个总包商能力不够,但非要说它躺着没干活,就有点冤枉他了。


不过,总包模式有个弊端,一旦出事,大家都抢着甩锅,责任认定相对复杂。至少目前,东软、美林、阿里云都说“与己无关”。

 


“一码通”说起来,只是个外网平台,疫苗数据、核酸数据、行程数据等所有数据都存在政府的“私有云”——政务云,以及国家数据库里,而西安的政务云是阿里云承建的(对,不是你们以为的天翼云)。


除此之外,“一码通”和“政务云”中间还竖着一道防火墙,数据进出都得经过这道“墙”。西安“一码通”的网络防火墙厂商是启明星辰。


根据《财经》报道,有接近“一码通”的人士说,两次崩溃是负载均衡或防火墙故障所致。


对此,钛媒体采访的专家分析,从系统安全上来说,西安市民访问西安“一码通”属于外网访问内网,二维码调后台数据用要过防火墙,如果并发量超过原有架构设计,就会发生防火墙丢包,流量被拦截后,数据请求无法访问数据库,最终导致手机端瘫痪。


这可能是截至目前,最合理的猜测。


三天上线,是不是太快了?谁说的,上海只用了一天!


回过头来看“西安一码通”的两次崩掉,其实都和全城要求核酸证明有关。

 


12月20日,西安防控指挥部发布通知,要求市民持48小时核酸证明上班,核酸结果可以在“一码通”上查询,结果,“一码通”崩了。1月4日,元旦假期后第一个工作日,西安市再次要求,从9点开始启动新一轮核酸筛查,“一码通”又崩了。

 

 


根据西安大数据局的说法,“一码通”第一次崩掉时,每秒访问量达到以往峰值的10倍,造成网络拥塞,致使包括“一码通”在内的部分应用系统无法正常使用。第二次是全市核酸检测应急平台因当前流量过大,导致网络繁忙无法登陆。


这似乎是个让人无法接受的理由。你第一次“崩”,还能说没经验,接下来难道不应该拼命扩容吗?怎么可能“崩”第二次?


还真不是这么简单。西安一码通系统涉及基础资源层、网络层、应用层。其中,基础资源和网络层,属于西安政务云平台负责,一码通属应用层。


基础资源、网络层的确都能扩,花钱堆资源就是了,可当一码通和其他功能捆绑在一起时,系统原先设计的阈值总有穷尽的时候,到时候,扩无可扩。这相当于原本设计的是一辆小牛车,可拉的东西越来越多,就算马路扩成高速公路,牛车还是跑不快。


那么,小牛车为啥要拉这么多东西?这就要再讲讲“一码通办”了。


不管你在中国的哪座城市,是不是觉得健康码用处越来越多?不仅进出要用码,刷医保、坐地铁都行,这就是各地方政府正在摸索的“一码通办,一码共享”。一言以蔽之,就是要将健康码打造成连通政府部门公共服务的互联网统一认证载体。


这当然是个好事,可一口吃不成个胖子。


原来健康码推出是为了疫情后尽快复工复产,便于出行,各地大多仓促上马,相关的技术规范、应用场景、对接方案也未经过深入周密的统一设计,如何在更大范围内设计好健康码建设规范和实施途径,是个循序渐进的活。


西安这两年也不能说没投入,有媒体报道,虽然一码通的服务器一开始只有八台,但这一年多的时间里,也投入了几百万购买云服务设施。


可惜,这样的速度,没跑过突如其来的疫情。或者说,西安跑得太慢了。


说到这,想起今天的一篇文章质疑“西安一码通”三天上线,言外之意,系统肯定很垃圾。这个说法,不客气地说,既蠢且坏。但凡有一点职业素养,去查查2020年各地上线健康码的时间就知道,三天算长了,上海的随申码开发上线只用了24小时,北京健康宝用了6天。


 


表面看起来,健康码只是一个二维码,背后是数十个政府部门上千项数据的打通和整合,如果不是前几年各地开始建设政务云,推动政务数据上云,为大数据汇聚打好基础,2020年疫情开始时,各地根本不可能在这么短的时间内推出本地健康码。


按照这家媒体的说法,不仅西安,全国各地的健康码都可能是个demo(小样)。


那么,西安没问题吗?当然不是,但错的不是开始,而是后来。当疫情防控常态化后,有没有结合健康码“一码通办”的新需求和新具备的新能力,逐步更新架构?有没有根据极端情况考虑过冗余备份方案?


这些才是应该请西安回答的问题。

 

TPS越高越好?这是道给全国城市的思考题


两次“一码通”崩盘,背后都是全市1200万人被要求全城核酸的第一天。这意味着,做核酸的时候,要亮码;坐地铁的时候,要亮码;上班的时候,也要亮码。


根据西安大数据局之前公布的数据,一码通注册用户 4695.2 万,平均每分钟扫码量 120 万,也就是 2 万TPS。


TPS是指服务器每秒处理的事务数,也就是端到端的信息处理。如果“一码通”两次闪崩,都达到日常峰值的10倍,意味着每秒有20万条亮码需求,并且系统还要给出结果。


有经验的网友分析,按每秒处理 1000 个事务则必须打开 1 万个并发连接的经验来判断,一码通要按照每秒 200 万的峰值请求来设计才会保险。


几乎没有城市能做到这个设计要求。


2021年6月,广州发生局部聚集性疫情时,公布的数据是,6月1日穗康小程序访问量6053万次,穗康码当日亮码3853万次,早高峰穗康码并发访问量达到3.6万次/秒,超过2020年历史峰值两倍以上。广州是穗康码和粤康码并用,最高可支撑6万并发访问量。


一篇发布于2020年10月16日的文章《专访太极股份北京健康宝项目团队 一场城市大数据分析应用的大练兵》中提到,2200万人口的北京,健康宝部署了300多台服务器,理论上限可支撑3万TPS,但平时实际最高峰的吞吐量也就是3000多TPS。

 


另一篇发表于2021年8月22日的文章《这些地方现在都要查健康码了!“随申码”用量剧增,系统会“崩”吗?》写道,据上海市大数据中心透露,系统可以支持的最大并发数是8000,而去年峰值时每秒最多也只有1000多人同时使用,承载能力已远超实际使用需求。

 


一篇由星环科技工程师发表的《健康码系统架构设计与实现》论文中提到,某市健康码查询业务接口的系统后台并发量最高可达20万次每秒查询率,全链路可支撑2.2 万次每秒查询率的并发访问量。


有消息称,西安“一码通”的TPS阈值是4万。考虑到人口总量,和北上广相比,这个数字并不算太低。


对全国城市管理者来说,西安“一码通”崩溃都是一个警醒:一旦极端情况出现,TPS可能是双位数以上的倍增,谁都不能高枕无忧。但一味砸资源扩容,并不是最完美的方案。效率与成本,原本就是一对天然的矛盾。


城市管理要像绣花一样精细,这句话,你要细品。

 






来源:运营商情报


监制:肖斌 张泉 刘立红

编辑:姜涵 徐梅

责编:赵爽

校对:马晓蒙


运营商情报

据说通信人都关注了

阅一手情报,早知天下事

长按二维码识别关注

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数