微服務架構是一種解決方案
阿新 • • 發佈:2018-11-11
企業應用架構演變: 單機程式->c/s->b/s->面向服務架構(SOA)->微服務架構
加粗的是單體程式
微服務架構
細粒度SOA,是強調小型短暫元件的SOA,小即是美
重點是服務,如何進行服務之間解耦
每個服務元件都可以獨立開發、構建、測試、部署
自包含(如在容器中)
輕量級程序
使用REST風格web服務開發
通過Http進行通訊(一定需要通過HTTP通訊麼?)
跟團隊組織結構相關
基本模式:(API閘道器+n個單體服務結構)
SOA
公開基於簡單物件訪問協議(SOAP)
中介軟體,如企業服務匯流排(ESB)很重要
基於服務開發(表示層、服務層(可能按照業務服務分很多塊服務API)、資料庫)
單體服務
經典n層結構(表示層、應用層、業務邏輯層、DAO、資料庫)
單體服務缺點
容易出現全域性癱瘓性故障
小問題可能導致整體部署
難以實現頻繁部署
難以跟上最新技術
難以滿足業務增量需求
載入、構建、理解、維護都費時
微服務優點
可以解決單體服務那些缺點
能與敏捷方法、CI/CD(Jenkins/TeamCity/TFS/AuzeDevOps)更好配合
微服務構建管道
CI/CD構建過程: 清理程式碼、程式碼編譯、執行單元測試、建立應用程式歸檔檔案、在開發 QA等各種伺服器上部署、執行功能和整合測試、建立映像容器、任何其他步驟、構建釋出版本、標記釋出版本
Docker 容器
每個容器具有自己的使用者名稱空間
依賴於基本的作業系統功能(如隔離服務)
容器中的應用程式可以是用任何語言開發
相互隔離