Apache Linkis入選孵化,微衆銀行開源之路獨行快,衆行遠

在王家衛執導的電影《東邪西毒》中,有這樣一句臺詞:“每個人都會經過這個階段,看見一座山,就想知道山的後面是什麼。我想告訴他,可能翻到山後,你會發覺沒什麼特別,回頭看,會覺得這邊更好。但是他不會相信。以他的性格,自己不試試是不會甘心的。”

1923年,在英國探險家喬治·馬洛裏準備攀登珠穆朗瑪峯前,記者問他爲什麼要攀登珠峯?他回覆說:“因爲山就在那裏。”在每個攀登者眼前,山就是遠方,他們不惜用手中的微光照亮衆人的前行之路。

如今,在愈發壯大的開源世界,同樣有一羣人,手持開源的火炬,踽踽前行。獨行快,衆行遠,他們並肩攜手,一同探索人類科技前沿的“無人區”,將開源的基因深深融入自身的企業文化。

在2019年就宣佈“全面開源”的微衆銀行便是代表之一。在2019年的金融科技日,微衆銀行一口氣發佈 10 款開源的技術、應用以及解決方案。同年,微衆銀行將一套一站式、金融級、全連通、開源開放的大數據平臺套件WeDataSphere逐步進行開源,其中就包括計算中間件 Linkis等核心組件,形成了業界領先的大數據開源生態。

2021年8月,Linkis 成功進入國際頂級開源組織 Apache 軟件基金會孵化器,完成關鍵一步。一路走來,Linkis是如何在兩年內取得關鍵性階段成果的? 


初識 Linkis:重新出發,終見微光


回顧往昔,微衆銀行大數據平臺負責人邸帥和大數據技術專家尹強的記憶依然深刻,“Linkis在微衆內部,已經過5年的迭代。其5年前的最原始版本,是內部自研的一個叫Remote Server 的後臺服務,只是用來輔助解決WebIDE 這一單一數據腳本開發工具的任務高併發,和多租戶隔離問題。當時,做消費金融業務的用戶團隊初嘗這一套支持高併發、多租戶的WebIDE 方案,馬上就’上癮’,開始大規模推廣。”不久,業務團隊鄭重地提出了一個新需求,“我們現在使用的其他數據工具,也要支持高併發、多租戶隔離。並且,現在各個數據工具之間是彼此割裂的,我們不想再做各種複製同步切來切去,我們需要更加互通融合的體驗。”

這個問題很棘手。挨個數據工具做改造?團隊人手又不足,能力也參差不齊,即使大家加班加點,效果還可能不理想。做一套標準的、可複用的公共框架服務?行業還沒有類似的成功案例,難點多挑戰多不確定性強,依然可能會費力不討好。面對這種困境,Linkis團隊曾幾經糾結。

“團隊一起討論了幾輪,決定還是要走,構建可複用的公共框架服務這條路”,邸帥對當時的這一決定深感欣慰,“團隊的核心成員不少既做過開發又做過運維,長期面對數據平臺龐雜組件的開發運維工作,沒少喫過在不同組件中,重複解決高併發、多租戶、不互通等相似問題的苦。如果我們不去做一套標準化、可複用的公共框架服務,這苦大家還得繼續喫下去。

微衆銀行大數據平臺負責人邸帥

於是,最初的Remote Server,演變爲了統一任務執行服務UJES(Unified Job Execution Service)。它可以對接SQL開發、調度系統、可視化系統等各種上層數據功能工具,並可對接多種底層計算存儲引擎,統一管理任務的提交、解析和執行,並打通各工具後臺的物料、變量、函數等影響用戶“互通”體驗的要素。緊接着,技術團隊繼續完成更多功能“填空題”,進一步完善了UJES 的連通、管控能力,包括數據脫敏、數據質量校驗等更多功能工具也完成與UJES的對接。至此,UJES 已初步具備連通、管控、擴展、複用等核心功能,Linkis 雛形初現。

隨着UJES 在微衆銀行大數據平臺扮演的角色越來越重要,在2018年底的一次大數據平臺團隊內部工作規劃會上,邸帥與團隊開始重新思考和定位 UJES,以進一步優化其架構模塊,和增強其可擴展性、可維護性,賦予其對接全棧計算存儲引擎的“計算中間件”職責,併爲它尋找全新命名。爲貼切描述,開發者可利用它便捷的連通各種上層應用和底層引擎,團隊一開始想到了《哆啦A夢》裏的“任意門”,可隨後覺得“門”字無法準確表達其中關鍵的“連接、連通”之意,取名爲“任意橋”似乎更貼切些。

