開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

螞蟻金服分散式架構發表於2019-01-23

4月,螞蟻金服自主研發的分散式中介軟體(Scalable Open Financial Architecture,以下簡稱 SOFA )啟動開源計劃,並開放多個元件,(相關背景請點選連結閱讀《開源 |螞蟻金服啟動分散式中介軟體開源計劃,用於快速構建金融級雲原生架構》、《開源 | 螞蟻金服分散式中介軟體開源第二彈:豐富微服務架構體系》),這一系列的動作受到大家的關注和支援,SOFA社群也日益壯大。

在兩輪開源之後,螞蟻金服自主研發的分散式中介軟體(Scalable Open Financial Architecture,以下簡稱 SOFA )在今天推出了第三輪的開源產品:SOFAMesh。和前兩輪開源的歷經多年沉澱和打磨的成熟產品不同,本輪的開源主角SOFAMesh,將探索一條和以往產品有所不同的開源道路。下面我們就來看看到底有哪些不同吧!

開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

開源探索之路

SOFAMesh嘗試在以下幾個方面進行自我突破和勇敢探索:

  1. 全新的技術領域

    Service Mesh是目前技術社群最為炙手可熱的新技術方向,有下一代微服務的明顯趨勢。但是目前Service Mesh技術還處於發展早期,暫時還沒有成熟的產品,尤其缺乏大規模的落地實踐。

  2. 較早的開源時間

    在上述背景下,我們選擇了將啟動不久的Service Mesh產品開源在開發早期,也就是還未成熟之時,就對社群開放,開放原始碼並尋求社群合作。

  3. 更加開放的態度

    在SOFAMesh上,我們願意以開源共建的方式來和社群一起推進Service Mesh技術的更好發展和實現落地實踐,共同打造一個技術先進,功能豐富,具備良好的效能和穩定性,可以實實在在的生產落地的優秀產品。歡迎國內技術社群的朋友們和我們開展不同層面的交流與合作。

  4. 務實的產品路線

    SOFAMesh在產品路線上,選擇了跟隨社群主流,我們選擇了目前Service Mesh中最有影響力和前景的Istio。SOFAMesh會在Istio的基礎上,提升效能,增加擴充套件性,並在落地實踐上做探索和補充,以彌補目前Istio的不足,同時保持與Istio社群的步驟一致和持續跟進。

SOFAMesh介紹

SOFAMesh將在相容Istio整體架構和協議的基礎上,做出部分調整:

開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

  1. 使用Golang語言開發全新的Sidecar,替代Envoy

  2. 為了避免Mixer帶來的效能瓶頸,合併Mixer部分功能進入Sidecar

  3. Pilot和Citadel模組進行了大幅的擴充套件和增強

我們的目標:打造一個更加務實的Istio落地版本!

備註:以上架構調整的細節以及我們做調整的出發點和原因,請瀏覽 螞蟻金服大規模微服務架構下的Service Mesh探索之路(可點選檢視) 一文,有非常詳盡的解釋。

開源內容

在本輪開源中,我們將推出SOFAMesh目前正在開發的兩大模組:MOSN和SOFAPilot。

1.MOSN

SOFAMesh中Golang版本的Sidecar,是一個名為MOSN(Modular Observable Smart Netstub)的全新開發的模組,實現Envoy的功能,相容Envoy的API,可以和Istio整合。

開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

此外,我們會增加對SOFARPC、Dubbo等通訊協議的支援,以便更好的迎合國內使用者包括我們自身的實際需求。

由於Sidecar相對獨立,而且我們也預期會有單獨使用MOSN的場景,因此MOSN的程式碼倉庫是獨立於SOFAMesh的,地址為:

https://github.com/alipay/sofa-mosn

歡迎大家使用,提供需求、反饋問題、貢獻程式碼或者合作開發。

2.SOFAPilot

我們將大幅擴充套件和增強Istio中的Pilot模組:

開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

  1. 增加SOFARegistry的Adapter,提供超大規模服務註冊和發現的解決方案

  2. 增加資料同步模組,以實現多個服務註冊中心之間的資料交換。

  3. 增加Open Service Registry API,提供標準化的服務註冊功能

MOSN和SOFAPilot配合,將可以提供讓傳統侵入式框架(如Spring Cloud,Dubbo,SOFA RPC等)和Service Mesh產品可以相互通訊的功能,以便可以平滑的向Service Mesh產品演進和過渡。

Pilot和後面會陸續開放的Mixer,Citadel等Istio模組,會統一存放在同一個從Istio Fork出來的程式碼倉庫中。未來會持續更新Istio最新程式碼,以保持和Istio的一致。


附錄

本文中提到的連結地址合輯:

開源 | 螞蟻金服分散式中介軟體開源第三彈: 下一代微服務SOFAMesh

歡迎關注,獲取最新分散式架構乾貨

歡迎大家共同打造 SOFAStack https://github.com/alipay


相關文章