單體架構,SOA,微服務

00潤物無聲00發表於2017-08-13

架構演進

單體架構
SOA
微服務


單體架構

一個歸檔包包含了應用所有功能的應用程式, 我們通常稱之為單體應用。 
架構單體應用的架構風格, 我們稱之為單體架構, 這是一種比較傳統的架構風格。

單體架構的缺點

  複雜性逐漸變高
  技術債務逐漸上升
  部署速度逐漸變慢
  阻礙技術創新
  無法按需伸縮


SOA

面向服務的架構(SOA)是一個元件模型,它將應用程式的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平臺、作業系統和程式語言。這使得構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行互動。
SOA是一種粗粒度、鬆耦合服務架構,服務之間通過簡單、精確定義介面進行通訊,不涉及底層程式設計介面和通訊模型。


微服務


  微服務架構風格這種開發方法,是以開發一組小型服務的方式來開發一個獨立的應用系統的。
  其中每個小型服務都執行在自己的程式中,並經常採用HTTP資源API這樣輕量的機制來相互通訊。
  這些服務圍繞業務功能進行構建,並能通過全自動的部署機制來進行獨立部署。
  這些微服務可以使用不同的語言來編寫,並且可以使用不同的資料儲存技術。
  對這些微服務我們僅做最低限度的集中管理


微服務特點:

  1. 每個微服務可獨立執行在自己的程式裡;
  2. 一系列獨立執行的微服務共同構建起了整個系統;
  3. 每個服務為獨立的業務開發,一個微服務一般完成某個特定的功能,比如:訂單管理、使用者管理等;
  4. 微服務之間通過一些輕量的通訊機制進行通訊,例如通過REST API或者RPC的方式進行呼叫。


微服務優點:

  易於開發和維護
  啟動較快
  區域性修改容易部署
  技術棧不受限
  按需伸縮
  DevOps



微服務挑戰

  運維要求較高
  分散式的複雜性
  介面調整成本高
  重複勞動



微服務設計原則
  單一職責原則
  服務自治原則
  輕量級通訊原則
  介面明確原則










相關文章