螞蟻金服研發的金融級分佈式中間件SOFA背後的故事

導讀:GIAC大會期間,螞蟻金服楊冰,黃挺等講師面向華南技術社區作了《數字金融時代的雲原生架構轉型路徑》和《從傳統服務化走向Service Mesh》等演講,就此機會,高可用架構社區編輯魏佳和王淵命對螞蟻金服技術團隊的楊冰和黃挺進行的訪談。訪談內容涉及到中間件,微服務,Service Mesh,OpenSource等多個方面,讓咱們你們一塊兒看看螞蟻金服技術專家對這些話題的獨特看法。程序員

魏佳:歡迎兩位,我是高可用架構的編輯魏佳,這位是王淵命。今天頗有幸邀請到兩位在演講以後接受咱們的採訪。兩位能夠先作一個簡單的自我介紹。面試

楊冰:我是螞蟻金服中間件的負責人楊冰。09年加入螞蟻金服,早期時候是在架構組,後來加入中間件團隊。從微服務與框架這樣的一個方向開始,後來逐步參與了螞蟻金融雲對外的建設以及平臺的開發,如今接管了整個中間件團隊,仍然繼續在這個方向上前進。數據庫

黃挺:我是從09年到阿里巴巴實習,以前是在阿里巴巴B2B團隊,2010年正式加入阿里。我在阿里巴巴B2B團隊待了3年,主要是作B2B業務。由於對技術這一塊比較感興趣,本身在業務團隊也作了一些技術相關的工做,後來轉崗到了楊總所在的團隊。如今正在作SOFA開源的方面的事情,如今這方面也作了5年了,同時也是微服務方向的leader。安全

魏佳:這幾年一直在作SOFA這一塊的東西嗎?服務器

黃挺:是的,主要是SOFA體系內微服務相關的技術。網絡

魏佳:我對楊冰的問題主要是分兩塊,一塊是更多集中在您我的在阿里或者是螞蟻金服體系下的成長,另外是您這些年工做集中的一個內容,它自己也是一個迭代成長的過程,更可能是這兩方面。您能夠先從總體上快速和你們分享一下您自從2009年加入以後,作過的項目的狀況。架構

楊冰:最先的時候,咱們是第一批「近衛軍」。畢業以後就進架構組的,當時架構組老大不少,咱們進去就是幫幫忙,打打雜這樣的狀態。在這個過程當中,接觸了不少牛人。框架

最先的時候,從SOFA開始作,那個時候胡喜(現螞蟻金服副CTO)已經把SOFA建立出來,和咱們一塊兒作。我我的是經歷了SOFA1到SOFA2開發過程,其實SOFA1總體完成落地,SOFA2引入了整個服務的架構。那個時候主要仍是以參與和協助爲主,到了SOFA3,這個時候咱們引入了新的東西。具體來講,咱們把Tomcat JBoss那層替換掉,變成自研的Application Server(咱們內部叫CloudEngine)。咱們自研的應用服務器其實解決了咱們內部系統作類隔離、模塊隔離以及合併部署的問題。這個項目是我跟我一個同事,兩我的主導推下來的。我我的參與了整個過程,因此印象很深入。運維

後面開始作微服務這一部分。服務治理、鏈路相關的技術體系,也是由我這邊主導的。大概在2015年的那個時候,咱們開始作金融雲,我也做爲創始人之一。那個時候也就是四五我的做爲創始團隊,進去作最核心的PaaS平臺的研發,包括一些產品化的系統,多租戶體系的研發。在一年多的時間裏,我本身變化很是大。由於之前做爲一個新人在支付寶,之內部視角看待的不少東西都,有很大的慣性。然而走出去以後,我會發現不少應用場景,客戶的要求,業務的場景,須要作的更好。分佈式

如今咱們要和全世界去比,咱們須要知道業界最新動向,最牛的人才在哪裏,你們往哪個方向去靠。會碰到更多這樣的問題,用更多元的視角去看待。而後也逐步在這個過程中造成了本身的技術觀和對軟件技術發展趨勢的一些判斷和理解。

後來在金融雲走上正軌以後,我接手了中間件團隊,這個時候整個視野會更開闊一些。我在落地比較關鍵的項目,好比說咱們在數據上有不少的遺留問題,如今正在這邊逐步解決。咱們在今年在佈局Mesh,還有後麪糰隊蔣濤會分享的數據的一些演進方向上,都在作一些主要的設計,也都是比較關鍵的方向。我我的比較關注Mesh這個方向,由於我我的認爲這是把基礎設施沉澱到咱們整個技術平臺當中很是關鍵的一環。

魏佳:剛剛結合您說的您加入以後作的項目的過程,從側面也是反映了支付寶或者說如今叫螞蟻金服這些年演進的過程,這個過程中除了項目自己有其餘印象比較深入的事情嗎?

楊冰:印象比較深入的事情不少,我挑兩個印象比較深的來講。 第一,剛剛提到的我主導的合併部署的項目。

魏佳:就是大家替換到Tomcat,而後用自研的容器是嗎?

