今天的站會(huì)本可以在15分鐘內(nèi)結(jié)束。直到有人盯著架構(gòu)圖說(shuō):"等等,這不對(duì)。"
就這一句話(huà),四個(gè)人被按在Google Meet里整整一小時(shí)。屏幕共享開(kāi)著,麥克風(fēng)沒(méi)關(guān)過(guò),"往上滑一點(diǎn)""等我試個(gè)東西"的指令來(lái)回扔。要找的Bug不在代碼里,藏在AI層和AWS Lambda的縫隙中——系統(tǒng)實(shí)際做的,和所有人以為它做的,中間那道溝。
分布式系統(tǒng)的Debugging,已經(jīng)從技術(shù)活變成考古活
我們的棧不算特別。AI層往上搭,下面掛著事件觸發(fā)器、Lambda函數(shù)、S3存儲(chǔ)桶、DynamoDB,標(biāo)準(zhǔn)的企業(yè)級(jí)配置。但"標(biāo)準(zhǔn)"這個(gè)詞本身就有欺騙性——它讓你誤以為因果會(huì)在同一個(gè)地方出現(xiàn)。
四個(gè)人,四個(gè)時(shí)區(qū)可能的物理位置,盯著各自的屏幕片段。一個(gè)人看Lambda日志,另一個(gè)人翻S3的事件通知,第三個(gè)人在DynamoDB里追狀態(tài)變更,第四個(gè)試圖讓AI層的輸出和前三者對(duì)得上號(hào)。沒(méi)有單點(diǎn)故障,因?yàn)楦緵](méi)有"單點(diǎn)"這回事。
Debug模式的真正成本:不是機(jī)器時(shí)間,是人的注意力帶寬
時(shí)間盒定的討論被撕碎了。原定"最后一個(gè)發(fā)布前的大功能"被按暫停,所有人扎進(jìn)那條縫隙。分布式系統(tǒng)的Debugging有個(gè)特點(diǎn):你越急著找答案,信息就越分散在更多服務(wù)里。
Google Meet的共享屏幕成了臨時(shí)戰(zhàn)場(chǎng)。有人滾動(dòng)CloudWatch日志的速度太快,其他人喊停;有人本地復(fù)現(xiàn)了一半,網(wǎng)絡(luò)延遲讓演示卡成PPT;AI層的黑箱輸出偶爾給出一個(gè)"看起來(lái)對(duì)"的結(jié)果,大家得停下來(lái)確認(rèn)這是真修復(fù)還是假陽(yáng)性。四個(gè)工程師的注意力,被切成碎片撒在六個(gè)服務(wù)之間。
那個(gè)Bug最后怎么處理的?
原文沒(méi)寫(xiě)。作者只記錄到Debug mode engaged——Debugging模式啟動(dòng)的那一刻。
但這恰恰是分布式時(shí)代最誠(chéng)實(shí)的注腳:我們?cè)絹?lái)越擅長(zhǎng)描述系統(tǒng)該做什么,卻越來(lái)越不擅長(zhǎng)在它沒(méi)做到時(shí),快速定位"沒(méi)做到"發(fā)生在哪一層。AI的加入讓縫隙變寬了,因?yàn)槎嗔艘粚?它為什么會(huì)這么輸出"的未知。
站會(huì)結(jié)束時(shí)沒(méi)人說(shuō)"解決了"。只有人把會(huì)議鏈接發(fā)到Slack,附了一句"繼續(xù)跟"。
你的團(tuán)隊(duì)上次遇到這種"縫隙Bug",花了多久才定位到具體是哪一層在撒謊?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.