中文名有了,到底用哪個英文單詞來表達“橋”的意義呢?不如用“Link”吧!邸帥的靈光一閃獲得了大家的點贊,因爲“Link”正是“連通”之意。爲何後綴又多了“is”呢?這是微衆銀行副行長兼首席信息官馬智濤,給微衆銀行大數據平臺套件WeDataSphere中的所有組件,起的一個“小名”。“is”代表“In Sphere”,作爲統一後綴,且將”S”設計成立體球形,能很好的提升產品名稱的區分度和辨識度。

從 Linkis不斷變換的命名過程中我們發現,由最開始的 Remote Server,到 UJES 統一任務執行服務,再到“任意橋”,最終到 Linkis,表面上是名字的轉換,背後是微衆銀行大數據團隊對 Linkis 項目不同時期,需要解決的問題的真實思考和升級提煉。

ApacheLinkis 概念圖

時間到了2019年中,在微衆銀行首屆FinTech Day上,Linkis 宣佈開源。之後Linkis團隊通過持續完善架構設計和代碼,不斷降低參與項目開發的門檻。對一個開源項目來說,可擴展性、可維護性是否良好,軟件工程方面的文檔、部署、調試與測試等方面的成熟度,都決定了開發者參與門檻的高低。而能否獲得廣大社區開發者的認可和參與共建,又決定了一個開源項目能否行穩致遠。

從最初的忐忑憂慮到後來的篤定從容,一步步走來,邸帥帶領團隊建立了一個開放友好、蓬勃發展的開源社區。在起步階段,就開始種子用戶的識別和手把手的操作引導,甚至幫助用戶做數據平臺的整體問題識別和解決。但另一方面,團隊能夠投入到開源社區的運營和建設上的資源是有限的。“所以,我們非常關注社區用戶的反饋,確保打造的功能貼近用戶當前優先級最高的需求,而不是把資源投到一些看上去很美好而需求並不迫切的功能。”邸帥表示Linkis團隊就是這樣,把用戶當成自己人,聚焦他們的最優先需求,耐心地引導他們去試驗並運用到生產環境。這種自己人的友好態度,打動了更多的開發者,吸引他們參與新特性的設計與新版本的迭代討論。

不斷擴大的社區開發者朋友圈,持續致力解決前行中遇到的問題,讓Linkis 的開源之路越走越寬,終見微光。如今,計算中間件Linkis 成爲社區用戶口中,大數據開源領域的“燈塔”,引領着大家在龐雜晦澀的大數據領域開源組件迷霧中前行,連通和照亮越來越龐大的上層應用和底層引擎生態圈。

 

開源之路:獨行快,衆行遠


隨着大數據技術的發展,支撐海量數據的分佈式計算引擎越來越多,例如:Hive、Spark、Impala、Flink等等,各個計算引擎的架構設計、使用方式以及適用的場景各不相同,這無疑增加了建設大數據平臺的複雜度,如何統一管理和調用這些框架工具,又是新的技術難題。彼時,Boss 直聘大數據平臺負責人朱輝正在爲企業建設一站式大數據開發平臺絞盡腦汁。

此時,一位神祕的開發者把Linkis 開源代碼放到了OSCHINA開源中國社區上。這段代碼立馬吸引了朱輝的注意力,他帶領團隊花費了一個月時間深入研究 Linkis 架構、代碼後,欣喜地發現 Linkis 十分吻合他們業務需要,且文檔齊全,代碼質量較好,社區開放、活躍,是優秀的開源項目。在內部試運行一段時間後,2019 年下半年,Boss直聘成爲第一個把Linkis投產到生產環境的公司,此時距離Linkis正式開源僅隔幾個月。

Boss直聘大數據平臺負責人朱輝

與 Linkis 兩年同行的日子中,朱輝坦言收穫良多:首先,他們鍛鍊和提高了編程技術。Linkis 作爲分佈式技術架構,由 Scala 和 Java 語言混合編程,意味着開發者需掌握這兩門語言。同時 Linkis 涵蓋了網絡通信RPC技術、微服務治理、多租戶多進程共同協作、資源調度算法以及各種計算引擎的插件化接入等多領域技術,通過學習Linkis,拓展了開發者的技術視野以及提升技術架構設計等能力。

其次,開發者參與開源建設的積極性不斷提升。在逐步瞭解 Linkis 的過程中,朱輝感受到其友好的開源氛圍:Linkis 技術手冊齊全,定期技術分享和交流,建立衆多討論羣,在羣裏反饋問題基本及時得到響應,並沉澱爲 FQA 文檔。朱輝逐漸被這個有活力的開源項目吸引,自發地加入 Linkis 的開源建設中,成爲 Linkis 的 PPMC。目前朱輝不僅在工作中使用 Linkis,還在利用業務時間參與社區建設,主動給 Linkis 貢獻代碼,志願負責日常問題的解答和跟進 PR,作爲一位“自己人”,積極回饋社區。

