iT邦幫忙

2022 iThome 鐵人賽

DAY 1
2
Software Development

Moleculer 家家酒系列 第 1

Day 1 : 微服務是什麼?

  • 分享至 

  • xImage
  •  

微服務是什麼?

前言

你是否跟筆者一樣喜歡在 Node.js 開發後端伺服器,或是厭倦了現今主流的微服務框架,想要一探究竟 Moleculer 框架的全貌呢?

本系列筆者將參考官方手冊的章節及流程範例[1] 來進行講解,並且加入筆者實際的開發經驗來補充說明 Moleculer 的用法,也歡迎高手們分享你的開發經驗。

單體式系統

為什麼過去伺服器系統開發多採用單體式架構,在談到微服務之前需要先了解單體式系統,先來了解一下單體式系統的優缺點吧。

優點

  • 程式架構單純
  • 部署上線快速

缺點

  • 缺點是系統可擴充性差
  • 缺少錯誤隔離措施
  • 系統修復時間長
  • 無法應對高併發問題


Fig. 1. 單體式系統架構圖

微服務架構

其實單體式系統已經可以滿足多數的應用需求了,但如果單體式系統夠各位大佬使用的話,大概就不會來看這個系列文章了吧,再來了解一下微服務架構的優缺點吧。

優點

  • 功能容易擴充
  • 可彈性擴充硬體
  • 允許錯誤隔離
  • 可處理高併發負載平衡
  • 可跨語言技術開發等優點

缺點

  • 技術門檻較高
  • 系統規劃較複雜
  • 維運需求高


Fig. 2. 微服務系統架構圖

技能需求

本系列文章乃參考官方手冊的章節流程來進行說明,適合 Moleculer 新手觀看,並不會有太多難以理解的內容,僅需要有基本的程式技能即可。

  • Node.js 後端開發經驗
  • npm、yarn 指令
  • MongoDB 相關知識

單體式系統到微服務

如果你已經是單體式系統開發老手了,非常推薦看這本由 Sam Newman 所撰寫的 單體式系統到微服務 [2] 一書,內容談論該如何從從初期規劃應用程式、分解系統資料庫,到逐步完成遷移的案例經驗。如果貴團隊的系統已經發展成熟,那麼非常推薦可以看這本書,相信可以帶給你許多幫助。

為什麼選擇 Moleculer ?

在眾多知名的微服務框架中,為什麼筆者要選擇 Moleculer 框架呢? 其實是因為筆者處在中小企業,研發的人力資源不足,系統運算需求又逐漸增加,單體式系統開始無法負荷。因此選擇同為 JavaScript 程式語言的 Node.js 作為後端並搭配 Moleculer 框架,就可以培養對後端有興趣的前端開發人員,快速轉成後端開發人員來支援開發。

參考文獻

[1] What is Moleculer?, https://moleculer.services/docs/0.14/
[2] Sam Newman (陳慕溪 譯), 單體式系統到微服務

家家酒小劇場

  • Otter - 微服務既然有那麼多優點,為什麼還有許多人使用單體式系統呢?
  • Boxy - 那是因為許多網路應用並沒有那麼複雜,單體式系統就能解決問題了,所以不見得一定要用到微服務來解決,需要根據產品需求來選擇使用唷!
  • Otter - 哦 ~ 所以單體式系統還是很重要,同樣需要好好的學會它!
  • Boxy - 沒錯,而且單體式系統也有許多觀念與微服務是共通的呢。

下一篇
Day 2 : Moleculer 微服務框架
系列文
Moleculer 家家酒31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
json_liang
iT邦研究生 5 級 ‧ 2022-09-01 14:13:24

感謝大大分享微服務優文

0
json_liang
iT邦研究生 5 級 ‧ 2022-09-01 14:13:29

感謝大大分享微服務優文

0
json_liang
iT邦研究生 5 級 ‧ 2022-09-01 14:14:09

感謝大大分享微服務優文

我要留言

立即登入留言