微服務架構的雲端應用

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

什麼是微服務架構

微服務架構(Microservices Architecture)是將應用拆分成小業務單元進行開發和部署,使用輕量級協議通訊,通過協同工作實現應用邏輯的架構模式。

靈活、穩定、省資源是微服務架構的主要優點——

  • 可獨立部署、升級、替換、伸縮
  • 自由選擇開發語言
  • 高效利用資源
  • 故障隔離

服務多、管理難度大是微服務架構的不足之處——

  • 服務多,帶來更多操作
  • 管理複雜度提升
  • 部署難度加大

但總體來說,微服務架構是非常迷人的,否則也不會得到像Twitter、Netflix、Amazon、eBay等知名大廠的青睞。


twitter微服務架構

微服務架構模式

微服務架構模式主要可分為:

  • 彙總模式
  • 代理模式
  • 資源共用模式
  • 非同步訊息模式

彙總模式


微服務架構彙總模式

彙總模式即多個服務彙總到一個服務,稱之為彙總服務。彙總服務最常見的表現是Web服務,主要功能為頁面表現,後端服務為純業務功能服務。也就是說,彙總模式下擴充業務只需增加一個新的後端微服務即可。

彙總服務符合DRY原則,可以是一個更高層次的組合微服務,增加商務邏輯後進一步發布成一個新的微服務,同時每個服務都有自己的緩衝和資料庫。

彙總模式是微服務架構中最常用的模式。

代理模式


微服務架構代理模式

代理模式是一種特殊的彙總模式,即對外將服務統一封裝。代理模式可以僅僅委派請求,也可以進行資料轉換工作。

我們可以將代理模式比做通過收發室統一收發信件的小區,無論是外部請求還是內部資料服務,均由代理處理。

資源共用模式


微服務架構資源共用模式

微服務架構的資源共用模式可實現部分業務的邏輯分離、資料共用。

資源共用模式常用在“一體化架構”向“微服務架構”遷移的過渡階段,以及有資料一致性要求的兩個服務。

非同步訊息模式


微服務架構非同步訊息模式

微服務架構的非同步訊息模式適用於不需要同步的情境,如任務型服務,利用訊息佇列代替其他微服務架構模式所採用的REST請求及響應。

微服務架構帶來的挑戰

  1. 服務部署的挑戰

    每個服務都需要獨立的代碼管理、版本管理、編譯構建、測試環境部署、生產環境部署、代碼復原等,人工管理大量微服務幾乎是一個不可能完成的任務。

  2. 服務紳縮的挑戰

    無狀態服務需要配置負載平衡和增加節點,具狀態服務需要擴充單個服務的資源。為了減少資源浪費,開發人員需要監控每個服務,並在必要的時候減少節點和資源。

  3. 服務高可用的挑戰

    每種服務的高可用策略都不一樣,這其中無狀態服務的管理相對簡單,而每個具狀態服務的管理則是一個難題。

  4. 服務容錯的挑戰

    任何一個服務的可用性都不是100%的,在分布式系統中,當某個依賴服務不可用時,系統自身也將不能工作。尤其是依賴大量服務的複雜的分布式系統,以來服務的可用性加上網路不穩定的因素,系統自身的可用性很可能無法得到令人滿意的保障。

  5. 依賴關係的挑戰

    如果將依賴設定檔寫在代碼中,需要重新部署才會生效,而設定檔還可能會汙染代碼。

  6. 服務監控的挑戰

    監控CPU還是負載?大量微服務的出現也是對服務監控的嚴峻考驗。

好雨的微服務架構解決方案

好雨的微服務架構解決方案核心思路為——

  • 簡化使用者操作
  • 微服務內部封裝、整體對外
  • 封裝技術、服務業務

好雨雲底層是通過Docker實現,並儘可能做到讓使用者感受不到Docker的使用體驗。在好雨雲,複雜特性被封裝在了內部,通過服務整體對外,使用者無需管理計算資源和網路資源。

服務部署


好雨雲端服務部署

好雨雲支援Java、Python、PHP、Ruby、Golang,Node.JS等主流開發語言,並支援Github、好雨託管倉庫等代碼倉庫。

服務伸縮


好雨雲端服務伸縮

好雨雲支援服務伸縮,其中水平伸縮用於無狀態的Server和Worker類服務,垂直伸縮用於有狀態的服務。

部分具狀態服務支援水平資料分割(Sharding),使用者只需要調整節點個數就可以了。

服務高可用


好雨雲端服務高可用

好雨雲通過高可用調度器,使無狀態服務、具狀態服務具備高可用特性。

依賴關係


好雨雲依賴關係

好雨雲的依賴關係解決方案類似於Spring的依賴注入,參數通過環境變數實現,調整服務的依賴關係只需要介面點擊即可完成。

服務容錯


好雨雲端服務容錯

好雨雲的服務容錯原理類似於保險絲,當某一服務變慢,達到斷路器的閥值,該服務將自動下線,不至於影響其他服務,而當延遲變小時,該服務逐步恢複。

使用非同步也可以達到服務容錯的效果,具體可參考CQRS模式。

服務監控


好雨雲端服務監控

好雨雲將平均回應時間、吞吐率、線上人數等業務指標用於服務監控。

用業務監控替代技術監控,實際情境中的服務監控得以變得簡單而易於理解。

即時效能分析


好雨雲單個REST服務的即時效能分析

最慢的SQL語句不一定是對資料庫影響最大的,好雨雲的即時效能分析通過CEP+log實現,從實際出發解決問題,開發人員可以很直觀的瞭解當前對系統影響最大的URL是哪個。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.