蘋果公司聯合創始人喬布斯在斯坦福大學的演講中曾說,人生就是一個連點成線的過程,有些經歷也許一開始看不到它的意義所在,但也許若干年後便會發揮其特有的作用。開源星星之火逐漸成燎原之勢,由一個個的“點”組建連接成“線”,且這些線不斷延伸,相互作用:朱輝“不藏私”,積極將“寶藏”項目 Linkis 推廣給團隊小夥伴,目前他所在的團隊都會使用 Linkis 開發,Linkis 已成爲他們團隊的核心技術平臺之一。

朱輝團隊的夥伴們,也喜歡爲 Linkis 出謀劃策。比如,他們發現在一些真實場景中,Linkis 的解決方案還有待完善。於是和微衆團隊一起頭腦風暴,共同完成 Linkis 對 Flink 引擎的支持。又如一名朱輝團隊開發人員在使用 Linkis Client調取數據發送Push 時出現故障,系統後臺並無異常日誌,微衆團隊立即參與進來,共同排查和定位問題,最終順利地將難題解決掉。

在這些不斷碰撞思維火花,攜手聯合攻堅困難的過程中,不同團隊的開發者們磨鍊和提高了自己的能力,提振了團隊的凝聚力,形成良性循環,讓開源飛輪轉動起來。如今 Linkis 不僅幫朱輝團隊打造數據中臺,更普惠行業、社會,不少企業已實際應用到生產環境中。

截至 2021 年 7 月,Linkis 已擁有了 700多家試驗企業和 1000+ 沙盒試驗用戶,涉及金融、電信、製造、互聯網等多個行業。2021年8月2日, Linkis 正式通過國際頂級開源組織 Apache 軟件基金會的投票決議,以全票通過的優秀表現成爲軟件基金會孵化器項目。

Apache Linkis開源里程牌

目前,Linkis已產生了15位Committer,51位Contributor,吸引了超過110位社區開發者加入開發羣共同規劃建設Linkis,社區代碼貢獻量超過10萬行,PPMC團隊成員更是擴大到了Boss直聘大數據平臺負責人朱輝、天翼雲大數據平臺負責人王小剛、薩摩耶雲數據業務部總監易小華、榮耀架構師張榮和愛奇藝大數據工程師王震等多家公司的大數據技術專家。

獨行快,衆行遠。友好而開放的社區生態,是Linkis能茁壯成長的的關鍵。從內部來看,Linkis 真正填補了大數據中間件工具的空白,並獨具創新性,不爲重複造輪子而生。從項目工程化而言,其文檔齊全,功能完整、成熟,系統穩定,代碼可擴展性、可維護性良好,有效降低上手門檻,對用戶十分友好。從外部來看,在社區的起跑階段時,Linkis團隊有效地集中資源和精力積累信任的種子用戶,把用戶當做自己人,不留餘力地引導他們真正使用、參與討論、版本迭代、代碼貢獻等開源建設中來,共同進步。


開源治理:以終爲始,全面開花


2019 年 7 月,在微衆銀行的首屆金融科技開放日大會上,微衆銀行副行長兼首席信息官馬智濤宣佈,“微衆銀行將 AI、區塊鏈以及一系列金融級應用公開並全面開源,用金融科技開放創新的能力真正助力合作伙伴。”從此,開源成爲微衆銀行金融科技的戰略方向。

截止到2021年11月,微衆銀行已有 33 個對外開源的項目,超過230個代碼倉,涵蓋 AI、區塊鏈、雲計算、大數據、大前端等多個技術領域。Star 總數超過27,000 個,Fork近10,000個。其中不乏開源聯盟鏈底層平臺 FISCO BCOS、中間件平臺 WeBASE、聯邦學習工業級開源框架 FATE 和 EventMesh 、Linkis 等行業頂尖的開源項目。

微衆銀行開源管理辦公室負責人鍾燕清

微衆銀行開源管理辦公室負責人鍾燕清的工作,是支持技術團隊創建和運營開源社區,並協助微衆的開源項目與開源基金會、開源聯盟組織以及開源相關技術平臺建立廣泛連接。“開源絕不僅僅是將代碼丟出去,也不僅是開發團隊的工作。我們深受Apache軟件基金會的影響——堅持開放、共享、協同的開源精神。而微衆銀行這33個開源項目背後,都有着一衆具備開源精神的人們。”鍾燕清介紹到,當開發團隊決定和執行開源時,開源管理辦公室、法務、合規與知識產權等多個部門就會通力合作,持續給項目提供支持,吸引和激發更多的開發者與用戶參與其中,“微衆銀行的開源不着眼於短期商業利益,開發團隊與我們這些職能支持團隊,也並不是在達成領導下達的KPI。我們聚在一起共事,是因爲對開源精神的認同。同時,又在透明、共享、協作的開源實踐中,分享社區逐步壯大的喜悅。社區的成功,就是我們的成功。”