楊冰:是的。這個過程當中我有個心得。原先咱們以爲OpenSource就是最好的,OpenSource就是所有,並且可能會有慣性。然而在替換過程當中,咱們發現咱們的場景足以build up出來比OpenSource複雜度更高,能力更強的體系。我本身也參與在這個過程中收穫了不少。這件事情也是從一個側面反映了螞蟻金服演進的歷程。咱們從IOE的架構,通過採用一部分的開源軟件,再到逐步開始全套自研。在自研過程中,擁抱部分OpenSource,而且去作深度的創造,作一些本身的創新。整個過程實際上是一條很是艱難的路,幸運的是,有這樣一個場景來培育咱們。這是第一個給我帶來我觀念上以及視野上的變化的事情。

第二,我對外接觸的這個階段。以前只是用OpenSource,到如今咱們去作OpenSource,我造成了本身的技術觀。我認爲整個基礎設施是應該走OpenSource化的,由於從C開始到Linux,到 Kubernetes,其實這個已經被一次又一次地證實。由於越底下的基礎代碼,包括SOFA中間件這樣的東西,看起來邏輯沒有業務系統那麼複雜。然而其實它考慮的一些細節,設計的優雅性、架構的健壯性實際上是很是強的。並且它一旦要去支撐那麼多業務系統,整個工程的複雜度也是很是高的。很難用一家公司的程序員去搞定整個技術棧。包括SOFA其實也是同樣的,咱們愈來愈發現這方面的一些趨勢。咱們靠一己之力去作是很難的,再加上咱們既要對內又要對外。如今明白了這樣一個趨勢,所以我以爲應該回饋社區,和社區共建纔是比較好的一條路。在這個層面上,OpenSource最大的挑戰,仍是受制於商業世界對OpenSource的見解。由於你們以爲OpenSource會破壞商業的遊戲規則。可是其實以Linux爲表明的瘋狂發展,以及伴隨着而來的商業化生態的繁榮,是一次又一次向世界證實,OpenSource和商業化的結合是能夠很是完美的。因此這兩件事情對個人轉變很是大,視野的轉變,思考邏輯的轉變很是大。

第一個階段,突破咱們只能選擇OpenSource的禁錮,去選擇自研。咱們自研之後,這個東西成熟了,通過論證了又推廣到開源社區。

如今說回來,咱們一開始走自研,並且咱們自研的東西能夠作到世界領先。後來咱們又認爲,再往大了去看的話,仍是要開源,走出去。遇到螞蟻金服這樣體量的公司,或者說像咱們這樣的團隊,實際上是很是寶貴的一個機會。一個團隊會在一個方向上,好比說數據庫可能有幾百人,中間件可能有百人,這是一個很是可貴的機會,可以把一些很是聰明的人才彙集在一塊兒。咱們應該在標準化上,在軟件技術棧的標準化上,爲社區作一些事情,爲更大的領域去貢獻咱們的力量,因此最後又走出去。

王淵命:前面提到SOFA,正好你前面也簡單說了一下SOFA的歷史。我正好有一個關於SOFA的問題,SOFA在業界,很早你們就知道有這麼一個東西,可是你們不知道它到底長什麼樣,而且它裏面的組件不少不少,SOFA到底能夠承載哪些職能,你們沒有一個比較清楚的概念。而且最近我也看到大家是開源了一部分。能不能比較詳細的介紹一下,SOFA從上面的業務層到下面基礎設施,中間的這一層上,邊界在哪裏?讓你們有一個概念。它已經迭代了不少版本了,您剛剛也簡單說了一下它的狀況。我想了解一下它的每次大的迭代之間,都有一些什麼樣的契機,我要作這個事情,把它要迭代一個新的版本?

楊冰:SOFA的邊界在咱們內部是一次一次擴大的。最先的時候SOFA是Service Oriented Fabric Architecture,它就是一個Famework,就是像Spring這樣一個架構,集成了RPC、研發框架、腳手架相似這樣的一些東西。那個階段,它是解決研發效率的一個Famework而已。再往前發展,咱們發現其實不少的理念是同樣的,因此咱們把SOFA的邊界擴大到整個中間件的範疇。咱們以爲它應該解決的不是一個Famework,由於它做爲一個母體,它做爲Famework也是自帶生態屬性的軟件。它應該在應用和底層基礎設施之間,不少邏輯都在這一層,因此咱們認爲SOFA應該是整個中間件。

再日後繼續擴大,咱們發現中間件本身搞定單元化架構是不夠的,因此咱們把邊界擴大到DevOps平臺,監控這一塊,再加上咱們內部有CICD持續交付平臺,這些也都歸入到SOFA的邊界裏面,咱們內部稱之爲大SOFA體系。咱們認爲這個是能夠去承載整個分佈式架構的比較完整的版本,就是Runtime+DEV+OPS這三個部分的組合,稱之爲一個大SOFA的概念。

可是咱們這一次開放出來的部分,仍是聚焦在中間件這一層。所以上午演講放出來的大圖,咱們看到的仍是是那個方向上的一些組件。包括微服務、鏈路、消息、數據、分佈式事務。OpenSource主要仍是在這個方向上爲主。

