螞蟻金服 SOFAStack 團隊:開源不是一錘子買賣 | 碼雲封面人物第 16 期


SOFAStack 團隊:包括 餘淮、善逝、丞1、碧遠

本期嘉賓:
SOFAStack 團隊:包括 餘淮、善逝、丞1、碧遠等人。
SOFAStack:螞蟻金服自主研發的金融級分佈式架構,包含了構建金融級雲原生架構所需的各個組件,是在金融場景裏錘鍊出來的最佳實踐,其中 SOFABoot、SOFARPC、SOFABolt 等三個組件得到碼雲 GVP 。

團隊與協做

你們先作個自我介紹吧

餘淮:我是螞蟻金服高級技術專家章耿,花名餘淮。2007 年畢業後,前後參與國網招投標平臺的系統開發、國網電子商務平臺開發。2012 年加入京東從事中間件開發,前後參加了京東服務框架 SAF 和 JSF 的建設,到後來負責服務與框架。

2016 年末,加入螞蟻金服中間件(SOFAStack 團隊)成爲開發框架組負責人。2018 年初開始參與 SOFAStack 開源,目前也是 SOFAStack 總體開源負責人。git



善逝:我是張奇龍,花名善逝,2016 年清華大學碩士畢業進入螞蟻金服,負責框架 SOFABoot/SOFAArk 的開發。當時選擇來中間件團隊,理由其實挺單純的,但願可以深刻地瞭解學習支撐螞蟻金服這麼大致量的工程技術。程序員



丞一:我是來自螞蟻金服中間件團隊的林鑫,花名丞一,目前在螞蟻金服中間件負責消息中間件相關的開發工做,同時也是網絡通訊框架 SOFABolt 開源負責人。2012 年畢業後在蘑菇街從事大數據平臺和中間件相關的開發工做。2018 年初加入螞蟻金服中間件。當時但願能到一個更大的平臺,作一些更有挑戰的事情,加上從上大學開始就一直在杭州,因此天然而然地選擇了帶有金融屬性,對系統要求更加苛刻的螞蟻金服。


碧遠:我是來自螞蟻金服中間件團隊的雷志遠,花名碧遠,目前在螞蟻金服中間件負責 RPC 框架和 Mesh 研發的工做,同時也是 SOFARPC 開源負責人。2014 年從武大畢業後,加入螞蟻金服,在 2017 年以前,主要在支付團隊從事測試開發的工做,2017 年進入中間件團隊。由於我的的興趣更加偏向底層技術,另外對支撐螞蟻金服整個集團業務的基礎組件感興趣,因此選擇了加入螞蟻金服中間件團隊。
算法


 

大家的工做節奏是怎樣的?如何平衡開發效率與運維?

丞一:平常工做節奏中,大部分時間在思考和解決系統的各類異常場景,思考和設計系統會佔到平常工做四成左右的時間吧,去實現落地會佔四成,剩下一些時間處理一些運維和支持性工做。

從個人角度看,我喜歡從源頭上解決運維效率的問題。不少時候須要作的支持或者運維工做,每每是由於你的系統產品化作得不夠,或者 API 設計得不易理解,致使須要跟用戶去解釋,因此我會花更多的時間在系統的設計上,儘可能減小後續沒必要要的一些運維和支持工做。不可避免地,平常仍是會有一些運維、支持相關的工做,對於這部分工做會在天天儘可能固定的時間集中處理,並沉澱下來按期反饋到系統上,造成正向的循環來減小這部分工做。安全


做爲團隊負責人,作管理工做最大的感覺是什麼?管理工做與技術工做怎樣協調/融合?

餘淮:最大的感覺就是管理工做比純粹技術工做要難不少。一個最廣泛的狀況就是,大部分剛開始從純粹寫代碼到管理技術團隊的同窗,都無比但願回到只寫代碼的時候。

管理工做的本質是協調,管理的核心是人的行爲,要對全局計劃有合理安排並帶着團隊一塊兒前進。而技術工做則更多看重的是能力,例如在某個專業領域的專業性前瞻性等,也就是咱們說的深度和廣度。微信

