TOC

西安一码通的“优化”

西安一码通半个月内两次宕机,值此西安疫情突发之时,可是严重的安全故障。相关负责人(西安大数据资源管理局局长)已经停职检查。

  • 第一次宕机:12/20 7:40

    12 月 20 日早 7:40 分左右,西安“一码通”用户访问量激增,每秒访问量达到以往峰值的 10 倍以上,造成网络拥塞,致使包括“一码通”在内的部分应用系统无法正常使用。
    “一码通”后台监控第一时间报警,各 24 小时驻场通信、网络、政务云、安全和运维团队立即开展排查,平台应用系统和数据库运行正常,判断问题出现在网络接口侧。
    经紧急协调资源并采取扩容、限流等应急措施,平台已逐步恢复使用,但因访问量仍很大,尚可能有部分卡顿现象。

  • 第二次宕机:01/04 9:00,持续一天

有意思的是,有人翻出来了一篇报道《“科技抗疫”中流砥柱:西安电信“一码通”平台服务保障专班》。
PS: 人们注意到这篇文章之后,一些平台已经将相关页面下线了(比如澎湃新闻)。不过中国工信产业网(人民邮电报)还能看到(链接),可能这两天也会下线。我把原文给附在本文后面。

根据文章内容,看似西安一码通由西安电信公司负责开发维护。文章的主要内容是宣传他们多么认真努力地做了这个系统,服务于社会。

其中举了一个例子(全文唯一和技术沾边的地方):

为确保系统运行更高效,他们将一张图片从 1MB 压缩到 500KB,再从 500KB 优化到 100KB。这样的工作看似简单,却蕴含着高技术含量,他们连续两天两夜守在电脑前,终于攻下难关。

可以说简直是不要脸。

我没有见过西安的健康码,应该和湖北健康码差不多吧(难道还能玩出花来)。

湖北健康码扫码之后是一个 URL (yuntongcloud.com),长度是 111 个字符。

https://c.yuntongcloud.com/?id=6377d5e3374fd816c53109fcc019e5b8877717d5fec4209f756ab0d3fba3929d16415212816330B1

可以直接传输这个字符串给终端,只需要 0.1KB。

如果你说要考虑终端实现的复杂度(替支付宝,微信想这个有必要吗,人家可不是弱智):

  1. 你一张二维码怎么做到 1M 的,bitmap 么?我实验了一下,哪怕用 BMP 格式也只有 730K。
  2. 怎么优化的?为什么最后还有 100K?就算你把颜色,边框,中间的 LOGO 都做进去,应该也可以控制在 20KB 以内吧。
    PS: 这个数据量如果是纯二维码,500x500,黑白,30% 容错,应该只需要 4KB。

更新

知乎上众说纷纭 (一码通崩溃的技术原因是什么?)。

综合各路消息,我现在判断应该是 没有采用服务器端生成图片的方式,上文说的图片压缩优化可能是对相关资源文件的优化。

  1. 知乎用户 ZhXand618 分析了小程序的前端代码,找到生成二维码的相关逻辑。
  2. 知乎用户 卢兴民 找到二维码相关 API,并提出相关资源没有放到 CDN 是问题的关键。
    他的计算方法不合理(静态资源总大小乘以峰值 QPS),但是这也是一个思路。
    评论区就有人提出:需要考虑 HTTP 压缩、客户端缓存等因素,带宽压力没有那么大。而且 4 号崩溃时没有出现流量高峰。

如果是因为流量太高导致,那至少他们没做限流。
PS: 公众号极客重生的文章《半个月崩两次,从技术角度聊聊一码通》提出了自己的架构设计方案,可以学习学习。

月光博客在没有任何消息来源的情况下将问题指向贪污问题(但最终却是,387万的项目,只拿出了27万给外包开发),并指出这是由于为了迎合不懂技术的上级,过度美化导致。
根据网上看到的西安一码通截图,就是一个普通的小程序,根本不存在过度美化的问题。

坐等更新的消息。

附: 《“科技抗疫”中流砥柱:西安电信“一码通”平台服务保障专班》原文 img img

“科技抗疫”中流砥柱:西安电信“一码通”平台服务保障专班

发稿时间: 2021-06-16 09:25
来源:人民邮电报
作者:李光杰

古城西安的疫情防控一线,活跃着一支鲜为人知的队伍,他们以代码和光纤为武器,攻克重重难关,日夜奋战在一线,用实际行动助力西安“科技抗疫”,为古城构筑起一座坚实的“隐形堡垒”,守护着 1000 多万人民群众的健康安全。他们是西安电信“一码通”平台服务保障专班。

功在日常 关键时刻显担当

扎实,才有底气;长远,要靠积累。