在開源精神的推動下,越來越多的微衆人在工作內外,加入了支持開源社區的工作中。微衆銀行開源管理辦公室的康悅,就利用業餘時間成爲各大開源社區的志願者,一邊學習開源社區的運營經驗,一邊將在微衆銀行積攢的開源能量傳遞給更多人。2021年,她作爲開源社顧問委員會工作組成員,承擔了中國開源年會(COSCon)深圳分會場的籌備工作,並被評選爲開源社開源之星。微衆銀行區塊鏈核心開發者石翔在FISCO BCOS開源社區牽頭組建了人數多達70人的跨鏈技術專項興趣小組CC-SIG,以代碼任務、Meetup學習等形式,研究實現不同區塊鏈間的互聯互通。近期,CC-SIG小組建設完成了Hyperledger Fabric 2.0 跨鏈適配器的代碼倉庫,實現FISCO BCOS與Fabric 2.0 的跨鏈適配。對微衆人來說,開源不僅不是不務正業,還能獲得褒獎。公司設置了即時激勵獎,在頒發榮譽證書外,還有相應的現金,用於獎勵突出的社區貢獻。如果是通過評選的優秀項目,還能獲得內部相應的積分作爲激勵。此外,微衆人不論是參與外部開源還是內部開源,都能在申請晉級升職時獲得很好的良性助力。

微衆銀行1024技術周

目前,微衆銀行超過50%的員工皆爲技術人員,他們之中超過50%的人都有Github賬戶並活躍在各大開源社區。微衆銀行內部也有諸如科技問問、微衆開源等開源心得及技術討論平臺,形成了活躍的開源氛圍。微衆銀行企業及同業科技產品部的資深開發專家李宗波,早在2008年,就給著名的日誌組件slf4j貢獻過優化代碼,至今分享了近200篇開源軟件使用和優化心得。如今,他依然保持着對開源的熱忱,在微衆銀行的內部開源項目與平臺積極分享自己的代碼和經驗。在加入微衆不久時,一起生產慢SQL引發的故障,促使李宗波思考能否通過開源組件來提前發現業界經常頭痛的SQL潛在隱患。在深入研究後,他基於國產開源組件druid,進行了增強特性封裝,實現了絕大部分SQL隱患都能通過組件自動提前發現,由此做出內部開源組件Weup-druid,大大減少了生產故障。

“我們對內部開源的重視,並不亞於外部開源。”鍾燕清表示,如果內部開源不夠透明,或者說不夠開放,很多開發者只是在自己的小格子裏面工作,沒辦法橫向進一步發揮自己的價值,個人成長速度也會比較侷限。如果在內部能夠去建立這種高效、協同、透明的內部開源的協作模式,其實開發者在外部社區也能夠更如魚得水,可以承擔更多的工作,爲組織去創造更多的價值,產生更多的創新,最後形成一個多贏的局面。

微衆銀行正式成立技術監督委員會 TOC

爲此,在今年微衆銀行1024技術週上,微衆銀行進一步優化內部的開源管理,技術監督委員會(Technical Oversight Committee, 簡稱TOC)正式成立。TOC將微衆銀行每個部門的技術大拿聚集起來,作爲評委團,從全公司的備選技術項目中甄選優秀的開源項目。TOC不討論業務,不討論產品,以技術爲檢驗項目的唯一標準,以共知、共識、共建的精神,讓不斷湧現出的項目,更快地在技術層面達成最優解。“來自不同部門的A、B團隊也許在孕育類似的開源項目,有了TOC純粹的技術標準,就可以決出哪一種技術更優質,從而引導不同團隊、不同部門的同事,不重複造輪子,而是聚力使到一處去。”鍾燕清認爲,建立TOC這樣的組織,能讓企業內部開放、透明、高效、協同的開源文化流動,幫助員工打破工作的邊界,自由探索更多的興趣愛好和特長,進一步參與到關鍵項目的建設中,建立和其他團隊的連接,提升個人的技術能力。此外,基於技術大拿在各自團隊的影響力,可以帶頭督促和鼓勵其他同事參與開源,推動衆人共建自下而上的企業內部開源生態。

開源不是微衆銀行的一個 KPI、領導的命令,而是企業長期堅持的戰略和文化。以終爲始,全面開花的開源治理方式,讓微衆銀行不僅能夠推出 Linkis 等優秀開源項目,更是將開源基因滲透到每一位開源參與者的血液中。

獨行快,衆行遠。在微衆銀行這個攀登者眼前,遠方山脈的輪廓已經逐漸清晰,而他探索開源世界的腳步一直在路上。

想了解更多Linkis 項目內容,立即點擊“閱讀原文


本文分享自微信公衆號 - WeDataSphere(gh_273e85fce73b)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章