衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分布式政企應用如何快速實現云原生的微服務架構改造

IT科技蘇辭 ? 來源:IT科技蘇辭 ? 作者:IT科技蘇辭 ? 2023-04-17 15:17 ? 次閱讀

隨著數字化時代的快速發展,企業和組織正面臨著如何在保持敏捷和靈活的同時,提高業務運營效率和降低成本的巨大挑戰。為了應對這些挑戰,許多企業開始采用面向服務的架構(SOA)和企業服務總線(ESB)來構建和集成復雜的應用系統。然而,隨著云計算和微服務等新技術的出現,SOA/ESB架構也面臨著一些問題和挑戰。本文將對SOA/ESB架構,在Java語言場景下,如何朝云原生ServiceMesh架構演進的問題進行探討。

SOA/ESB架構簡介和問題概覽

SOA(Service-Oriented Architecture,面向服務的架構)是一種軟件架構設計方法,它將應用程序的功能模塊化為一組可重用的服務,這些服務可以通過網絡進行調用和組合,以支持業務流程的執行。ESB(Enterprise Service Bus,企業服務總線)是SOA架構中的關鍵組件,它提供了一種用于連接和集成各種服務的中間件平臺。

SOA/ESB架構模式在目前公有云上的典型參考架構,以華為云為例,其使用到的典型云服務為彈性負載均衡(ELB)和彈性伸縮(AS,包含ECS)。在這種場景下,需要發起調用的客戶端程序,通過配置好的域名或地址,直接調用到ELB上,通過ELB去調用到后端的ECS服務器。ELB上需要配置后端服務器的多個IP地址。當然,一般這類操作可以簡化為添加某類彈性伸縮組。這樣,當ECS發生彈性伸縮時管理員無需處理ELB配置,ELB即可自動刷新ECS的IP列表的變化。

SOA/ESB架構雖然在隔離性、安全性上存在一定優點,但是短板也非常明顯。主要包括性能和資源開銷以及運維成本。相對微服務架構,SOA/ESB架構上網絡增加了額外一跳,而且ELB的引入也會導致資源的額外消耗增多。此外,額外引入了一個ELB的組件,因此在微服務之間調用時,瓶頸在哪里,ELB是否需要擴縮容,都是問題。

微服務和云原生架構改造方法和問題

對于如何改造SOA/ESB架構,朝微服務架構或云原生架構演進,業界也有很多方法。主要是以下兩類:

1. 通過修改代碼,將應用改造為微服務架構。例如直接在代碼中引入比如SpringCloud的服務注冊發現和負載均衡等組件。當然,這種改造往往也并不簡單,主要取決于現有應用已采用的開發框架等。比如應用本身沒有采用spring來進行開發,那么直接采用SpringCloud可能會為應用帶來海量的改造成本。

2. 采用istio方案,通過有限改造應用,將架構升級為ServiceMesh架構。之所以該方案說是有限改造,而不是無改造,也是因為在服務調用方式上,istio方案對應用并不是完全無限制。其至少需要在客戶端將調用的http調用地址改造成為k8s原生的服務地址,調用的服務治理才能被envoy有效接管。當然,改造完畢后,用戶在接下來在面向邊車的性能衰減,更復雜的調用運維問題上,恐怕一個也不會少。

綜上所述,兩種方案都存在比較明顯的短板。接下來分析下采用Sermant方式進行架構改造,如何彌補上述兩種方案的短板。

Sermant對SOA/ESB架構升級的思路

采用Sermant對SOA/ESB架構升級,本質上的最后的架構終態是Service-Mesh。但是因為采用的方法稍有不同,從而導致方案在性能和運維問題上都不存在短板。主要是以下兩點:

1. 首先,Sermant采用Java Agent來動態注入增強的服務邏輯治理,因此應用側理論可以做到完全不用改代碼。

2. 其次,由于Sermant的核心邏輯是以AOP (面向切面編程) 方式,Java Agent和業務屬于同一進程,因此在性能方面不存在sidecar形態的特別大的損耗。

在核心技術點上,Sermant改造方案的功能主要有以下幾個方面:

1. 內置的服務注冊發現機制。插件本身會帶服務注冊功能,在Provider應用啟動的時候自動到注冊中心進行服務注冊。在Consumer應用進行URL服務調用的時候,通過微服務服務發現+負載均衡機制替代原先的服務直調。

2. 域名到服務名(有時也稱應用名)的轉換。服務發現時,由于原先的調用采用URL直調,并不包含應用信息。這就需要一個調用關系到應用名的映射。對于這塊內容,未來我們計劃做成了一個動態配置,存儲到配置中心里。這樣當有應用需要發起調用時,Sermant直接將URL轉換成應用名,就可以在注冊中心獲取響應的應用IP列表。

3. 增強的客戶端側負載均衡、重試、隔離、降級機制。通過URL獲取Provider應用名后,由于在改造過程中,不用Provider應用并不是同批次發布攜帶Sermant Java Agent,因此還需要有個白名單機制,來配合灰度發布。

