SOA/ESB架構升級之路:從微服務到ServiceMesh,再到Sermant

IT科技蘇辭發表於2023-04-17


SOA/ESB架構是一種常見的企業級應用架構模式,它將應用分為多個服務,透過 ESB(企業服務匯流排)來進行服務間的通訊和整合。 SOA/ESB架構的優點是可以實現服務的複用、隔離和安全,但是也存在一些問題,如:

- ESB本身是一個單點故障,如果 ESB出現問題,會影響所有的服務

- ESB的效能和可擴充套件性受限於其硬體和軟體資源,如果服務數量和流量增加, ESB可能會成為瓶頸

- ESB的管理和維護成本較高,需要專業的團隊來進行配置、監控和調優

- ESB的功能和協議可能不夠靈活和標準化,導致服務間的耦合度較高

隨著雲端計算和容器技術的發展, SOA/ESB架構模式在目前公有云上的典型參考架構是將應用部署在 Kubernetes中,透過 Ingress來暴露外部訪問入口,透過 Service來定義內部服務發現和負載均衡,透過 ConfigMapSecret來管理配置和敏感資訊。這種架構模式相比於傳統的 SOA/ESB架構,有以下優勢:

- Kubernetes提供了高可用、彈性伸縮、自愈等特性,可以保證應用的穩定性和可靠性

- Kubernetes支援多種雲廠商和平臺,可以實現應用的跨雲部署和遷移

- Kubernetes提供了豐富的生態系統,可以整合各種開源或商業的工具和服務,如監控、日誌、鏈路追蹤等

然而, SOA/ESB架構雖然在隔離性、安全性上存在一定優點,但是短板也非常明顯。首先,應用之間仍然需要透過 ESB來進行通訊和整合,這會增加網路延遲和複雜度,也會降低應用的自治性和靈活性。其次, ESB仍然是一個單點故障和效能瓶頸,如果 ESB出現問題或者無法滿足流量需求,會影響整個系統的可用性和效率。最後, ESB仍然需要專業的團隊來進行管理和維護,這會增加運維成本和風險。

為了解決這些問題,許多企業開始嘗試對 SOA/ESB架構進行改造,從微服務到 ServiceMesh,再到 Sermant

微服務是一種輕量級的服務架構模式,它將應用拆分為多個小而獨立的服務,每個服務負責一個單一的業務功能,並且透過輕量級的協議(如 HTTPRESTgRPC等)來進行通訊。微服務的優點是可以實現服務的高內聚、低耦合、快速迭代、獨立部署等。但是微服務也帶來了一些挑戰,如:

服務數量增加導致管理複雜度增加

服務間通訊需要處理網路不可靠、超時重試、負載均衡等問題

服務間需要實現統一的認證、授權、限流、熔斷等功能

服務間需要實現跨服務的監控、日誌、鏈路追蹤等功能

為了解決這些挑戰, ServiceMesh應運而生。 ServiceMesh是一種基於代理模式的微服務架構,它將服務間的通訊、治理、監控等功能從應用程式碼中剝離出來,交由一個獨立的代理(如 Envoy)來處理。 ServiceMesh的優點是可以實現服務的自治性、靈活性、可觀察性和安全性,同時降低了應用開發和運維的複雜度。但是 ServiceMesh也存在一些問題,如:

引入了額外的代理,可能會增加網路延遲和資源消耗

需要對應用進行一定程度的改造,以適應 ServiceMesh的通訊和治理模式

需要學習和掌握新的技術和工具,如 IstioLinkerd

Sermant是一種基於 Java Agent的服務治理框架,它透過位元組碼增強技術來實現服務的動態注入和治理。 Sermant的優點是可以在不改變應用程式碼的前提下,實現服務的註冊發現、負載均衡、熔斷降級、認證授權等功能,同時避免了 ServiceMesh中代理帶來的效能損耗。 Sermant的核心思路如下:

1. 使用 Java Agent來動態注入服務治理邏輯,無需修改應用程式碼

2. 採用 AOP(面向切面程式設計)方式實現服務的攔截和增強,避免了 sidecar模式的效能損耗

3. 提供靈活的配置和擴充套件機制,支援多種服務治理策略和外掛

採用 SermantSOA/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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章