基本上聽到這名詞好久了
但都沒打算用,這邊收集一下網路大神上看到的一些說明
筆者過去曾參與過大型專案開發,上線產品、除錯、與測試功能都包在一起。每次發布新功能、修改代碼都非常膽戰心驚,哪怕是一個 bug 也會影響整個系統效能。而相較於這樣 單體架構(Monolithic Architecture) 的服務, 微服務(microservices)架構 大大減少程式複雜度,將每個服務依照各自業務需求獨立出來,以 Rest API 互相構通。而 microservices 概念的導入,改善了我們過去所面臨到的問題:
- 將龐大的專案拆成幾個不同面向的小專案,當代碼夠小、容易理解、開發效率能被提高
- 各個服務之間也可獨立部署,不因一個服務癱瘓而癱瘓整個系統
- 各團隊可以依照自己的需求使用適合自己的語言、資料庫開發
- 每個服務也可以依照自己的需求,選擇在不同機器上部署
然而,當系統中的微服務越來越多時,管理上也會面臨到很大的挑戰。Kubenetes 的出現讓我們管理這些微服務程式更加方便。
參考部落格