4. 對于一些必要的東西向流量的治理能力,如服務間的3A認證等,也需要進一步在Sermant端補齊。

采用Sermant對SOA/ESB架構升級的方案實操

應用改造在具體局點上不可能一蹴而就,因此在具體上實施上肯定是一個慢慢灰度的過程。以Kubernetes容器場景為例,介紹下在上百個微服務應用上千實例的情況下,如何采用Sermant對SOA/ESB基于灰度進行安全可控的云原生架構升級。

以下為準備工作:

1. 準備步驟一:自身應用是否支持。當前Sermant支持的微服務升級的Java框架可以在該文檔中查詢。如未支持,可以考慮給社區提Issue解決。

2. 準備步驟二:在Kubernetes中安裝Injector,方便以非侵入方式讓Java應用攜帶Sermant Java Agent。具體安裝方法可以參考Sermant官方文檔。

接下來,詳細介紹實施過程:

1. 在Kubernetes中對新版本的App進行發布。新版本的App需要攜帶Sermant Java Agent,可以通過在Kubernetes的Deployment或者StatefulSet中添加annotations來實現。例如:

```

annotations:

sermant.injector.io/inject: "true"

```

2. 在配置中心,將App加入到白名單中。這樣,當Consumer應用發起調用時,只有在白名單中的Provider應用才會被調用。這樣可以確保在灰度發布過程中,不會出現因為部分應用未升級導致的問題。

3. 驗證成功后,可以逐步將其他App升級為攜帶Sermant Java Agent的版本,并將其加入到白名單中。最后,刪除App的舊版本。

Sermant作為專注于服務治理領域的字節碼增強框架,致力于提供高性能、可擴展、易接入、功能豐富的服務治理體驗。通過采用Sermant對SOA/ESB架構進行升級,企業和組織可以更快速地實現云原生的微服務架構改造,從而提高業務運營效率和降低成本。

本文主要介紹了SOA/ESB架構的簡介和問題,以及如何使用Sermant對SOA/ESB架構進行升級。文章認為Sermant采用Java Agent來動態注入增強的服務邏輯治理,并且其核心邏輯是以AOP (面向切面編程) 方式,因此在性能方面不存在sidecar形態的特別大的損耗。同時,Sermant方案在實際操作中也可以實現灰度發布,確保應用升級過程的安全可控。因此,對于分布式政企應用如何快速實現云原生的微服務架構改造,Sermant方案值得關注和嘗試。

當前Sermant已在華為云云服務CSE中被集成,用戶可以在華為云CSE云服務中使用相關功能。

審核編輯黃宇


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SOA
    SOA
    +關注

    關注

    1

    文章

    294

    瀏覽量

    27574
  • ESB
    ESB
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8878
  • 云原生
    +關注

    關注

    0

    文章

    252

    瀏覽量

    7986