长期以来,“一码通”平台服务保障专班在实践中积累了丰富的实战经验。2018 年“最具创新 SaaS 服务商”奖、中国信息通信与大数据应用创新优秀成果奖金奖、智慧城市典型解决方案、2019 年制造业“双创”平台试点示范项目建议名单……一系列奖项、成果的背后,是该集体技术能力强、政治素养好、执行效率高的充分体现。

2020 年年初,新冠肺炎疫情来势汹汹、急速蔓延,人员流动轨迹的追踪、监控成为疫情防控工作的重中之重。在西安市疫情防控指挥部的统一指挥下,保障专班召之即来、来之能战,主动整合既有产品能力,全体成员三天三夜不眠不休,研发出西安市个人电子识别码。2 月 16 日,“一码通”在曲江新区上线试运行;2 月 18 日,“一码通”在全市上线试运行;2 月 20 日,“一码通”完成与西安市公安局“一场五站”二维码入口统一的工作;2 月 25 日,西安市疫情防控指挥部正式在全市范围内推广使用“一码通”。他们关键时刻彰显的责任担当,让数以千万的市民有序出行,为全市高效联动、科学防疫、精准施策、全面复工复产奠定了坚实基础。

争分夺秒 小应用发挥大作用

系统运行初期,平台或多或少数出现不稳定的现象,如短信验证码发送不及时、系统访问并发大、三色码规则模型构建和系统平稳运行 AB 环境搭建难度大、国家码及省健康码互认互扫困难等情况,但这些问题并没有吓倒坚强的保障专班。

8 小时内将平台出口带宽从不到千兆扩展至万兆、短信网关平台从 1 台服务器扩容至 6 台服务器,8 小时内实现对注册用户大数据分析后的着色能力开发,24 小时内完成全市公交车、地铁站的二维码上线工作……他们与时间赛跑,不断刷新纪录,并推动“一码通”先后与省卫健委“健康码”、国家“防疫健康信息码”实现了互联互通。目前,“一码通”平台注册人数超过 2781 万,覆盖了全市所有小区(村)、商超及公交、地铁、出租车、网约车等主要交通工具,为近 5 万家企业提供服务,日均访问量达千万人次,累计统计出行量达 13.82 亿人次,小应用发挥了大作用。

有了“一码通”,市民的出行效率大大提高,通过对人群精准的大数据识别,按红、黄、绿码对人群进行分类分级精准管控,为精准施策提供强有力的数据依据;有了“一码通”,基层疫情防控工作人员的负担大大减轻,防控工作效能得以提升,同时避免了手工填报个人信息发生信息泄露的情况;有了“一码通”,企业复工复产快马加鞭,复工复产进程提挡加速,为西安全面复工复产,恢复生产、生活秩序提供了强有力的保障。

精益求精 系统运行稳定高效

响鼓不用重槌敲。自“一码通”平台开发以来,根据西安市疫情防控指挥部的要求和疫情防控工作需要,保障专班成员放弃了所有休假,没有人叫苦叫累,没有人临阵退缩。他们累计完成近 40 次平台升级,每次升级的开发工作都在白天,发布及测试工作都在夜间,周而复始。

由于系统群体规模和访问规模的特殊性,每行代码、每张图片、每个技术文档都反复核准,优化再优化,精益求精。为确保系统运行更高效,他们将一张图片从 1MB 压缩到 500KB,再从 500KB 优化到 100KB。这样的工作看似简单,却蕴含着高技术含量,他们连续两天两夜守在电脑前,终于攻下难关。在不断优化的过程中,“一码通”平台形成了 A/B/C 三个主从备环境的基本框架,能够在各种突发情况下,实现快速响应与切换高可用环境。一个又一个看似微不足道的改进,最终实现“一码通”平台整体的稳定、高效运行。

基于“一码通”平台积累的丰富的疫情防控平台建设与运营经验,西安电信持续延展出疫情联防联控、核酸检测、疫苗预约、重点人员全流程管理、数字体育、“十四运”疫情防控等 20 多个相关项目。其中在“十四运”疫情防控信息化建设中,作为建设网络强国、数字中国和智慧社会的主力军,专班始终以高度的政治责任感全力投身其中,依托前期成熟经验及先进技术,打造十四运会疫情防控信息系统管理平台。平台通过防疫元素动态查询、动态审核等服务,结合大数据分析,达到问题早发现、早处理的目的,同时实现观赛人员身份证、票证、健康认证的三证合一,实现群众快速入场,防疫部门精准溯源、无感防疫,以数字化、信息化手段提高群众感知,提升防疫效率。伴随着疫情防控常态化,专班担当作为、奋力拼搏,以实际行动为群众健康安全保驾护航,以信息化助力西安市疫情防控“一张网”的全面建成。

金杯银杯不如老百姓的口碑。“有了一码通,出行更便捷,防疫更轻松”。人民群众沉甸甸的评价是对保障专班最好的褒扬。