3
| 本文作者: 王強 | 2015-05-28 17:16 |

根據最新情報,今天上午開始出現官網和app故障的攜程網沒有碰到最嚴重的問題:用戶資料丟失。雖然服務器出現了問題損失了數據,但所幸損失是可控的。
據目前得到的、未經最后證實的消息,不知是因為外部攻擊還是系統bug抑或是工程師手滑,今天攜程更新自己的應用時出現了源代碼被刪除的慘劇。源代碼被刪導致攜程需要暫時停止主要的網絡服務,緊急回滾到之前的程序版本。這項任務需要花費一定時間,但不會對用戶資料數據造成影響。
網站程序更新和我們家里PC的軟件升級有很大不同。較復雜的網站或網絡服務通常有很多組件構成,每個組件就是一個子程序。開發網站時,不同的開發小組負責不同的組件。工程師寫好自己負責的代碼后并不是直接放到服務器上”安裝、升級”的——這些程序一般不會有圖形化的通用安裝界面。通常的流程時各小組提交的代碼發到一臺審核用的服務器編譯運行,測試無誤才能更新到主服務器里。
程序代碼不能直接被硬件識別運行,需要翻譯為硬件內部的語言形式。翻譯的過程叫做編譯。代碼編譯完成后就從一大堆字母數字變成了可執行文件,從可執行文件里很難完美地倒推回原始的代碼。
攜程的問題是各個小組提交代碼、編譯成功后,代碼本身卻被刪除了。這就像用膠片相機拍照洗出來后膠卷丟失了一樣。源代碼沒有了,意味著編譯出來的程序出現任何錯誤都很難通過分析代碼來解決問題,而且程序的升級也會很麻煩。丟失源代碼的程序對工程師來說就是廢品,絕不能使用。
幸好攜程的服務器還保留著上個程序版本的代碼,新版廢掉了只能拿舊版頂了。只是舊版代碼要發布還要經過編譯測試,這也是需要時間的——就像你昨天新拍的自拍的膠片丟了,你只好找上個月拍的那卷拿去沖洗才能給朋友看了。舊版發布的空當,新版又作廢沒法用,服務只好中斷了。
更麻煩是據說現在攜程舊版代碼怎么也更新不到主服務器里,程序一發布就被自動刪除,搞不好是黑客干的缺德事。好容易翻出來舊的膠卷拿去沖洗卻怎么也洗不出來,這種心情放大一些應該就是攜程現在的感受。這個問題解決起來恐怕還要費一番周折,攜程的很多員工今天要加班熬夜了。
這次事件暴露出攜程技術部門的很大問題:且不說起因是黑客攻擊還是工程師手滑,主程序源代碼這種重要的東西竟然沒有離線備份簡直匪夷所思——只在服務器里存一份,當然容易刪掉了。要是在近線存儲系統或者磁帶機保留一份,那問題直接就不存在了。犯這種錯誤實在有些低級,攜程需要加強對技術部門,尤其是數據安全的重視了。其他企業也該引以為戒,趕快審核下自己的數據管理體系,別再鬧這種低級笑話了。源代碼被刪事小,哪天用戶數據丟失可就真的欲哭無淚,叫天不應叫地不靈了。
【廣告】據說攜程網被“物理刪除”是因為這個:http://www.knewbi.com/s/5566c2b3c3df6
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。