因爲我所在的是一個技術型團隊,基本上算是技術驅動型,因此管理工做和技術工做是密不可分的。平時我在技術工做中須要利用本身的一些經驗與判斷,和你們一塊兒討論一些技術方向,在實施過程當中無需事無鉅細,相信團隊的力量,配合和協調團隊及外部資源,將咱們認定的技術方向落地掉。網絡



在螞蟻金服 SOFAStack 團隊裏,大家感覺到的自身的成長、變化有哪些?

丞一:變化多是更嚴謹、更關注細節了。在螞蟻金服的體量下,特別又是中間件這樣的基礎組件,產品的任何一個微小的問題可能會引發業務上的大故障,因此須要以更嚴謹的態度去關注到各個細節的問題。

SOFAStack 與開源

從 Service Oriented Fabric Architecture 到 Scalable Open Financial Architecture,SOFAStack 這個詞好像前後有過幾個不一樣的釋義?它還有什麼特別的含義嗎?

SOFAStack 架構由支付寶自 2007 年開始自主研發的 SOFA(Service Oriented Fabric Architecture) 框架發展而來,旨在解決 SOA 架構下的服務模塊化編排協做(Fabric)問題。SOFAStack 歷經了多代架構演進。在 2017 年,伴隨着螞蟻金服科技的總體對外開放,全稱正式升級成 Scalable Open Financial Architecture Stack 。

Scalable,以「異地多活」爲目標,使系統能在多個數據中心內任意擴展,提供機房級容災能力,保證業務連續性;Open,總體設計秉承「開放」原則,使新興架構向下兼容,能與經典架構有機融合,同時開放技術標準,擁抱開源生態;F 表明 Financial,即這個架構是金融級,安全、穩定、可靠是其內在的屬性,具有「分佈式事務」和「無損容災」能力,保證在分佈式架構下承受高併發交易,在系統擴展、容災恢復、更新發布時確保數據無損,服務可用。架構


SOFAStack 開源的平常開發流程是怎樣的?

在開發流程上,SOFAStack 的發佈基本上走的是小火車的開發模式,咱們會在某個版本拉起的時候基本確認好這個迭代的功能點、開發測試排期等。


SOFAStack 開源以前經歷了哪些大的迭代呢?

SOFAStack 開源以前已經在內部經歷了大的四代架構演進,每一代架構都和業務發展息息相關,都是在解決業務高速發展以及對業務持續性、數據一致性的極致追求而努力。這裏我簡單給下這些關鍵字:第一代是集中式的;第二代是分佈式、服務化、自研中間件;第三代的關鍵字是單元化、異地多活、彈性架構;第四代是國際化、科技開放,SOFAStack 也是在這個時間開源的。


開源 SOFAStack 是誰最早提出來的?爲何想到要開源它?有一個具體的時刻或是契機嗎?爲何選擇在 2018 年 4 月開源,而不是更早或更晚一些?

從 2015 年開始,螞蟻金服開啓了金融科技對外輸出的戰略,SOFAStack 也走出了螞蟻金服,甚至跨越了國界,被更多金融機構與合做夥伴所使用,如天弘基金、信美互信、南京銀行、PayTM、DANA 錢包等。在與合做夥伴以及客戶的溝通、合做過程當中,咱們發現了 SOFAStack 的理念和能力也正是不少金融行業的企業所須要的,你們或多或少正在規劃或者已經在作相似的東西,但缺少像螞蟻金服這麼大的流量來提供考驗,也缺少專業團隊的長期投入,更缺少豐富的金融場景和嚴苛的業務壓力來驅動技術持續發展。

在金融科技對外輸出的過程當中,咱們內部已經進行了必定程度的代碼重構,例如歷史兼容邏輯的剝離等。關於開源,內部一直有開源的討論,只是一直沒完全決定,直到 2017 年雙十一結束後正式決定開源。通過了一系列的準備,2018 年 4 月,SOFAStack 正式開源,由技術團隊進行平常維護和專門的團隊運營。目前 SOFAStack 在螞蟻金服有將近 2000 個應用,是被螞蟻金服實踐證明的一套框架,開源出去,讓更多的人去體驗、使用,對於 SOFAStack 的發展具有很大的意義。併發


