什麼是微服務(Microservices),可以吃嗎?
好像不行欸...
啃啃看好了
好重哦...可以幫我拿走嗎
這本書是我進入研究所實驗室第一本買來讀的書
微服務 一群協同運作的小型自主服務(autonomous service)
-小巧,並且專注於做好一件事
-自主性
由於我參加實驗室的ezScrum專案
這個系統的程式碼有幾十萬行,已經大到很難管理
所以團隊已經陸續地將這個系統拆成數個微服務
而未來也將會持續這個工程
想要分解既有的單體式系統建構微服務之前
我想我有需要了解微服務到底是怎麼一回事
坦白說這本書我看得有些吃力
但在這閱讀這本書時我和我的同伴Jack採用每日讀書會方式進行
才讓我們透過彼此分享更了解這本書的內容
這本書談的範圍很廣,包括
-如何塑模服務
-整合
-拆分單體式系統
-部署
-測試
-監控
-資訊安全
-Conway定律與系統設計
-大規模的微服務
-全部組織起來
這本書聚焦在觀念上,而沒有深入談技術層面
所以在閱讀上會覺得有點抽象化,但卻可以讓你對於微服務的整個架構有基本認識
而實作細節我想可能還是需要透過其他書籍來補足
微服務的主要好處
-技術異質性-可以決定針對每一個服務使用不同的技術
-彈性-不會因為某個服務壞了,而整個系統不運作
-擴展-可以只擴展需要擴展的服務
-容易部署
-組織調校-處理較小程式碼基礎的較小團隊往往更具生產力
-組合性-功能透過不同的方式,針對不同的目的被使用
-最佳化可替換性-微服務通常是這般大小,重寫或完全移除它的障礙是非常低的
微服務的兩大原則(構成好服務的關鍵)
☆鬆散耦合-更改一個服務不會波及另一個服務
☆高度內聚-行為聚集在一起,無關的行為則分處於不同的地方
我必須坦承地告訴你,我並沒有閱讀完這本書(但快看完了)
但是我對微服務的確有更深的認識,相信總有一天我會重拾這本書的
「微服務架構具有諸多迷人特質,然而,通往它的路途滿布荊棘與陷阱,必須謹慎提防。
這本書將協助你釐清這條道路是否適合你,以及如何避開旅途上那些惱人的圈套。」
— Martin Fowler
首席科學家,ThoughtWorks