收藏 人收藏

    評論

    相關推薦

    云原生AI服務怎么樣

    云原生AI服務,是指采用云原生的原則和技術來構建、部署和管理人工智能應用及工作負載的方法和模式。那么,云原生AI服務怎么樣呢?下面,AI部落
    的頭像 發表于 01-23 10:47 ?112次閱讀

    云原生LLMOps平臺作用

    云原生LLMOps平臺是一種基于云計算基礎設施和開發工具,專門用于構建、部署和管理大型語言模型(LLM)全生命周期的平臺。以下,是對云原生LLMOps平臺作用的梳理,由AI部落小編整理。
    的頭像 發表于 01-06 10:21 ?110次閱讀

    基于ptp的分布式系統設計

    。 PTP概述 PTP是一種網絡時間同步協議,它允許網絡中的設備同步它們的時鐘。PTP基于IEEE 1588標準,旨在提供亞微秒級別的時間同步精度。PTP通過在網絡中傳播時間信息,并使用這些信息來校正本地時鐘,從而實現精確的時間同步。 系統架構 基于PTP的
    的頭像 發表于 12-29 10:09 ?165次閱讀

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據權限與基礎數據

    設備文件訪問實現文件的遷移,難以獲取文件同步完成的時間。為了保證更高的成功率,文件的遷移不建議繼續通過該方式實現,推薦使用分布式數據對象攜帶資產的方式。開發者此前通過跨設備文件訪問實現
    發表于 12-24 09:40

    寶藏級微服務架構工具合集

    寶藏級熱門微服務架構工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot簡化了微服務
    的頭像 發表于 12-21 16:33 ?231次閱讀

    什么是云原生MLOps平臺

    云原生MLOps平臺,是指利用云計算的基礎設施和開發工具,來構建、部署和管理機器學習模型的全生命周期的平臺。以下,是對云原生MLOps平臺的介紹,由AI部落小編整理。
    的頭像 發表于 12-12 13:13 ?163次閱讀

    k8s微服務架構就是云原生嗎?兩者是什么關系

    k8s微服務架構就是云原生嗎?K8s微服務架構并不等同于云原生,但兩者之間存在密切的聯系。Kub
    的頭像 發表于 11-25 09:39 ?197次閱讀

    SSR與微服務架構的結合應用

    隨著互聯網技術的快速發展,前端技術棧不斷更新迭代,后端架構也經歷了從單體應用到微服務的變革。在這個過程中,服務端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術,與
    的頭像 發表于 11-18 11:34 ?396次閱讀

    分布式通信的原理和實現高效分布式通信背后的技術NVLink的演進

    大型模型的大小已經超出了單個 GPU 的范圍。所以就需要實現跨多個 GPU 的模型訓練,這種訓練方式就涉及到了分布式通信和 NVLink。 當談及分布式通信和 NVLink 時,我們進入了一個引人入勝且不斷演進的技術領域,下面我
    的頭像 發表于 11-18 09:39 ?627次閱讀
    <b class='flag-5'>分布式</b>通信的原理和<b class='flag-5'>實現</b>高效<b class='flag-5'>分布式</b>通信背后的技術NVLink的演進

    微服務架構與容器云的關系與區別

    微服務架構與容器云密切相關又有所區別。微服務將大型應用拆分為小型、獨立的服務,而容器云基于容器技術,為微服務提供構建、發布和運行的平臺。區別
    的頭像 發表于 10-21 17:28 ?282次閱讀

    云原生和非云原生哪個好?六大區別詳細對比

    云原生和非云原生各有優劣,具體選擇取決于應用場景。云原生利用云計算的優勢,通過微服務、容器化和自動化運維等技術,提高了應用的可擴展性、更新速度和成本效益。非
    的頭像 發表于 09-13 09:53 ?467次閱讀

    京東云原生安全產品重磅發布

    “安全產品那么多,我怎么知道防住了?”“大家都說自己是云原生的,我看都是換湯不換藥”在與客戶溝通云原生安全方案的時候,經常會遇到這樣的吐槽。越來越的客戶已經開始了云原生化的技術架構
    的頭像 發表于 07-26 10:36 ?538次閱讀
    京東<b class='flag-5'>云原生</b>安全產品重磅發布

    從積木到裝配云原生安全

    云原生安全風險 隨著云原生架構快速發展,核心能力逐漸穩定,安全問題日趨緊急。在云原生安全領域不但有新技術帶來的新風險,傳統IT基礎設施下的
    的頭像 發表于 07-26 10:35 ?349次閱讀
    從積木<b class='flag-5'>式</b>到裝配<b class='flag-5'>式</b><b class='flag-5'>云原生</b>安全

    基于DPU的云原生裸金屬服務快速部署及存儲解決方案

    云原生技術迅速發展的當下,容器技術因其輕量級、可移植性和快速部署的特性而成為應用部署的主流選擇,但裸金屬服務器依然有其獨特的價值和應用場景,是云原生
    的頭像 發表于 06-27 10:41 ?2558次閱讀
    基于DPU的<b class='flag-5'>云原生</b>裸金屬<b class='flag-5'>服務</b><b class='flag-5'>快速</b>部署及存儲解決方案

    HarmonyOS開發實例:【分布式數據服務

    分布式數據服務(Distributed Data Service,DDS)為應用程序提供不同設備間數據分布式的能力。
    的頭像 發表于 04-18 10:18 ?795次閱讀
    HarmonyOS開發實例:【<b class='flag-5'>分布式</b>數據<b class='flag-5'>服務</b>】
    百家乐玩家技巧分享| 大世界百家乐赌场娱乐网规则| 去澳门百家乐的玩法技巧和规则 | 百家乐官网扑| 百家乐试玩1000元| 新葡京线上娱乐| 百家乐官网公式书| 百家乐ag厅投注限额| 爱玩棋牌下载| 百家乐官网三宝| 百家乐软件稳赚| 爱博彩| 香港百家乐官网马书| 百家乐路有几家| 西盟| 百家乐群东方鸿运| 998棋牌游戏| 网上的百家乐官网是真是假 | 乐百家娱乐| 劳力士百家乐官网的玩法技巧和规则 | 百家乐翻天youtube| 飞7棋牌游戏| 太原百家乐官网的玩法技巧和规则 | 固安县| 百家乐庄闲的概率| 网上娱乐城注册送现金| 基础百家乐官网的玩法技巧和规则 | 双桥区| 百家乐美女荷官| 乐透乐博彩论坛3d| 亚洲百家乐官网的玩法技巧和规则| 威尼斯人娱乐网站安全吗| 网上赌百家乐官网可信吗| 澳门百家乐赢钱公式不倒翁| 线上老虎机| 百家乐娱乐城玩法| 雅安市| 澳门百家乐官网www.bjbj100.com| 大发线上娱乐| 澳门百家乐博彩网| 尊龙国际娱乐|