上月發生 118 所高中「學習歷程檔案」被工程師手滑誤刪的重大事故,一時間在科技圈造成熱議,有人檢討發包單位及外包廠商,也有人認為是工程師、政府採購法問題,追根究底,「工程師手滑」可能只是整起事件的冰山一角,今天 RUBY 大叔要跟大家聊聊這件事。
有備份為何還是救不回?
這次學習歷程檔案被刪,關鍵在於工程師「 VM 設定錯誤」,VM 指的是虛擬機器(Virtual Machine),可以想像成是另一個測試用的環境,雖然環境及功能都一樣,但它是「虛擬」的,無論在虛擬機上如何變更破壞,都不會影響到正式機器的運作,這次工程師他在替學校建立公版模組時,本應選用「正式版」的 VM 設定,卻不慎選到「測試版」的,導致所有的資料連結錯誤。
然而致命點是,「測試版」的 VM 環境因內建重開機後,就會自動還原成初始狀態,所以過去資料不會保留,就像以前學生時代,不管是在電腦教室偷安裝遊戲或偷下載影片,重新開機後通通都會被洗掉的道理一樣,這次的「學習歷程檔案」就是因為這樣而規組害了了(台語),想知道完整始末可以拜讀
iThome 這一篇;很多人問不是有備份,為何不能還原就好?由於當時在新舊機房搬遷期間,雖然有備份,但諸多環節上陰錯陽差導致備份機制沒有到位,不能挽救這次失誤。
真正問題不只是工程師手滑
其實「工程師手滑」只是整個事件的一部分,我在過去與發包單位、外包廠商合作的經驗裡,也看過一些反覆存在的問題,包含發包單位對資安認知的不足、或各種外包後所產生的規劃與資訊落差等問題,這些跟技術不一定有直接關係。當發包單位對資安認知有限,容易於層層預算規劃下截長補短、東拼西湊,甚至在執行後發現缺失環節再行追加,而在外包廠商的配合上,也容易因同一專案的負責人員都不同,在配合與建置上產生不一樣的認知及專業度,互踢皮球的戲碼我們也沒有少見過。
在這之中也牽涉到政府採購法及審查機制的規則,因而影響專案發展的細節與走向,雖然沒有辦法立即改善這種規則,但當大家對事件有所共識,並有志一同的想把工作圓滿完成時,工程師們除了盡力做好份內能做的事,避免淪為被收割的韭菜之外,也要知道,在工作上降低出錯率比追求好技術更為重要。
注意這兩件事降低出錯率
身為工程師的大家都有手滑過吧?別說工程師,一般人寄信都可能會發錯對象、不小心砍了重要資料等,我想說,手滑真的不可恥,只要你有注意以下兩件事,幾乎可以避掉大部分失誤。
1、建立備份認知
無論是哪一種備份方式,都務必要做完整,別認為有做到幾項就好,要以能維持整體系統不中斷為最終目標的做備份,例如採用 High Availability 的備援系統;過程中的檢查工作也很重要,尤其是移機前後、服務重新開放前後,或涉及大量資料轉移時,務必再三反覆確認服務狀態,像這次事件的工程師,很可能是對系統不熟悉或沒有反覆檢查所發生,當發生問題或資料遺失時,如果不確定下一步該怎麼做,千萬別貿然行動,應先停止操作,讓狀態凍結,再仔細檢查並求救,操作實行後,也必須回頭檢查最後設定,及早發現及早治療,降低出率。
像我平常跟客戶溝通時,碰到最大問題是備份廠商的選擇及預算,有時客戶傾向於找便宜的雲端/備份廠商,其實每間公司資料重要程度及規模不同,不一定要在備份上把預算花到最滿,建議可以用 Open mind 的精神多比較幾家,找到可靠的廠商及合適的備份方案,這件事之所以重要是因為,未來如果發生任何狀況,挽救資料的成本將可能更高,甚至資料也不一定百分之百救得回來。
2、制定對應的 SOP
大家有看過電影《地心引力》嗎?由珊卓布拉克飾演的太空人在燃料用盡的太空艙裡,靠著翻閱「太空人手冊」啟動船艙裡的機器,其實「太空人手冊」就是一種 SOP,不管是誰翻閱,都能在碰到問題時照著步驟操作。有句話說:預防勝於治療,只要在事發之前,針對各種可能發生的狀況制定完整的 SOP,你就能掌握自己的處理狀況,若是換成不同人操作,同樣也能照著流程解決。
雖然不確定這次「學習歷程檔案」有沒有進行 SOP 演練,但若碰到這種需要異地備份,或進行大規模的資料遷移時,建議不論是實體場域或虛擬場域,都要以最接近實際狀況的環境設定來演練,在演練時,因客戶檔案可能不符合原本設定的資料規則,最好先請客戶提供真實需要備份的資料,實際跑過一次,才能建立最完善的 SOP,大家可以把握以下三個原則:
原則1:盡可能模擬真實備份狀況
原則2:提高 SOP 演練完成度
原則3:確保系統可以正常運作
希望大家在碰到手滑狀況時,都能及時幫自己一把。
你也有工作上手滑的經驗嗎?歡迎留言跟 RUBY 大叔聊聊!