【運維心得】K8S的又一個“坑”

此“坑”非彼坑

這個坑字,打了引號。爲什麼呢?且聽我慢慢道來:
由於研發比較抗拒上K8S,所以這個坑可以說是研發扣給K8S的。
現象是這樣的:
有一個手機註冊的界面,在K8S部署以後,始終無法註冊成功。在排除了configmap和host(外部供應商應用需要配置)這些低級錯誤之後。仍然無法註冊成功。開發反應,之前舊的環境(傳統部署)裏,是可以註冊的,多人圍觀證實。無奈之下,大家一起用手機號測試,經過打印容器內日誌,發現問題出在外部應用返回的錯誤。具體來說,就是如果一個新的手機號註冊,首先要進行信用評估,會取得一個字符串回來,然後進行int轉換,作爲用戶的評級。但是由於我們測試的手機號在外部應用返回的json中,是沒有信用評估的,結果int轉換出錯,造成註冊失敗。
但是,爲什麼舊的環境就可以註冊呢?
經過查詢,原來之前在舊的環境中註冊的手機,都是在外部應用中有個信用評估的,所以並沒有觸發int轉換的錯誤,至此,此“坑”還是開發和測試的鍋炸出來的。

測試之殤

最後的解決方案就是在int轉換的時候做一個判斷,說起來很簡單。但是爲了填這個坑,5個同事查了1個小時,程序員的時間,就是這麼流逝過去的。
說到底,還是沒有一個完整的測試用例,大家對於測試用例的關注度,遠遠低於查錯,其實,很多錯誤,都是可以用過完善的測試用例測試出來。
寫下此文,爲今後的排錯和測試給自己提個醒吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章