系統架構的演變


系統架構的演變

隨着互聯網的發展,網站應用的規模不斷擴大,常規的應用架構已無法應對,分布式服務架構以及微服務架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。

單體應用架構

Web應用程序發展的早期,大部分web工程(包含前端頁面,web層代碼,service層代碼,dao層代碼)是將所有的功能模塊,打包到一起並放在一個web容器中運行。
比如搭建一個電商系統:客戶下訂單,商品展示,用戶管理。這種將所有功能都部署在一個web容器中運行的系統就叫做單體架構。
優點:
  所有的功能集成在一個項目工程中
  項目架構簡單,前期開發成本低,周期短,小型項目的首選。
缺點:
  全部功能集成在一個工程中,對於大型項目不易開發、擴展及維護。
  系統性能擴展只能通過擴展集群結點,成本高、有瓶頸。
  技術棧受限

垂直應用架構

  當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率
優點:
  項目架構簡單,前期開發成本低,周期短,小型項目的首選。
  通過垂直拆分,原來的單體項目不至於無限擴大
  不同的項目可采用不同的技術。
缺點:
  全部功能集成在一個工程中,對於大型項目不易開發、擴展及維護。
  系統性能擴展只能通過擴展集群結點,成本高、有瓶頸。 

分布式SOA架構 

什么是SOA

SOA 全稱為 Service-Oriented Architecture,即面向服務的架構。
  它可以根據需求通過網絡對松散耦合的粗粒度應用組件(服務)進行分布式部署、組合和使用。一個服務通常以獨立的形式存在於操作系統進程中。
  站在功能的角度:把業務邏輯抽象成可復用、可組裝的服務,通過服務的編排實現業務的快速再生,
  目的:把原先固有的業務功能轉變為通用的業務服務,實現業務邏輯的快速復用。
通過上面的描述可以發現 SOA 有如下幾個特點:分布式、可重用、擴展靈活、松耦合

 SOA架構

當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求:
優點:
  抽取公共的功能為服務,提高開發效率
  對不同的服務進行集群化部署解決系統壓力
  基於ESB/DUBBO減少系統耦合
缺點:
  抽取服務的粒度較大
  服務提供方與調用方接口耦合度較高 

微服務架構

優點:
  通過服務的原子化拆分,以及微服務的獨立打包、部署和升級,小團隊的交付周期將縮短,運維成本也將大幅度下降
  微服務遵循單一原則。微服務之間采用Restful等輕量協議傳輸。
缺點:
  微服務過多,服務治理成本高,不利於系統維護。
  分布式系統開發的技術成本高(容錯、分布式事務等)。 

SOA與微服務的關系

SOA( Service Oriented Architecture )“面向服務的架構”:他是一種設計方法,其中包含多個服務, 服務之間通過相互依賴最終提供一系列的功能。一個服務 通常以獨立的形式存在與操作系統進程中。各個服務之間 通過網絡調用。
 
微服務架構:其實和 SOA 架構類似,微服務是在 SOA 上做的升華,微服務架構強調的一個重點是“業務需要徹底的組件化和服務化”,原有的單個業務系統會拆分為多個可以獨立開發、設計、運行的小應用。這些小應用之間通過服務完成交互和集成。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM