1. 程式人生 > >微服務架構是一種解決方案

微服務架構是一種解決方案

企業應用架構演變: 單機程式->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 容器

  每個容器具有自己的使用者名稱空間

  依賴於基本的作業系統功能(如隔離服務)

  容器中的應用程式可以是用任何語言開發

  相互隔離