黃挺:我來回答一下第二個問題。SOFA經歷過屢次版本迭代。SOFA的版本迭代和公司的架構發展是密切相關的。好比說咱們從SOFA剛剛開始的時候,會作模塊化的事情。到了SOFA2開始引入整個微服務的體系。到SOFA3咱們但願可以在微服務體系下,可以把一些服務聚合在一塊兒,組成一個鏈路出來,這就是咱們以前說的合併部署。隨着每一年的交易量的不斷上升,讓咱們必須從單體架構轉到服務化架構,再往前演進到單元化架構,再往前演進到彈性架構。SOFA大部分的功能升級都是伴隨着整個公司的技術架構目標上更大的一些挑戰進行的。

楊冰:我補充兩個階段,第四個階段,其實咱們是SOFA4,SOFA4核心的事情是爲開源作準備,以及爲多租戶作準備,由於咱們在那兩年作的SOFA4,其實在覈心功能上沒有太大變化,可是咱們孵化出來幾個事情。

第一個是輕量化的版本,由於之前一個Tomcat加一個Famework這樣一個模式是比較傳統的,整個業界發展方向是這樣的。所謂的雲原生,在它交付的時候也更加完整、一體化。這個理念咱們是比較認的,因此咱們在SOFA的基礎上再重構代碼,集成了 Spring Boot,以這樣的一種方式去作總體化交付。而這個東西的理念和Ruby是比較像的,是很是適合快速一體化的交付,因此SOFA也演進到這個方向。而且由於咱們在作對外的事情,咱們在 SOFA4 ⾥⾯把多租戶的隔離能⼒也作出來。當來⼀個用戶的時候,不是說直接給⽤戶部署⼀套新的中間件。在多租戶的模式下,只要部署⼀套就夠了。新來⼀個⽤戶,在上面再隔離出⼀個租戶就行。這樣的話,在成本,運維各⽅⾯都有⾮常⼤的提高。

如今Mesh部分,若是說真要歸個類,咱們內部並無特別想過怎麼定義它,可是我以爲若是真要歸個類,能夠認爲是咱們往第五代邁進。由於Mesh是一個很是大的方向。因此咱們是把SOFA冠在了 Mesh 的前面,而不是說 Mesh 僅僅是服務的部分,它其實應該是整個中間件比較大的方向,基礎設施往下承載的方向。

王淵命:那順便聊聊 Mesh 這一塊的內容,其實我很早關注過這一塊的東西。這一塊其實本質上帶來變化是團隊的協做方式不同了,之前是開發出來一個開發框架,開發團隊要用我這個框架,框架升級的時候要追着開發團隊說,你要把個人版本給升了。中間件這一層,沒有獨立的升級,也限制了迭代的演進的速度。可是 Mesh 把這一目標達到了。在大家實踐過程中,大家如今已經感覺到這種好處了嗎?大家團隊協做上的變化有沒有比較真實的案例或者是故事與你們分享。

黃挺:咱們剛剛聊到 Mesh 在螞蟻金服內部也是在一個起步階段。咱們如今在基於原來的產品落地,如今有二三十個系統正在使用。其實咱們在上線過程中,已經感覺到了這一點。以前,好比說咱們作多元化的改造,其實涉及到一些路由規則的變化。這個時候若是你的路由規則變化的計算出現問題的話,你就要推着他們去作升級。若是說遇到一個Bug,以前咱們推着應用去改造,說你給我安排一個迭代吧,你把這個東西升級一下,這個東西可能會對你的影響很大,可是業務方有本身的業務需求,個人客戶在等着我,產品經理在追着我說,要上別的功能。使用Mesh以後,咱們的協做方式就很簡單,如今咱們去和 SRE 肯定說,我發現我有這個Bug,而後我要去作升級了。咱們和SRE肯定以後,咱們就開始去作一個灰度升級,灰度完成以後,就能夠去作全面的升級。這個週期是很是快的,咱們這個版本如今推到二三十個應用當中,只須要一週的時間就夠了,以前二三十個系統起碼要好幾個月。

楊冰:咱們看重這個交付的標準化,由於你在客戶端,其實你很難標準化,無非就是作多語言,每一個都作一遍,這樣很難被標準化,什麼東西最容易把變化給收攏呢?他是⼀個獨⽴的運行時的時候,變化是比較容易被收攏的。這個時候咱們把最關鍵的,變化最頻繁的,也承載了架構的那部分關鍵代碼沉到 SideCar 裏面(這個基本上是由中間件團隊和基礎設施團隊維護),這樣就能夠把它做爲一個獨立的模塊去演進它。這個不管是對上雲,仍是咱們走出去開放,都有很大的益處。咱們這個規模,包括面向雲這樣的規模,是很是看重基礎設施迭代更新的效率的。尤爲你要讓客戶升級升級,那更復雜。

魏佳:結合您前面提到的,大家定位於中間件這一層,有不一樣、複雜業務的接入方,大家在整個落地也好,推的過程當中也好,有一些是來自於技術以外的阻力或者是問題嗎?尤爲是對於阿里或者是螞蟻金服這樣一個很大的業務組織。

楊冰:其實若是說咱們是本身革本身的命,其實這個最大的阻力就沒了。阻力來自於幾個方面。第一個是說咱們這個價值是否是make sense。咱們和老闆是去聊過的,他是認這個方向對咱們產生的價值是巨大的。由於交付效率的提升,是如今制約基礎架構向前演進的最關鍵的要素。

