說一說單體應用的不良影響

概述


單體應用有優點也有缺點,而所有缺點基本上都是一個原因導致的。

功能模塊都耦合在一起了。

不同功能堆在一起了,會引發各種各樣的問題,下面說一下自己體驗過的單體應用的痛。


系統穩定性很不可控


目前公司有一箇舊的後端應用,裏面保羅萬物,有訂單、商品、支付、庫存、定時任務、MQ,還有各種管理功能,在今年九月份的時候,其中一個模塊出現了內存泄漏,最後導致了操作系統級別的oom killer,整個系統不可用了,而恰巧當時正在跑一個重要的且不支持冪等的批量指派任務,由於被強制停掉了,直接影響數據在前端的展現,且又不支持重新跑數據,運營人員直接就發飆了:怎麼回事。後面研發只能邊捱罵邊修複數據,苦b的很。

單體應用耦合的模塊多了,容易造成功能相互影響,真是躺着也中槍


發佈時間真的好長


單體應用耦合的模塊多了,也會導致應用啓動時間變長,像之前的一個內部應用,啓動時間是2分多鐘,且有10臺機器,使用原始的滾動發佈方式,線上發佈完後要20分鐘,非常漫長;而對於測試人員來說,在測試環境裏,經常要驗證bug是否修復好了,經常性的要發佈應用,每次都要等很久,真是苦不堪言,極大的降低了測試效率。

另外,發佈時間長,對於CI來說,也是災難。


分支問題


當一個週期裏,有多個功能要上線的時候,研發這邊會基於主幹分支拉出各個功能分支,這裏會出現幾個問題:

  • 各個功能分支合併到主幹分支的時候,容易出衝突,除了處理衝突需要時間外,還容易處理出錯,導致代碼被覆蓋,很容易造成線上故障;
  • 如果公司摳門,出於成本考慮,只有一臺dev機器用於開發聯調,這個時候只能使用另外一個叫dev_all分支,所有功能分支的代碼都統一合併到dev_all分支,開發人員一多,又是各種合併問題,導致開發環境不穩定,前端開發每次都因爲這個,屌後臺研發。

會嚇跑新人的


對於新手來說,看到了一坨龐大的代碼,真心是無從下手,你讓他接手或者乾點活啥的,成本都賊高的,且容易犯錯。對於有代碼情操的人,是會立刻走人的。對於暫時忍受的了人,心理陰影也會逐漸加大,外面有啥風吹草動的,也會走人的。

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