今年在 ModernWeb 講『用 Go 語言打造微服務架構』,蠻開心看到底下很多 Go 開發者,希望未來能有更多公司導入 Go 語言,底下是會議大綱:
- Microservices vs. Monolithic 差異
- 微服務核心架構 (Go 工具專案)
- Go 語言核心高並發
- 為什麼選用 Go 語言
- 微服務代價跟準備
有像 AWS 雲端,為什麼要自己搭建微服務?
我在現場介紹了很多用 Go 語言搭建的工具跟服務,讓開發者可以不依靠任何雲端產品來架構微服務系統,但是相信大家一頭霧水,為什麼需要這些服務工具,不是已經有 AWS 或 GCP 了嗎?這邊我的回答是,很多客戶都有自己的機房,如果服務都擺到雲端,客戶的資料都是機密,不可能全部的客戶都想要把服務搭建但現有雲端平台,所以我會準備一套完全不需要雲端的方案,方便讓客戶可以在自己的機房搭建。如何拆分微服務
會後有朋友問到,現在全部的功能都寫在一起,怎麼知道哪些功能可以拆出來當作微服務。在會議上我提到了底下幾點給大家參考:- 依照業務區分
- 自動化部署
- 高度容錯
- 快速置換
- 獨立開發
- 易擴充
導入微服務代價
- 系統複雜度提升
- 系統資料一致性
- 維運工作複雜化
微服務事前準備
- 快速建置 (Develop)
- 監控機制 (Monitor)
- 快速部署 (Deploy)
後記
微服務架構並不適合每個團隊,請依照團隊目前狀況以及業務需求,再來拆微服務,而不是聽到別人說微服務很潮,就開始建議主管或者是導入。最後附上投影片: 用 Go 語言 打造微服務架構 from Bo-Yi Wu