二是咱們公司有一個團隊有很大權力和影響力,咱們稱之爲風險部門。谷歌提出了SRE,咱們也有SRE,谷歌的R是Reliability,咱們的R是Risk。有一個部門其實他們這個團隊會很是關注這個R,並且這個在螞蟻是底線,是生命線。如今有不少方向,包括咱們在搞的紅藍軍演練,攻防這些東西,是很是依賴於中間件的。這一層基礎設施被拿到了咱們本身手裏,能夠更加快速修復治癒的時候,他們整個SRE的風險也會快速收斂。若是說要推到全站去升級的話,這件事情他們會很頭大。因此在他們這邊的阻力也會小不少,他們也是很是擁抱這個方向的。

所以這幾個方面,一個是咱們本身,一個是老闆,一個是SRE,這三個都順了以後就順多了。剩下的無非是一些語言團隊,這些語言團隊基本上仍是比較擁抱的。由於他們可能若是是在小公司的話,那部分承載基礎設施的代碼穩定了也就穩定了,他們就是作業務了。可是在螞蟻這種業務在⻜快往前演進的地方,基礎架構是看不到穩定的那一天的,他們作了一段時間以後會以爲⾮常累,他可能要和中間件同樣,團隊發展到同樣的規模才能夠支撐基礎架構往前演進。⽽且每次基礎架構升級都會消耗掉他們大量的精⼒。所以他們以爲能夠在深度優化,以及業務創新上去花精力作一些小而美的事情。而在跟着整個基礎設施跑的時候,是很是消耗人力的。因此他們也很是擁抱這個方向,你們一塊兒開源共建。

王淵命:剛剛說到 Mesh,大家的定位是 SOFA 5。咱們看到您所舉到的 Mesh 所能達到的功能裏,明顯有一部分,原來 SOFA 提供的一些功能能夠遷移過來了,能夠用 Mesh 實現一部分。這當中有一部分 SOFA4 的版本和 SOFA5 的版本,怎麼樣來進行融合?

楊冰:它本質上把SDK給 Mesh 化,給Runtime化了。

王淵命:最後的演進,有一部分是互相融合,最後哪些組件是和Mesh整合,哪些組件被替代了?

楊冰:我以前也分享了一些,咱們的原則仍是那句話能複用的就複用。由於 istio 裏面定義了XDS等不少DS這種東西,這些是服務發現的標準。這個東西咱們是以爲很是有價值的。像社區走得慢的,咱們就本身搞,而後patch回去。若是社區不接收,那咱們就本身作一個分支,咱們有一部分人會投入到開源運做。咱們想辦法把咱們的理念、想法、推到社區,指望他們標準化。當年Docker,還有 Kubernetes 也是這麼走過來的。一開始設計出來的時候也沒有那麼完美。可是到後來各類網絡、容器的標準化,OCI的標準都出來了。咱們也但願在微服務領域作一些標準化的工做。

剛剛說到的一些組件,好比說服務註冊中心,是我以前提到到過的很是關鍵的部分。其實咱們和 istio 的人聊過,其實谷歌作 istio 這一塊的人,是谷歌 Gateway 這個部門轉型過來去作的。由於它以爲這個東西不就我和咱們整個 Gateway 作的事情很是像嗎?並且他們把不少管控的理念加入進來,向前演進。可是說老實話,谷歌這樣的公司雖然很偉大,可是在微服務領域,他們趟的坑我相信是沒有阿里多的。由於它可能主要集中AI、搜索,它的業務形態真的沒有金融那麼複雜。咱們也很是直接問過他們團隊的人,微服務在大家內部有多少話語權,實際上是沒有太大話語權的。咱們認爲雖然谷歌這家公司,也包括IBM,有不少的沉澱,有很是多的牛人,可是他趟過的坑沒有咱們多。咱們很是認同他們的方向、抽象能力以及設計能力。咱們更多願意扮演合做者的角色去推進社區往很好的方向發展。咱們會本身作像服務註冊中心這樣的組件。因此如今Istio 的服務註冊發現其實對接的是 Kubernetes 裏⾯的 ETCD,可是 ETCD 其實沒有咱們內部這種高可⽤的能力。未來若是說這個社區比咱們作的好了,咱們會放棄掉本身的組件往社區的方向去發展。可是如今我以爲社區是搞不定的,因此在落地的階段,咱們會把服務註冊中心等一些關鍵的組件本身來作。

王淵命:既然能夠把 Mesh 理解成網絡層,咱們把全部的中間件放在網絡層,而網絡層最好的提供方,要麼是容器平臺,要麼是雲平臺。下一步的容器平臺或者雲平臺也會往這個方向發展,這兩個會有一個什麼樣的結合演變方式?好比說剛剛討論的 istio Sidecar 和Kubernetes實際上是很是密切的,很是依賴於Kubernetes的能力,沒有這個平臺的支撐,它是很難去運維的。這一塊兩位有什麼樣的見解?如今業界作雲的有沒有這方面的動做?

楊冰:你是說這個方向怎麼和Kubernetes這個方向以及非Kubernetes的方向更好的融合是嗎?

王淵命:Mesh 這一層標準化了,那會不會變成雲平臺或者容器平臺默認的,就在網絡層支持的一套能力?