爲 SOFAStack 的開源版本作了哪些工做?開源的過程順利嗎?遇到過哪些阻力?

爲了實現咱們開源「Open Core」的策略,咱們投入了大量的重構工做,以可擴展化的方式來層層構建 SOFAStack 的能力,保證 SOFAStack 的內部版本和開源的版本採用的是同一個內核。因此 SOFAStack 的內部版本就是在開源版本之上擴展了內部邏輯和歷史版本的兼容邏輯。

開源版本的核心邏輯內外是一致的,並在螞蟻金服的生產環境中被普遍使用,同時會隨着螞蟻金服自身業務訴求的驅動,不斷地演進。整個過程確定有遇到一些困難,特別是內部的一些歷史遺留代碼,以及對老邏輯的兼容,怎麼適配到新的擴展模式,但這些偏偏就考驗了咱們的技術能力,重構後咱們的代碼更加優雅,可維護性更強了。框架


大家在開源操做上有完整的規範和流程嗎?有的話可否分享出來?

螞蟻金服的代碼對內部都是開源的,而對外開源的時候是有流程的。在開源一個組件以前咱們須要先思考開源的目的、開源後的持續性、社區的建設計劃等。由於 開源不是一錘子買賣,特別是剛開源的時候須要持續投入才能保持社區的運轉。


社區對大家來講意味着什麼?給大家帶來了什麼?

中國有句老話「衆人拾柴火焰高」,SOFAStack 的各個組件通過螞蟻金服的業務錘鍊而生,可是畢竟場景有限,依靠開源社區的夥伴們,才能拓寬更多的技術服務場景。 社區對 SOFAStack 來講,意味着更多可能性和想象空間。

投入到社區中,咱們從鍵盤和屏幕前,走到了人羣中。社區裏有各類各類的人,有關注者、使用者、開發者,甚至是挑戰者。關注者能夠給 SOFAStack 帶來更多的想法和思考;使用者能夠 SOFAStack 在更多的業務場景下生產驗證,以提升項目質量;開發者能夠參與 SOFAStack 的建設,完善和加強 SOFAStack 的能力;挑戰者也可使項目良性發展,遇強則強。
less

除此以外,社區裏有不少優秀的開發者和開源項目,咱們也互相學習、分享、交流技術,目前咱們和 SkyWalking / ShardingSphere / Servicemesher / AntDesign 等項目和開源社羣都創建了良好的關係。



當初對開源後的項目有哪些期待?這些期待現在都達成了嗎?

當初開源的期待是但願更多人知道 SOFAStack,更多的開發者參與 SOFAStack,更多的用戶使用 SOFAStack,在貢獻給社區的同時,也期待社區、合做夥伴甚至客戶,都可以一塊兒參與共建,造成行業標準和最佳實踐。

目前 SOFAStack 在 Github 上一共收穫了 25600 Star,120+ Contributor 幫助共建,近 40 家企業用戶在生產環境使用 SOFAStack 的組件。其中 SOFARPC SOFABolt SOFABoot 三個組件得到了碼雲 GVP 。近日 SOFAStack 在由中國信息通訊研究院主辦的雲計算開源產業大會上還得到了 OSCAR 尖峯開源技術創新獎(自主研發)。能夠看到咱們當初的一些期待在你們認真開源、持續投入下仍是有一些收穫。固然,咱們還在開源的起步階段,接下來還將繼續努力,也很是歡迎社區的朋友一塊兒共建 SOFAStack。


前面提到 SOFAStack 目前被一些外國企業採用,同時在碼雲上拿到了幾個 GVP。大家如何看待軟件開源的「國際化」與「本土化」?怎麼樣才能在二者之間找到最佳點?

