0

今天上午8:30左右,不少用戶(hù)集中反映,“粵省事”小程序里的“粵康碼”打不開(kāi)了。
在亮碼的過(guò)程中,頁(yè)面會(huì)出現(xiàn)“信號(hào)不佳”的提示,或是直接呈現(xiàn)黑白二維碼,表示“亮碼失敗”。
下方的“核酸檢測(cè)”和“疫苗接種”兩欄都注明“升級(jí)維護(hù),請(qǐng)稍后再試”。

圖左為正常訪(fǎng)問(wèn);圖右為亮碼失敗
#粵康碼#、#粵康碼崩了#等詞條迅速登上微博熱搜。

事發(fā)六小時(shí)后,熱搜詞條仍然在榜
上午10:00之后,情況逐漸得到緩解。也有網(wǎng)友向雷峰網(wǎng)表示,自己的粵康碼在十點(diǎn)左右還是黑白,但在十點(diǎn)半左右已經(jīng)可以正常打開(kāi)。
今日午間,當(dāng)市民再度打開(kāi)“粵省事”小程序里的“粵康碼”,頁(yè)面會(huì)首先顯示公告稱(chēng):
8:31,監(jiān)測(cè)到流量增大;
9:04,部分緩解;
9:56,完全恢復(fù)順暢運(yùn)行。

而在粵康碼崩潰的90分鐘里,微信小程序“深i您”、“穗康碼”,以及由國(guó)家政務(wù)服務(wù)平臺(tái)提供服務(wù)的支付寶健康碼,均可正常使用。