楊冰:谷歌之因此會出來作Service Mesh,是由於 Kubernetes 最強的仍是在編排、調度,整個模型的抽象,從而讓PaaS更加簡單和輕量級。可是它在微服務這個層面上,雖然提供這個能力,可是它的玩法缺不豐富,並且相對也比較簡單。就像咱們內部都有很複雜的玩法,服務的動態上線、下線,基於服務粒度的彈性伸縮,這種能力很難在一個基於service這個維度去作。可是 Service Mesh 這個方向是可讓微服務更加容易地往基礎設施走,這是谷歌作 Service Mesh 的一個用意,咱們但願微服務這一層走向標準化。

可是就 Kubernetes 和 Service Mesh 這一層結合的事情,咱們在和他們(istio 團隊)聊的時候,他們也提到過,首先這個方向雖然是爲告終合Kubernetes去作的更大,往微服務這個層面上去更進一步,把這一層去作表徵化。可是Service Mesh自己它實際上是一個能夠支持多平臺的一個架構的,只不過我理解他們團隊如今應該是優先在作對Kubernetes的集成。由於他一開始在設計那個藍圖的時候,就考慮過可以運行在非Kubernetes的平臺上。對用戶來講,一旦標準化以後,其實他也不關心底下是否是 Kubernetes 。若是說他成爲一個微服務的標準,他無論你是 Container Based 仍是 VM Based 理論上都是應該能夠的。Mesh是往上去抽了一層,作多元化適配,多種基礎設施的適配,只是優先在作Kubernetes的適配。另外他在控制面這一層也是跨平臺的設計。它不是說只是運行在谷歌雲上,它是基於混合雲架構去設計的,基於聯邦論架構去設計的,只不過如今他也沒有作這部分的特性,可是他們有規劃去作。並且這一層的規劃,比如今他們文檔裏面看到的東西,可能會大得多。可是他們如今作比較聚焦於在Kubernetes的適配這個方向上作。因此這個和咱們的想法也是⽐較相近的,咱們以爲也是這樣的,⽽不只是 Istio 如今的這些東西。

魏佳:回到您前面說到的整個的過程,若是說跳脫出來看,您以爲其餘的一樣在作互聯網金融或者是傳統金融轉型的,有多少能夠從大家相似的螞蟻金服或者是原先的支付寶這樣一個經驗借鑑出來,在技術層面的。我問這個問題表明的更多的是,由於您知道金融科技相關的中小規模的企業很是多,有一些在金融領域遇到的一些問題是相似的。可是他們的技術積累、團隊等等都遠遠比不上阿里系這樣一個成熟的體系。有沒有能讓這些更輕量的玩家,技術儲備比較弱的玩家,也可以借鑑到大家正確的一個路徑向前走?

回答:我這個話題在剛剛分享當中也大概解答過。我我的的觀點是這樣的,金融這個領域,由於它自然是融入到生活方方面面的基礎設施。金融也好,支付也好,不管是基金仍是保險仍是什麼形態,都是服務於我的,服務於機構的,是滲透到生活的方方面面的。金融在任何一個方向在發展的時候,都會面臨到比較大的流量的問題。有可能會出現可能針對機構的一些保險或者是機構的基金,可是確定也會針對於C類用戶的,一旦對接到C類⽤戶,對接到互聯網渠道,它的流量實際上是⼀個解決不掉的問題。咱們在這一塊去作了不少的探索。其實跟整個集團的一些團隊不太同樣的地方是在金融要求下作事情。所謂的金融要求有幾個方面。一個是咱們的SRE的定義是不一樣的,咱們會把風險放在第一位,可用性、兜底是被放在第一位的。第二,咱們是被強監管的。因此咱們在容災、數據無損,相似於這方面的要求更高。戴着金融的枷鎖,既要跑得快又要跑的穩。這些方面的平衡是深深寫在咱們的代碼裏面的。若是說要在快、量、可靠、安全方面上去作,我以爲咱們的技術、理念都是能夠借鑑甚至拿過去用的,這方面會幫他少趟不少的路。可是如今的Fintech,這個詞雖說有點被說濫了,也有一些誤解,可是仍是有不少創新領域上的一些探索。不管是安全、風控仍是投研、投顧、質研,以及區塊鏈方面的探索,我以爲這個形態會很是豐富。

這一塊螞蟻金服是很是踏踏實實地在作一些底層方向上的事情。這一塊的想像空間和能作的事情遠比螞蟻金服如今作的東西要多。並且這個方向的成熟,不像咱們如今開放出來的那部分技術那麼成熟。咱們開放出來的那部分技術,你們是能夠參與、共建,是你們都會遇到的。另一部分,我以爲能夠去借鑑和溝通,由於我以爲遠遠沒有到標準化的階段。

魏佳:你前面提到了區塊鏈,二位從我的的角度怎麼去看洶涌而來的區塊鏈大潮,固然避免不了有一些負面的事情或者是消息。可是假設是從技術角度自己而言,由於它自己和帳本金融有一個自然契合的層面,從這個維度來看,大家我的怎麼看這樣一個趨勢?

王淵命:我追問一下,區塊鏈你們都說是金融革命,它多是想從新定義金融的規則。在這樣的狀況下,又和螞蟻金服這樣的金融的體系確定是有互相影響的地方。這個我不知道大家我的和內部是怎麼看待的?

