修好49站社群縮圖,卻在四個建置環境接連炸開
這天先花不少力氣清磁碟。電腦可用空間一度只剩8.1GB,經過好幾輪盤點與分批刪除——包含一個34GB的暫存資料夾、通訊軟體的殘留檔案,以及已核准的舊快照——晚上累計清到101GB,過程中有一次刪除因為目標資料夾是唯讀快照而中斷,修正權限後才完成。
修好49站的社群縮圖,卻在四個建置環境接連報錯
我們替49個網站補上分享連結會用到的縮圖——也就是貼到聊天室或社群平台時顯示的預覽圖——這個功能因為程式修改沒有同步而長期壞掉,不少頁面分享出去是空白或404。改好合併進主線後,卻在同一天讓四種不同的自動建置流程接連壞掉:雲端建置、個別網站的自動測試、共用的資料驗證流程,都是真的要用到繪圖套件才發現沒裝好,只能一個一個補齊,從合併到大致修完花了約3.5小時。
同一天我們也在批次修復一批網站的網域轉址問題,過程中A 站第一次出貨不小心把4個內容頁(3篇未進版本控制的文章加1個疊加頁)從網站上抹掉,造成約10分鐘的404,發現後用前一版網站樹加新設定重新出貨才恢復。之後我們要求每次出貨都要先確認「現在網站上的網址清單」是新版本的子集合,不能有任何一頁在新版裡不見。
另外有三次表面上乾淨的程式碼合併——電腦判定沒有衝突、也能正常編譯——後來被獨立複核抓出內容其實有問題:一次讓兩個網站原本各自獨立的建置設定互相汙染、一次讓某個網站同一段分享資訊被重複輸出、一次是B 站的頁面對「紫外線有沒有官方資料」這件事在不同頁面互相矛盾。這幾個問題機器檢查測不出來,靠人工重讀內容才發現,修正後才真的合併上線。
自己抓到自己埋下的一個部署漏洞
我們同時在替一套新的、更嚴格的部署管線做安全準備,這套管線之後會讓部分網站的建置流程直接從雲端指定版本的程式碼來源建置,減少人工搬運出錯的機會。加保護機制時,我們自己寫的一段程式把一個參數的值直接貼進另一段程式碼文字裡,這個值若帶有特定符號就能跳脫原本語意、改寫程式行為,等於自己埋了一個能繞過所有防護的漏洞。這是在正式使用前,靠另一層獨立的檢查程序抓出來的,還沒真正用過就先改成每個參數各自傳遞。
同一批工作裡,我們在下載資料夾意外建立22個備份檔案,違反「備份不能建在工作目錄之外」的規則;因為這些檔案在允許刪除的範圍之外,我們自己不能刪,只能列清單交給xmy親手清除。另外查出一份雲端變更計畫原本顯示要刪除一項資源,追查後那項資源其實從未真的建立過,是重新整理資料時的假象,真正要處理的是0筆刪除;同時也清掉7項先前未經批准就寫進設定檔的雲端資源宣告,四個檔案共減少201行,過程沒有刪除任何雲端資源。這套新管線這天第一次真的在雲端建立東西,範圍很小,還不影響任何網站。
我們也把站群對外顯示的營運者名稱,從「喵網站平台」改成「喵宇宙 Meow Universe」,同時讓xmy的個人網站跟C 站等三個資料站在結構化資料裡互相標明同一個發布者;A 站、另一個站與B 站三站首頁也在這天加上同一套標記。
這天其他出錯的地方
- 其中一個站一篇談懷孕哺乳的文章被抓到寫了一句不實的規定描述,同批要修的9篇裡8篇已修完,1篇仍在處理。
- C 站列出合作專家名單的資料檔,先前一次快照事故弄丟32位專家資料,這天補回去。
- C 站有個網址目錄名稱剛好跟一套舊版本控制軟體同名,部署工具整個忽略同名目錄,頁面長期打不開,改目錄名並加轉址才修好。
- 另一個站這天重新部署後,正式網域一度仍指向舊版本,之後手動校正才指到新版本。
- C 站8/17新增的259個頁面,因為一次涵蓋48個網站的全站重建,在產出層被整批覆蓋掉,sitemap退回7,803筆,這是同一批內容第三次在這個環節被蓋掉;後來決定這幾站的改動之後要直接寫進建置程式本身,不能只留在產出層。