foundy-logo-bw

>>

🧑🏻‍💻軟體開發架構點揀❓單體架構 🆚 微服務

更新:2024-03-06

無論係初步開發軟體階段定係開發完軟體考慮緊轉架構嘅時候,你都要了解吓時下最流行嘅兩種軟體架構👉🏻單體架構(Monolithic Architecture)同埋微服務(Microservices),一齊了解兩種架構嘅分別,睇吓邊種更加啱公司嘅長遠發展啦!💪🏻

 

🌟咩係單體架構?

佢係軟體傳統嘅模型,成個軟體建構做一個單一嘅大型運算網絡,而且多數都係用一樣嘅程式語言同技術,將所有業務功能模組同服務結合喺同一個程式碼庫,簡單舉個例子,喺百貨公司🛍️入面,無論係食物、服裝定係電器都係喺同一個地方,就好似單體架構咁屬於單一,而且係唔可以分割嘅。

 

🌟單體架構三大好處

1️⃣ 易於部署:

因為佢直接整合晒所有功能嘅完整架構,所以部署變得比較簡單同快捷。

 

2️⃣ 初期開發快捷:

多數都係用單一嘅程式碼嚟建構軟體,令開發速度更快,而難度相對比較低。

 

3️⃣ 測試容易:

佢係一個整合型架構,所以做端對端測試嘅時候,執行速度通常比分散式架構嘅測試速度更加快。

 

🌟三個單體架構嘅缺點

1️⃣ 可擴展性低:

系統嘅擴展只限於成個軟體,冇辦法對特定功能組件做擴展。

 

2️⃣ 容錯性低:

呢個架構令到程式碼耦合性非常之高,只要其中一個模組有錯誤就會令成個系統都發生問題。基本上每一次更新都係牽一髮而動全身,一個小變動都可能需要成個系統做修正🫨!

 

3️⃣ 靈活性低:

無論係框架定係語言嘅任何改變都會影響成個系統,令到成本提高又嘥時間,變相成個系統都受到用緊嘅技術限制,可以變動嘅空間太低。即係當原本團隊用緊A語言技術去寫成個系統,但新團隊係用 B 語言技術去做就會令到個系統嘅語言超混亂,甚至要重新寫過。

 

🌟咩係微服務?

佢係將唔同嘅功能同服務拆分成一組組細嘅模組,令到耦合性變得鬆散,每一個模組負責特定嘅業務功能,可以獨立開發、部署同埋擴展,甚至有專屬嘅程式碼庫,就好似一條街入面有好多唔同嘅小店,每個小店都專注賣一樣唔同嘅嘢咁,獨立性高,一間小店嘅離開都唔會影響到成條街。

 

🌟微服務三大好處

1️⃣ 獨立部署:

軟體基於佢嘅特定功能拆分唔同嘅模組,每個模組都可以個別部署。開發人員可以專注番負責嘅模組,唔洗擔心衝突嘅發生。

 

2️⃣ 靈活性高:

開發人員可以自由選擇佢用開嘅工具同程式碼語言,唔洗好似單體結構咁限定晒,而且每個模組可以單獨擴展,根據番需求去有效分配資源,令到開發或者更新維護嘅過程靈活性高,效率自然就更高喇。

 

3️⃣ 維護容易:

每個模組獨立做更新或者維護,就算是但一個模組程式碼出現問題都唔會令到成個軟體崩潰,令到軟體更新版本更快更易,停機時間都相對變短。

 

🌟兩個微服務嘅缺點

1️⃣ 成本高:

因為模組分得比較細緻,變相開發團隊要有一定規模先可以令效率更高,亦需要管理人員去制定模組之間嘅 API 協定,同埋管理成個團隊溝通同埋協調各個模組嘅更新,即係唔只要有一定嘅技術,持續嘅整合都需要密切嘅溝通同交流,令到開發成本大增。

 

2️⃣ 管理困難:

每一個模組都有自己嘅更新日誌、唔同嘅語言同技術,軟體嘅監控技術都會因為鬆散嘅結構唔容易發現到問題,而且如果冇通用平台、日誌標準等,開發團隊都好難知道應該搵邊個去支援,令到整合程式碼又好定係管理團隊都比較困難。

 

所以,冇話邊個架構係最好,只有邊樣係對公司嚟講最啱用。基本上,如果軟體功能定位上唔係太複雜、冇一定規模嘅開發團隊同埋好少會做更新嘅話,單體架構的確係最理想同最快開發到軟體。但係公司規模大,軟體定位又好複雜嘅話都建議可以考慮擴建人手去用微服務,可以確保番每次嘅小更新,軟體都唔易因為出錯而崩潰,搞到要重建軟體。

最新動態
風靡全球嘅對話式 AI 👉🏻 Poe
軟體開發必用❗❗GitHub
💭 行銷必識.解構搜索引擎原理 🔎
AI 整圖工具・一鍵生成⚡
科技年代必知.AR、VR 😎
更多相關
IT 資訊

💭 行銷必識.解構搜索引擎原理 🔎

個個用搜索引擎(Search Engines)🧑🏻‍💻就用得多喇,你有冇好奇過佢究竟係點運作嘅?點解一 search 就即刻有晒結果?佢究竟點樣通過我哋打嘅關鍵詞去比你哋睇到相關嘅結果?老闆sss…