楊冰:我也只能說一些我能說的我的觀點。若是有機會能夠採訪到咱們這邊的區塊鏈負責人會更好一些,由於我對這個東西的理解沒有那麼透。確實像您所說,外面有不少的想法。咱們比較明確的幾個點是,第一,螞蟻金服不會去作「幣」這樣的一些東西。第二,咱們的一些應用場景(包括如今可以對外說的,好比說溯源、公益等等),螞蟻金服是投重兵在作這件事情。由於咱們很是認同這個東西對金融帶來的變革,這是不用避諱的。咱們是實實在在作和生活、金融便利性相關的一些方向的探索。我仍是比較認同這個方向。咱們內部更多聊的不是某一個區塊鏈技術或者是某一個區塊鏈思想,由於區塊鏈已經變成默認事實。按照這個標準的話,不少事情確實是好作不少。就像咱們真出了量子計算機以後,計算機上面的邏輯,好比說咱們搞的要死的同城雙活就不要搞了。

區塊鏈記錄一旦寫入不能篡改,所以它本質上是一個加密的分佈式的帳本,它不可篡改,並且會廣播達成一致性。這三個關鍵要素,一旦變成基礎設施,安全性能夠獲得保障的話,某一個場景軟件的寫法會徹底被顛覆掉,包括產出的場景都會被顛覆掉這是咱們比較認同的,至於說什麼場景我也不方便說。區塊鏈的思想仍是很好的。

王淵命:我想問一下SOFA開源的問題,SOFA很早之前就打算開源了,可是到如今纔開出來。由於它是一個龐大的體系,開源有各類阻力,咱們能夠想到的,好比說開源出來要劃分一個明確的邊界,哪些事情是通用場景的,哪些是特殊場景,這個大家是如何劃分這個邊界和思考的?另外是內部的認識上,這樣一個東西是核心競爭力之一,咱們把它開源出去,你們的認識上會不會有一些衝突?

黃挺:首先我回答第一個問題,由於SOFA發展了這麼多年,是有很是重的歷史包袱的,這也是咱們爲開源準備了很是長時間的緣由。在從SOFA3到SOFA4的整個過程中,包括把整個SOFA作輕量化的過程中,其實就是在作這件事情。有一些公用的能力(咱們以爲這個東西,沒有和螞蟻整個架構或者是業務有很是強的相關的東西),咱們都但願能夠開源出來。咱們作開源這件事情不會把咱們代碼分爲徹底兩套東西,而後兩個分別演進,咱們以爲這不是開源的正確作法。

另外開源對咱們整個團隊的消耗是很是大的,咱們但願用同一套代碼來實現內部的兼容和外部的開源,咱們會在開源的代碼當中留一些比較好的擴展點,這也是對咱們自己代碼架構可擴展性的挑戰,目前咱們作到的程度就是這樣的。你剛剛講到開源對咱們內部價值的問題。

王淵命:對,就是怎麼統一這個認知,好比說有人以爲這件事情是咱們的核心競爭力,不該該開源。

黃挺:固然,這確定是咱們一部分核心競爭力,可是咱們已經發展了這麼多年,自己SOFA當中用了很是多的開源軟件。從技術人員角度來講,若是咱們已經可以在業界某些方面作到領先程度了,我以爲咱們應該是去回饋社區的。

另外一方面,雖說螞蟻金服體量很大,咱們在金融上面有很是多的形態,包括保險、基金、銀行,以及自己咱們的一些支付業務。可是實際上整個世界實際上是很大的。咱們從作金融雲開始,看到了一個更大的世界。若是說爲了咱們整套體系能有更多人去用,在更多的場景下去鍛鍊的話,開源也是必需要去走的一條路。這也是從產品發展方向上來看的。由於畢竟內部雖然很大,可是場景比外面的世界仍是要小不少。

楊冰:我補充一些宏觀的思考。您提到核心競爭力,其實咱們不否定這個東西。其實就像螞蟻去作科技開放這件事情的道理是同樣的。螞蟻看到的是一個更大生態的可能性。我以爲螞蟻或者是阿里最有意思的就是彙集了一幫確實頗有夢想的人,咱們相信這件事情。這麼大的一個可能性,咱們發現瓶頸確實在技術上,這雖然不是在咱們的瓶頸,可是多是一些合做夥伴或者客戶的瓶頸。若是說這些問題能夠被解決的話,整個生態不是一個零和遊戲,螞蟻金服本身也會收穫更多,因此咱們願意開放出來一些東西。

第二,回饋是另外一方面的考慮。咱們開源不是說開放出來就能夠了,咱們但願作一些運營,但願更多人加入進來,由於開源或者是社區不是一言堂,要有更多人去用,這種基礎性的軟件是會有網絡效應的,咱們但願有更多人進來去把它變的更豐富,去應對更復雜場景。而且螞蟻金服會跳出來去作標準的倡導者,由於有一些東西會在基礎設施層面,或者是一些基礎架構軟件層面,若是變成標準化的話,咱們本身也會受益更多。如今國家也在支持這個事情,自主研發等等。咱們是但願把它變成在金融行業的基礎設施,這條路應該是挺難的,可是螞蟻金服是最應該去作這件事情的一家公司。

