西安一码通半个月连蹦两次,导致官方直接连夜发布处理公告


从运维角度分析西安一码通连蹦事件_数据



西安一码通是什么?



西安一码通是2020年2月份,经市联防联控指挥部批准,由市大数据资源管理局牵头,中国电信西安分公司开发部署,西安市个人电子识别码(简称:“一码通”)正式上线试运行。


从运维角度分析西安一码通连蹦事件_资源管理_02



官方评价:



公开信息显示," 一码通 " 与该项目技术保障组得到当地政府的高度肯定与嘉奖。

据西安市大数据资源管理局官网信息,近年来西安稳步推进新型智慧城市建设,全方位打造 " 数字名城 · 智慧西安 " 新名片。其中,西安 " 一码通 " 平台荣获 2021 年 " 政府信息化管理创新奖 ",西安 " 一码通 " 技术保障组荣获 2020 年 " 西安青年五四奖章集体 "。



技术团队:


2020年3月1日,中国电信股份有限公司西安分公司发布《疫情联控平台一码通项目》单一来源采购公示,单一来源采购供应商为“西安东软系统集成有限公司”。

2020年3月3日,西安电信发布《疫情联控平台一码通项目-250台扫码设备应急采购项目》单一来源采购公示,单一来源采购供应商为“西安兆天系统工程有限责任公司”。

2020年7月13日,西安电信发布《“一码通”应用采买短信服务项目》中选人公示,阿里巴巴云计算(北京)有限公司中标。

2021年10月25日,西安电信发布《2021年“一码通”服务专席热线业务外包项目》单一来源采购公示,单一来源采购供应商为中通服旗下“陕西省通信服务有限公司中意科技分公司”。

2020年12月10日,西安电信发布《西安“一码通”安全平台项目》单一来源采购公示,单一来源采购供应商为“杭州安恒信息技术股份有限公司 ”。

2020年12月10日,西安电信发布《西安“一码通”大数据可视化分析项目》单一来源采购公示,单一来源采购供应商为“中译语通科技(陕西)有限公司 ”。


技术团队反馈


从运维角度分析西安一码通连蹦事件_数据_03



跟应用层没关系。

ok他们敢这么说,那应该是有一定证据的。其他公司在网上没有找到明确的官方答复,波哥在这也不敢乱写。


网友吐槽的热点

从运维角度分析西安一码通连蹦事件_资源管理_04



原文已经被删了,但是百度快照还能看到哈!~

重点是这句话:他们将一张图片从1MB压缩到500KB,再从500KB优化到100KB


各位网友针对性的做了技术分析

一号网友:


从运维角度分析西安一码通连蹦事件_二维码_05



二号网友:


从运维角度分析西安一码通连蹦事件_数据_06


真正的二维码数据是 /person/app/refreshQRCode这个接口


从运维角度分析西安一码通连蹦事件_资源管理_07



二号网友总结:


看下这个接口返回,设计上也没有太大的问题。 

主要问题集中在所有的js/css/img这些静态资源全都从从一个出口进行提供,没上CDN

粗略估算了一下,js/css/img数据总共约500kB 

按照从某个群里得到的数据,暂且认为是准的,健康码的请求量峰值达到了3.3w qp

那按照这个量估计 33000 x 500 x 8 bps ≈ 125Gbps  这个出口量级很难用单机房承载,峰值一来,出口网卡打满,直接gg。

到写这个回答时,西安健康码还是没有将静态资源上CDN,之后看看访问量再起飞的时候,能不能扛得住吧。


OK!~我们不多举例了哈,咱们纯讨论技术,又不是当事人手里也没有相关log,那么上面的说法在一定的场景是合理的!~

那在这前提下,波哥也要整两句了哈!~

因为波哥没做过健康码,但是二维码做了好多了,我们姑且都理解成是一个东西哈!


波哥用最白话的方式给大家解释一下二维码


从运维角度分析西安一码通连蹦事件_资源管理_08

拿上面的二维码来举例


1、二维码是由很多小黑块,和小白块以及三个大方块组成的。

2、那么白块可以当做计算机二进制的0,黑块当做计算机二进制的1。

3、三个大方块是用来定位的,毕竟扫描二维码时你的收集可能横着可能竖着。


以上三句话就解释完了二维码的密码对吧。那么至于用二维码记录什么信息,那就简单了,二进制能描述什么,他就能记录多少信息呢?


下面这几句话是我抄的,大概就这意思吧。


1.高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。

2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。

3.容错能力强,具有纠错功能:这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达30%仍可恢复信息。


那么说完二维码了,咱们再回来探讨一下数据流传递的事。


二维码生产在后端可以生成图片,并且存储在磁盘上,也可以是二进制来存储,那么99%的场景在系统中都不会用图片保存二维码对吧,图片和二进制他们的存储占用率还是非常高的,并且你保存成图片不好做分析查询呀对吧。


就咱们现在通用的二维码他的大部分显示流程也是后台算出一个加密串,然后传到前端(手机等移动设备)然后再通过手机中的app或者小程序以图片的(二维码)的形式展示。


那么这个二维码到底能占用多大的带宽?目前暂不清楚,单个二维码二进制流能有多大?那么这个数值信息相信大家心理能有个数对吧。


上面我们讨论的都是二维码,但是二维码和健康码是不是一回事,这里波哥不跟大家保证,波哥确实没做个健康码的项目,但是这里姑且我们就说一样的道理。

健康码肯定是不能永远不变的对吧,这样就失去了验证的意义,那么我们再定义一下健康码是接近一次性的二进制的串(在后台),后台也基本不会保存这个东西。

上面说的传输图片,优化图片的事肯定不是说的二维码。具体是什么图片1M变100kb什么的不清楚哈!可能是健康码的人脸自拍?不清楚啊!不懂。但是应该。。不是。。健康码。。

不是健康码的东西,应该就不用反复计算和传输了!


第一个网友的分析波哥也分析到这。


第二个网友分析的要不要走cdn?


cdn的定义和作用波哥就不说了哈。

我们先想想这个特定的场景,这里是西安一码通,我理解的应该就是西安及其周边附属卫星城市,那么只有这个地区,那还要不要走cdn?这里我们打个问号。

另外他们的业务部署是运营商承担的哈。。。

后台架构设计合理,应该是不用走cdn的。


所以流量瓶颈导致的问题可能性也不高,反倒是我认为是没有做好流量或者并发限制导致的高于承载力的问题。


我不是当事人,也没有参与故障抢修,没有任何日志信息,所以波哥以上说的也仅仅是纯技术层面的讨论,跟大家就个别案例做个架空背景式的讨论。

关注

绝对干货的公众号



从运维角度分析西安一码通连蹦事件_数据_09