微信小程序“深i您”界面
“應(yīng)該只有‘粵省事’這個(gè)渠道出了問(wèn)題?!頸您’和‘穗康碼’都分別注明了‘粵康碼(深圳/廣州)’的字樣,但一樣可以正常打開(kāi)?!庇芯W(wǎng)友評(píng)論道。
公開(kāi)資料顯示,數(shù)字廣東公司是粵康碼系統(tǒng)以及全省數(shù)字政府建設(shè)的運(yùn)營(yíng)中心。“粵省事”移動(dòng)政務(wù)服務(wù)平臺(tái),由騰訊與廣東省合作開(kāi)發(fā)。
在1月7日到1月9日的三天時(shí)間里,深圳新增四例本土確診病例,深圳多區(qū)同時(shí)展開(kāi)大規(guī)模核酸篩查。深圳以及廣東其他市縣的不少公共場(chǎng)所,都新增了入場(chǎng)前先亮健康碼和核酸證明的防疫要求。
而今天(1月10日)正是深圳“0107疫情”發(fā)生之后的第一個(gè)工作日,不少上班族正是在進(jìn)入地鐵和辦公園區(qū)的時(shí)候,發(fā)現(xiàn)粵康碼打不開(kāi)了。
這次故障的主要原因,多位業(yè)內(nèi)人士表示,應(yīng)該還是與高并發(fā)訪(fǎng)問(wèn)有關(guān)。
官方聲明中提到:
今早的訪(fǎng)問(wèn)量峰值一度高達(dá)140萬(wàn)次/分鐘。
而根據(jù)廣州日?qǐng)?bào)的報(bào)道,2021年5-6月廣東曾爆發(fā)過(guò)一輪疫情,在此期間,粵康碼進(jìn)行過(guò)系統(tǒng)調(diào)優(yōu)升級(jí):
促使網(wǎng)關(guān)每分鐘可承載的訪(fǎng)問(wèn)量從原來(lái)的10萬(wàn)+提升至60萬(wàn)+,每天的調(diào)用量從原來(lái)的10億+提升至80億+。
有業(yè)內(nèi)人士指出,從兩組數(shù)字的對(duì)比來(lái)看,粵康碼系統(tǒng)今早確實(shí)顯著承壓。
“遇到高峰浪涌,爆服務(wù)器負(fù)載屬于正常現(xiàn)象?!辟Y深信息安全專(zhuān)家吳先生向雷峰網(wǎng)解釋?zhuān)?strong>就算有彈性資源自動(dòng)擴(kuò)容機(jī)制,生效也需要時(shí)間,擴(kuò)容期間的請(qǐng)求還是會(huì)卡在隊(duì)列里。
整個(gè)擴(kuò)容流程大致是:浪涌到閾值——觸發(fā)告警——觸發(fā)擴(kuò)容請(qǐng)求——分配資源——掛載鏡像——服務(wù)啟動(dòng)——負(fù)載均衡器轉(zhuǎn)發(fā)流量。
他強(qiáng)調(diào),“擴(kuò)容的每一步都是秒級(jí)反應(yīng),但第一步到最后一步之間,這段時(shí)間的請(qǐng)求,在重新請(qǐng)求之前都卡著。如果浪涌太快,需要連續(xù)申請(qǐng)資源,還是會(huì)卡不少時(shí)間?!?/p>
舉個(gè)例子:
假設(shè)隊(duì)伍負(fù)載是100(100進(jìn)100出)一旦溢出,假設(shè)每次擴(kuò)容20%,擴(kuò)容用時(shí)10秒;
某一秒的峰值到達(dá)130,觸發(fā)告警;
10秒后擴(kuò)容至120,不夠則繼續(xù)擴(kuò)容;
但在這10秒內(nèi),超出能力的請(qǐng)求數(shù)量可能已經(jīng)累積了300個(gè),響應(yīng)還是很慢,只能等著隊(duì)列超時(shí)后重新分配,或者卡進(jìn)去。
這還不包括“卡了之后重新請(qǐng)求——造成流量異常上升”的情況。
也就是說(shuō),即便擴(kuò)容只需要十秒鐘,但就在這十秒鐘之內(nèi),問(wèn)題還在不斷堆積;自動(dòng)擴(kuò)容后的能力,也未必能應(yīng)對(duì)十秒之后的新情況。
這種“訪(fǎng)問(wèn)量激增導(dǎo)致亮碼失敗”的情況,可以通過(guò)提前擴(kuò)容來(lái)應(yīng)對(duì)嗎?
“很難,除非準(zhǔn)確預(yù)測(cè)流量曲線(xiàn)。”吳先生說(shuō)。
某災(zāi)備廠(chǎng)商告訴雷峰網(wǎng),此次崩潰,可能與項(xiàng)目方“只做了數(shù)據(jù)級(jí)容災(zāi)、沒(méi)做應(yīng)用級(jí)容災(zāi)”有關(guān)。
但多位技術(shù)專(zhuān)家也給出了相反的看法,指出應(yīng)用級(jí)災(zāi)備是“高投入、價(jià)值低頻且難以度量”,在大多數(shù)時(shí)候“相當(dāng)于服務(wù)能力成倍冗余”。
應(yīng)用級(jí)容災(zāi)確實(shí)更能確保業(yè)務(wù)的連續(xù)性,但不同于云服務(wù)彈性擴(kuò)容,這需要長(zhǎng)期占用固定投資,且資源平時(shí)無(wú)法通過(guò)靈活應(yīng)用產(chǎn)生其他價(jià)值。
我們可以把彈性擴(kuò)容看作是搭帳篷,用途多變,啟用和收回也十分靈活;而應(yīng)用級(jí)災(zāi)備就像是直接建造一處特定用途的樓房,確實(shí)穩(wěn)定堅(jiān)固,但成本高出不少,因此有專(zhuān)家認(rèn)為,“建設(shè)應(yīng)用級(jí)容災(zāi)并不是理想的解決辦法。”
此次粵康碼無(wú)法正常訪(fǎng)問(wèn),也讓許多人聯(lián)想到不久前西安一碼通的兩輪崩潰。不少各地網(wǎng)友表示,自己所在地的健康碼也出現(xiàn)過(guò)亮碼緩慢的情況。
鈦媒體的報(bào)道中指出,西安一碼通是“一起因流量過(guò)載、系統(tǒng)架構(gòu)應(yīng)對(duì)高并發(fā)不足,最終導(dǎo)致防火墻攔截?cái)?shù)據(jù)無(wú)法返回的系統(tǒng)性故障?!币灿屑夹g(shù)專(zhuān)家表示,相信西安一碼通存在一定的系統(tǒng)架構(gòu)設(shè)計(jì)硬傷,沒(méi)有充分考慮擴(kuò)容的情況。
有業(yè)內(nèi)人士強(qiáng)調(diào),粵康碼、西安一碼通的亮碼失敗,確實(shí)都與高并發(fā)訪(fǎng)問(wèn)有關(guān),但無(wú)論是何地的健康碼,實(shí)際情況都不可一概而論,不意味著西安一碼通的根本問(wèn)題也出現(xiàn)在了其他地區(qū)健康碼身上。
但需要注意的是,健康碼因高并發(fā)而亮碼緩慢、甚至崩潰的背后,不只是容災(zāi)、擴(kuò)容這些相對(duì)淺層的技術(shù)問(wèn)題。
“健康碼是一個(gè)融合多系統(tǒng)的產(chǎn)品,不是某個(gè)單一軟件公司可以覆蓋的?!盜T咨詢(xún)專(zhuān)家阿鯤(化名)向雷峰網(wǎng)(公眾號(hào):雷峰網(wǎng))分析稱(chēng),健康碼系統(tǒng)目前的關(guān)聯(lián)方應(yīng)該包括:
信通院整合的三大運(yùn)營(yíng)商(定位及軌跡);
各地的疾控中心(核酸檢測(cè)結(jié)果,疫苗接種結(jié)果);
產(chǎn)品前端(微信、支付寶小程序);
產(chǎn)品的運(yùn)營(yíng)(實(shí)際健康碼的加工和生成,數(shù)據(jù)整合,日常運(yùn)營(yíng)等)
其他關(guān)聯(lián)方,如云服務(wù)、防火墻的提供商。
整體架構(gòu)上,應(yīng)當(dāng)是有一個(gè)后臺(tái)和一個(gè)前端,都架在政務(wù)云上:
后臺(tái)采集各渠道數(shù)據(jù),包括定位軌跡,核酸,疫苗等,統(tǒng)一加工后生成健康碼;
前端對(duì)接各渠道,從前端獲取客戶(hù)身份信息,到后臺(tái)查詢(xún)健康碼,并生成碼值展示。
一個(gè)看似簡(jiǎn)單的健康碼,內(nèi)部涉及的產(chǎn)品和運(yùn)營(yíng)方太多,協(xié)調(diào)難度相當(dāng)大;而且技術(shù)能力參差不齊,容易被木桶的短板所拖累。
“就算各方負(fù)責(zé)的部分都沒(méi)問(wèn)題,合起來(lái)也可能會(huì)有一堆毛病,就像一個(gè)人四肢健全卻無(wú)法正常行走?!绷硪晃患夹g(shù)專(zhuān)家強(qiáng)調(diào)。
而項(xiàng)目牽頭者、實(shí)施方都有可能對(duì)健康碼的定位理解不準(zhǔn)確,“項(xiàng)目是按政務(wù)系統(tǒng)來(lái)做的,但這是面向全網(wǎng)C端的大流量架構(gòu)——理論上是to G,實(shí)際上應(yīng)該是to G to C。”阿鯤說(shuō)。
再加上健康碼的特殊性,項(xiàng)目上線(xiàn)時(shí)間緊迫,往往未能經(jīng)過(guò)完整壓測(cè);上線(xiàn)后又面臨巨大的運(yùn)營(yíng)壓力,騰不出人手和資源進(jìn)行優(yōu)化。因此系統(tǒng)的整體架構(gòu)耦合太強(qiáng),健壯性不夠。
同時(shí)他也強(qiáng)調(diào),全國(guó)各地各自為戰(zhàn),數(shù)據(jù)未整合,且各地的數(shù)據(jù)、架構(gòu)都不同,導(dǎo)致每個(gè)省各顯神通,也和當(dāng)?shù)氐男畔⒒A(chǔ)設(shè)施密切相關(guān),沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)方案。
健康碼的真正考驗(yàn),是頂層設(shè)計(jì)能力和協(xié)同一致能力,是項(xiàng)目?jī)?nèi)部各方、項(xiàng)目與其他數(shù)字基礎(chǔ)設(shè)施的協(xié)調(diào)。在疫情聯(lián)防聯(lián)控成為日常所需的今天,這將會(huì)是每個(gè)城市長(zhǎng)久面對(duì)的考題。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。