王淵命:我忽然想到一個問題,作爲一個技術人我也一直在思考一個問題。你看咱們單說服務端的,前幾年冒出來的 Docker,最近一直很火的 Mesh,這些點你單拎出來,並非一個很堅深複雜的技術,說咱們之前想不到的,之前咱們可能就零散的去應用這些技術了,而且實際上解決這些問題了,可是沒有作的就是把它能抽象成一套很是好的工具或者是標準去把它推廣出來。這個事情,固然從技術深度上,我以爲如今國內的開發工程師沒有太大的差距了,可是怎麼產生這種想法,以及這種想法最後到落地,要有一個想法、醞釀、策劃的過程,這個過程咱們國內工程師是比較缺少的,這件事情,您以爲你們應該在哪些方面去加強?

楊冰:我以爲不光是工程師的問題,其實這是一種文化的差別。美國或者是歐洲,他們是比較講究這種社區文化的,是比較開放的模式。他們在社區協同還有這方面其實會作的更好一些。而這個東西又是須要大量社區協同的。

第二,我以爲仍是科技人才和教育體系帶來的一些變化。由於國外可能很早人們就開始寫論文了,因此咱們以爲老外抽象能力很強,由於他們在教的時候是已經體系化的。而國內咱們這一代人在人才儲備和想法上會比老外少不少,咱們下一代會比咱們這一代好不少。因此不是沒有這個深度,沒有這個能力,而是說在思惟能力上就會少不少這樣的人和思考的方式。因此第一個是想到的人就比較少,第二個是想到以後,他願意分享出來,以協同化模式去運做的人也少。

第三,就OpenSource來講,真要作大的OpenSource仍是一半商業,一半技術的。因此你會發現其實國外可以深入理解這個商業生態以及和技術的結合,如何把它平衡好,以基金會的方式去運做的人才。這個已經不是對程序員的要求了,這種類型的人才國外比國內多太多了。由於咱們近期也在作OpenSource,在找開源圈子的人,這種人是百裏挑一,仍是很是稀缺的。並且我以爲,作開放、開源這件事情就是一我的脈圈,你得有這樣的人,理解共同的理念。你們能夠看一下《大教堂與集市》那本書,他講了整個黑客的文化,開源的文化。可以關注而且深入理解,最終可以把它去作商業化結合這方面的人才是奇缺的。因此我以爲要造成這樣一種體量的,還要走很長的路。

你看谷歌,Apache 是一個開放治理架構的一套體系,這個東西其實很難管的,在當中還能夠產生商業。谷歌如今從本身作安卓,從相對獨立的開源體系作到了如今的CNCF,他也投入了不少人去作 CNCF,在裏面去扮演一些關鍵的角色,這也是一套開放治理的架構。它進來的東西有一些對它是不利的,可是他也會放進來。這種駕馭的能力,能管理這種開放治理體系的人才太缺了,我以爲國內幾乎是沒有的,因此很難達到這樣體量的影響力。我以爲開源世界如今仍是被老外統治的。

魏佳:我是很認同您剛剛說的那些點的,可能從學校階段出來的時候,理論知識紮實的程度,包括整個西方的商業文明,每日薰陶人的思惟模式,是在這樣一個過程中起很是重要的做用的。

楊冰:我給你講一個咱們團隊當中頗有意思的例子,你們去看可能老外隨便搞一個項目,先把本身變成一個優秀的ReadMe工程師。咱們團隊的同窗,寫這個東西就會要改好幾版,其實這是很是不利於開源傳播的。其實咱們整個這方面的人才儲備(有商業化意識的人才),都是奇缺的。公司如今也是鼓勵去推那些有商業化意識又有技術背景的同窗,能夠去幫助公司去看更大的方向。首先咱們有很好的技術人才的儲備,這個咱們還不錯,是高速發展。可是商業化和技術相綜合的人才實際上是很是缺的。因此我以爲有這樣的人才,再加上教育上的一些差距慢慢補齊,纔有可能運做大規模的開源項目。固然國家支持也很重要。因此如今自主可控、國家安全、民族崛起這些東西會引入更多的外腦。如今海外回來的人不少,他們是受過這種思想的薰陶,這樣一些行爲模式的培養。他們會慢慢帶來改變。百度陸奇走了,陸奇走的時候我看了不少的文章,你們對他的文化、理念仍是比較認同的。雖然整個國家,整個文化,整個技術圈子仍是有這個慣性的,沒有那麼容易往更開放的社區化方向去走,可是總會慢慢改變。

魏佳:我表明咱們業界這些剛剛從學校出來的,初出茅廬的年輕工程師的一個問題。由於二位都是一畢業就加入了阿里的,或者說加入了螞蟻金服,特別是楊冰又是近十年走到如今這樣一個角色,年輕工程師多半有這樣的困惑或者是顧慮,就是我剛剛加入公司的時候,可能更可能是他們認爲不會有太多成長的這種業務的代碼,寫的一些功能,打交道的也是公司的產品、測試。可能在相對長的時間內你都很難有機會像您剛剛說的,大家作的中間件這樣的積累,對我的也好,對平臺也好都是快速增加的機會的存在。對於絕大部分的年輕工程師,在缺乏公司能提供的這種機會的狀況下,您以爲我的成長、提高應該有哪些方式或者是維度。好比說如今加入A公司,自己盤子就沒有那麼大,練兵場就遠遠比不上阿里能夠提供的。沒有這樣的一個平臺,可能就客觀缺少這樣的機會。另外一方面,您以爲您這十年的過程中,公司以外的,或者說項目自己客觀存在的東西以外的,還有什麼是爲您的我的成長,不管是技術仍是能力、事業等等起了決定性做用的。

