1. 程式人生 > >微服務以及SOA架構

微服務以及SOA架構

共享 項目 部署 業務 輕量級 應用 劃分 依賴 技術選型

Docker

Docker解決了微服務架構下,服務的粒度細服務數量多所導致的開發環境搭建,部署以及運維成本高的問題,也可以大大降低隨著微服務數量增多所導致的節點數量增多的成本。

SOA vs 微服務

SOA:將服務分解成多個子系統來實現,粒度比較大,基於企業服務總線,集中式的服務架構,屬於單塊架構系統,相互依賴,部署復雜,集成方式依賴於SOAP/ESB/WS等重量級協議;

微服務則自底向上開展實施,一個系統被才分成多個粒度精細的服務,集成方式為HTTP/REST/JSON輕量級協議,無集中式總線,服務能夠獨立部署,特別是基於docker技術。

總的來說,微服務是傳統SOA的一個子集;

微服務vs共享庫

微服務通常與語言無關,平臺無關。

微服務提倡圍繞業務組織團隊,微服務的模式往往要求團隊成員更有多樣性的能力,不像傳統的安裝技術能力範疇劃分:前端,後端,用戶體驗UI等團隊。

微服務架構屬於產品導向,比傳統的項目導向使得團隊更有主人翁意識,負責整個服務的整個生命周期。從服務的分析,開發,測試,部署到運維每個環節都要有服務的團隊成員來負責。

實際上我可以這樣理解:每個服務都是一個scrum團隊,有前端ui,有前後端開發,有測試,有dba人員,是一個戰鬥的團隊。多個scrum team組成整個產品的master項目。

技術選型

對於傳統的單塊架構系統,最初的技術選型將嚴重制約限制將來的技術演進能力,如果想嘗試新的編程語言或者框架,是非常困難的。而微服務架構則可以依據評估服務的重要程度以及團隊的能力選擇一個服務作為試點切換語言或者框架,快速完成,成功後可以應用到所有的服務模塊,甚至就使用不同的語言和框架。

微服務以及SOA架構