目前 SOFAStack 的代碼是同時放在了 Github 和 Gitee 上,咱們的文檔也是中英文雙語的,在更新文檔的時候必須作到同步。這裏也正好藉機感謝開源中國碼雲的承認, 我以爲開源和技術是無國界的,社區是開放的,咱們也很是感激國內外的開發者的關注。


SOFAStack 目前已進入 SOFA 5 階段,接下來它的重心將會放在哪裏?魯直曾在接受開源中國的採訪時表示 「Service Mesh 纔是將來」,那麼 Service Mesh 接下來會在 SOFAStack 中如何演進?

隨着 Cloud Native 等技術理念的推廣,咱們能夠看到社區有不少優秀的技術、架構、理念等,包括 Docker、Kubernetes、Service Mesh、Serverless 等等。SOFAStack 在這個階段的策略是 積極擁抱雲原生,咱們會在 Service Mesh、Serverless 持續探索,在內部生產落地,將演進的實踐開源出來。目前 Service Mesh 的數據平面部分咱們已經在 618 大促鏈路上上線了,多是國內目前最大規模的落地。接下來咱們將統一控制平面,探索更雲原生的架構方案。


除了將愈來愈多的組件逐步開放出來,SOFAStack 從此在開源上又會有怎樣的進一步行動?

下圖爲 SOFAStack 開源全景圖,其中橙色部分爲 SOFAStack 包含的開源組件,白色部分爲兼容或集成開源社區其它優秀的開源產品。

除了目前已開源的項目的持續維護外,咱們仍是會繼續開源更多的產品和實踐。在微服務組件上,下一步咱們可能會在動態配置上作一層統一封裝,以及和 Spring Cloud 的一些集成。而在雲原生方向上,咱們將繼續在內部落地 Service Mesh 和 Serverless,並將落地實踐開源出來。



代碼以外

寫代碼是一項創造性勞動,有沒有過靈感枯竭的時候?是怎樣度過瓶頸期的?工做之餘喜歡作些什麼來放鬆?

碧遠:有確定是有的,每天吃同樣的東西你也會想換口味的嘛。工做了一段時間,發現工做上的需求基本都能作完,在這段時間內,主動的接觸一些非工做自己的領域,可能容器內核,也多是算法理論,也有多是網絡底層,而後就發現,其實除了工做,我的還有很是多須要提高的。並且在這些內容上,也會獲取到一些靈感。更有利於工做。

工做之餘,我的主要是偶爾玩玩 Switch,在海拉魯大陸上割草炸魚。也會去看看電影。


平時有保持學習嗎?經過怎樣的方式?時間如何分配?

碧遠:有的,我的比較傳統,主要是訂閱了一些業界技術比較好的我的或者公司的博客 RSS,跟進一些業界你們在作的事情,而後就會去看看一些領域內比較經典的書,同時在Gitee 和 Github 上也會比較活躍。

時間上,沒有特別地安排過,主要仍是根據事情動態調整。


封面人物小檔案

  • 人物:SOFAStack 團隊
  • 專業:計算機
  • 開源時間:2018 年 4 月
  • 獎項:SOFAStack 在由中國信息通訊研究院主辦的雲計算開源產業大會上獲 OSCAR 尖峯開源技術創新獎(自主研發),SOFAMosn、SOFATracer 和 SOFARPC 進入 CNCF 雲原生全景圖,SOFARPC、SOFABolt 和 SOFABoot 三個組件得到碼雲 GVP
  • 團隊最愛活動:EAT/SLEEP/CODE With SOFAStack
  • 團隊聚餐最愛的菜式:肉、全部肉類
  • 團隊成員最愛的衣服: SOFAStack 定製 T 恤&衛衣


Copyright@ OSChina.NET

本頁刊發內容未經書面許可禁止轉載及使用

公衆號、報刊等轉載請聯繫受權

歡迎轉發朋友圈,投稿:gitee@oschina.cn

關注碼雲官方微信公衆號:碼雲Gitee

查看更多有趣的開源項目資訊,請前往: 碼雲開源項目廣場


碼雲 Gitee 往期《封面人物》精彩推薦


尤雨溪談Vue.js :締造自由與真我


相關文章
相關標籤/搜索