楊冰:其實這方面的雞湯是不少的,我就說一下多本身我的的感覺,由於這個也不算我我的原創的,我是看到一些東西,結合我本身的體會。前一段時間摩拜的創始人後來套現離開了,發了一篇比較負面的文章,說你的同齡人如今在幹嘛什麼的。後來又有了一篇比較正面的文章,我以爲分析得挺好的

首先年輕人在作選擇的時候,要看點線面,首先選擇比努力更重要,怎麼選擇呢?我面了不少的年輕人,你們很是看眼前的。我分享一下,一個是看微觀,一個是看宏觀。看宏觀是說,你在選擇的時候,你要把本身投在一個大面上是好的,有機會讓你成爲億萬富翁的或者是欣欣向榮這個方向去發展的,你行業要看得準,方向要看得準。第二個,你看線的時候,你要看這幾個賽道當中有幾家公司,你削尖腦殼也要前去,或者是儘可能優先去考慮,而不是說隨便找一個就能夠了。第三個,再到點是指微觀的,有可能你在面上OK,線上面不是最佳,在點上面可能要去作一些平衡。你能夠在年輕的時候帶着一個向前看的心,多選擇到一個投資本身或者是本身可以學到更多東西的地方去,差很少就是線、面選好以後,在點上作平衡。好比說有一家公司很好,在線上明顯優於另一家公司的,可是那個團隊沒有特別牛的人,只是說這家公司很好,你進去可能會帶着這家公司的光環,可是你學不到很好的東西。光環沒有了以後,你原先能夠作的事情,在你到了另一家公司以後你是作不了的。因此你寧肯去選擇大方向正確,弱一點,可是那邊有一個牛人或者說你可以成長的公司。我以爲這個就要看本身在宏觀和微觀上的平衡了。

第二個,靠譜比聰明更重要一點。我在看團隊的一些人,包括養,包括髮現走得快的⼀些人,都是一些站在比較高的角度或者是完成事情比較靠譜的人。改變環境實際上是挺難的,若是說你能夠改變本身來適應這個環境,招數不同的話,你在哪裏均可以作好。若是你以爲這個公司,這個廟已經裝不下你,你本身再怎麼變,這個能量已經到了天花板的話,你就換一個地方。你必定要想辦法去改變本身,去爲這件事情負責。

第三個,若是說年輕人的話,咱們面試的時候還會比較看穩定性。雖說剛剛講了那麼多,可是其實若是說你們不管是作業務仍是什麼,其實可能3年爲期,不少東西一年、兩年是很難有沉澱的。你一旦從一個地方換到另一個地方,人際關係要從新創建,信任關係要從新創建,你的機會要從新去獲取。你再不斷重複,在新的地方去證實本身就會消耗掉很大力量,你就很難再往上全走了。因此他在深度和廣度上就會出現一個瓶頸。咱們會在看人的時候,若是真的是招比較有潛力或者是比較好的人才的話,不只是看穩定度和忠誠度的問題,也是在看他是否有耐心沉澱下來在這個領域裏深耕一段時間的。我我的結合一些東西,我以爲這三個點是比較重要的。

魏佳:在這樣一個將近十年時間裏,對您而言影響最大的是什麼?

楊冰:我以爲仍是這兩年,就是走出去的這兩年,我以爲我本身有很明顯的變化。原先我跟他(黃挺)在一個團隊裏面,其實你們想法上差異不大,雖然我一直是他的上級,可是其實你們在思想上是有一些侷限的。個人團隊包括我本身也有明顯的感覺。咱們去看OpenSource,看社區,甚至是走出去,而不是隻把眼光留在公司內部,這個對我確實有很大啓發。我在這個期間接觸了很是多商業化人才,或者說外部的一些不一樣的見解,包括投資圈的一些人,包括社區一些人。真的給我很是不同的視角,讓我可以從不同的維度思考問題。另外公司也給我這樣一個舞臺和機會。多是由於我會更花時間去關注公司高層或者是整個公司層面上,主賽道、方向上在作的事情和我這邊的關係。這樣的話會得出不同的答案。這兩年其實本身的我的變化仍是比較大的。由於接觸到外面更多的視角,更商業化的運做,結合技術再去思考,會得出不同的結果。看公司層面上的事情,你看到的也是商業化上的判斷。就是成本、效率、穩定性這些方面的。之前咱們這些人都是不看這些的,可是結合商業再看主賽道,以及咱們這些東西,是選擇優先作哪個答案就不同了。

魏佳:咱們今天的採訪就到這裏,感謝二位。

螞蟻金服現已開源其中間件SOFA,欲知詳情,請看下方:

相關文章
相關標籤/搜索