SOA/ESB架構升級之路:從微服務到ServiceMesh,再到Sermant
SOA/ESB架構是一種常見的企業級應用架構模式,它將應用分為多個服務,透過 ESB(企業服務匯流排)來進行服務間的通訊和整合。 SOA/ESB架構的優點是可以實現服務的複用、隔離和安全,但是也存在一些問題,如:
- ESB本身是一個單點故障,如果 ESB出現問題,會影響所有的服務
- ESB的效能和可擴充套件性受限於其硬體和軟體資源,如果服務數量和流量增加, ESB可能會成為瓶頸
- ESB的管理和維護成本較高,需要專業的團隊來進行配置、監控和調優
- ESB的功能和協議可能不夠靈活和標準化,導致服務間的耦合度較高
隨著雲端計算和容器技術的發展, SOA/ESB架構模式在目前公有云上的典型參考架構是將應用部署在 Kubernetes中,透過 Ingress來暴露外部訪問入口,透過 Service來定義內部服務發現和負載均衡,透過 ConfigMap和 Secret來管理配置和敏感資訊。這種架構模式相比於傳統的 SOA/ESB架構,有以下優勢:
- Kubernetes提供了高可用、彈性伸縮、自愈等特性,可以保證應用的穩定性和可靠性
- Kubernetes支援多種雲廠商和平臺,可以實現應用的跨雲部署和遷移
- Kubernetes提供了豐富的生態系統,可以整合各種開源或商業的工具和服務,如監控、日誌、鏈路追蹤等
然而, SOA/ESB架構雖然在隔離性、安全性上存在一定優點,但是短板也非常明顯。首先,應用之間仍然需要透過 ESB來進行通訊和整合,這會增加網路延遲和複雜度,也會降低應用的自治性和靈活性。其次, ESB仍然是一個單點故障和效能瓶頸,如果 ESB出現問題或者無法滿足流量需求,會影響整個系統的可用性和效率。最後, ESB仍然需要專業的團隊來進行管理和維護,這會增加運維成本和風險。
為瞭解決這些問題,許多企業開始嘗試對 SOA/ESB架構進行改造,從微服務到 ServiceMesh,再到 Sermant。
微服務是一種輕量級的服務架構模式,它將應用拆分為多個小而獨立的服務,每個服務負責一個單一的業務功能,並且透過輕量級的協議(如 HTTP、 REST、 gRPC等)來進行通訊。微服務的優點是可以實現服務的高內聚、低耦合、快速迭代、獨立部署等。但是微服務也帶來了一些挑戰,如:
- 服務數量增加導致管理複雜度增加
- 服務間通訊需要處理網路不可靠、超時重試、負載均衡等問題
- 服務間需要實現統一的認證、授權、限流、熔斷等功能
- 服務間需要實現跨服務的監控、日誌、鏈路追蹤等功能
為瞭解決這些挑戰, ServiceMesh應運而生。 ServiceMesh是一種基於代理模式的微服務架構,它將服務間的通訊、治理、監控等功能從應用程式碼中剝離出來,交由一個獨立的代理(如 Envoy)來處理。 ServiceMesh的優點是可以實現服務的自治性、靈活性、可觀察性和安全性,同時降低了應用開發和運維的複雜度。但是 ServiceMesh也存在一些問題,如:
- 引入了額外的代理,可能會增加網路延遲和資源消耗
- 需要對應用進行一定程度的改造,以適應 ServiceMesh的通訊和治理模式
- 需要學習和掌握新的技術和工具,如 Istio、 Linkerd等
Sermant是一種基於 Java Agent的服務治理框架,它透過位元組碼增強技術來實現服務的動態注入和治理。 Sermant的優點是可以在不改變應用程式碼的前提下,實現服務的註冊發現、負載均衡、熔斷降級、認證授權等功能,同時避免了 ServiceMesh中代理帶來的效能損耗。 Sermant的核心思路如下:
1. 使用 Java Agent來動態注入服務治理邏輯,無需修改應用程式碼
2. 採用 AOP(面向切面程式設計)方式實現服務的攔截和增強,避免了 sidecar模式的效能損耗
3. 提供靈活的配置和擴充套件機制,支援多種服務治理策略和外掛
採用 Sermant對 SOA/ESB架構進行升級的步驟如下:
1. 準備工作:確認應用支援 Sermant框架,安裝 Sermant Injector
2. 釋出新版本的應用,攜帶 Sermant Java Agent
3. 在配置中心,將應用加入白名單,實現灰度釋出
4. 逐步將其他應用升級為攜帶 Sermant Java Agent的版本,加入白名單
5. 刪除應用的舊版本,完成升級
總之, SOA/ESB架構升級之路從微服務到 ServiceMesh,再到 Sermant,是一種逐步演進和最佳化的過程。透過採用 Sermant框架,企業和組織可以更快速地實現雲原生的微服務架構改造,提高業務運營效率和降低成本。同時, Sermant框架在效能、靈活性和易用性方面具有較大的優勢,值得關注和嘗試。
當前 Sermant已在華為云云服務 CSE中被整合,使用者可以在 華為雲 CSE雲服務中使用相關功能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70022886/viewspace-2946259/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體架構方面基礎-ESB \SOA \GEO-ESB架構
- SOA架構和微服務架構的區別架構微服務
- 在微服務中引入ESB使SOA重獲新生微服務
- XView 架構升級之路View架構
- SOA架構和微服務架構的區別是什麼?架構微服務
- 單體到微服務架構的涅槃重生之路?微服務架構
- 從單體架構到分散式微服務架構的思考架構分散式微服務
- 清晰架構(Clean Architecture)的Go微服務—重大升級架構Go微服務
- 下一代的微服務架構基礎是ServiceMesh?微服務架構
- 架構師成長之路也該瞭解的新一代微服務技術-ServiceMesh(上)架構微服務
- 微服務架構—服務降級微服務架構
- 從單體架構升級到微服務,在程式碼層面應注意的一些問題架構微服務
- 老闆:把系統從單體架構升級到叢集架構!架構
- SoundCloud從SOA轉換到微服務後加速了交付進度Cloud微服務
- 從單體到微服務,軟體架構演化總覽微服務架構
- 服務架構學習與思考(12):從單體架構到微服務架構的演進歷程架構微服務
- spring微服務架構設計與輕量級微服務架構及最佳部署Spring微服務架構
- Soa: 一個輕量級的微服務庫微服務
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- 奈飛架構Netflix從單體到微服務演變圖架構微服務
- 從 Spring Cloud 開始談一談微服務架構的實踐之路SpringCloud微服務架構
- 通俗地理解面向服務的架構(SOA)以及微服務之間的關係架構微服務
- 傳統應用系統架構向微服務應用架構升級的實戰案例微服務應用架構
- Spring Cloud構建微服務架構-Hystrix服務降級SpringCloud微服務架構
- 企業應用架構演化探討:從微服務到Service Mesh應用架構微服務
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 從跑步小白到馬拉松、再到百公里越野跑的晉級之路
- 微服務2:微服務全景架構微服務架構
- 應用量化時代 | 微服務架構的服務治理之路微服務架構
- 跟著《架構探險》學輕量級微服務架構 (一)架構微服務
- 微服務架構:構建PHP微服務生態微服務架構PHP
- 朱曄的網際網路架構實踐心得S2E4:小議微服務的各種玩法(古典、SOA、傳統、K8S、ServiceMesh)架構微服務K8S
- 微服務架構初探微服務架構
- 微服務 dubbospring 架構微服務Spring架構
- 微服務架構基礎之輕量級部署微服務架構
- 單體架構&微服務架構&中臺服務架構架構微服務
- 架構演進之「微服務架構」架構微服務
- 架構之:微服務架構漫談架構微服務