摘要:由msup聯(lián)合高可用共同舉辦的GIAC大會(huì)期間,螞蟻金服楊冰,黃挺等講師面向華南技術(shù)社區(qū)做了《數(shù)字金融時(shí)代的云原生架構(gòu)轉(zhuǎn)型路徑》和《從傳統(tǒng)服務(wù)化走向Service Mesh》等演講,就此機(jī)會(huì),高可用架構(gòu)社區(qū)編輯魏佳和王淵命對(duì)螞蟻金服技術(shù)團(tuán)隊(duì)的楊冰和黃挺進(jìn)行的訪談。
導(dǎo)讀:GIAC大會(huì)期間,螞蟻金服楊冰,黃挺等講師面向華南技術(shù)社區(qū)做了《數(shù)字金融時(shí)代的云原生架構(gòu)轉(zhuǎn)型路徑》和《從傳統(tǒng)服務(wù)化走向Service Mesh》等演講,就此機(jī)會(huì),高可用架構(gòu)社區(qū)編輯魏佳和王淵命對(duì)螞蟻金服技術(shù)團(tuán)隊(duì)的楊冰和黃挺進(jìn)行的訪談。訪談內(nèi)容涉及到中間件,微服務(wù),Service Mesh,OpenSource等多個(gè)方面,讓我們大家一起看看螞蟻金服技術(shù)專家對(duì)這些話題的獨(dú)特見(jiàn)解。
魏佳:歡迎兩位,我是高可用架構(gòu)的編輯魏佳,這位是王淵命。今天很有幸邀請(qǐng)到兩位在演講之后接受我們的采訪。兩位可以先做一個(gè)簡(jiǎn)單的自我介紹。
楊冰:我是螞蟻金服中間件的負(fù)責(zé)人楊冰。09年加入螞蟻金服,早期時(shí)候是在架構(gòu)組,后來(lái)加入中間件團(tuán)隊(duì)。從微服務(wù)與框架這樣的一個(gè)方向開(kāi)始,后來(lái)逐步參與了螞蟻金融云對(duì)外的建設(shè)以及平臺(tái)的開(kāi)發(fā),現(xiàn)在接管了整個(gè)中間件團(tuán)隊(duì),仍然繼續(xù)在這個(gè)方向上前進(jìn)。
黃挺:我是從09年到阿里巴巴實(shí)習(xí),之前是在阿里巴巴B2B團(tuán)隊(duì),2010年正式加入阿里。我在阿里巴巴B2B團(tuán)隊(duì)待了3年,主要是做B2B業(yè)務(wù)。因?yàn)閷?duì)技術(shù)這一塊比較感興趣,自己在業(yè)務(wù)團(tuán)隊(duì)也做了一些技術(shù)相關(guān)的工作,后來(lái)轉(zhuǎn)崗到了楊總所在的團(tuán)隊(duì)?,F(xiàn)在正在做SOFA開(kāi)源的方面的事情,現(xiàn)在這方面也做了5年了,同時(shí)也是微服務(wù)方向的leader。
魏佳:這幾年一直在做SOFA這一塊的東西嗎?
黃挺:是的,主要是SOFA體系內(nèi)微服務(wù)相關(guān)的技術(shù)。
魏佳:我對(duì)楊冰的問(wèn)題主要是分兩塊,一塊是更多集中在您個(gè)人在阿里或者是螞蟻金服體系下的成長(zhǎng),另外是您這些年工作集中的一個(gè)內(nèi)容,它本身也是一個(gè)迭代成長(zhǎng)的過(guò)程,更多是這兩方面。您可以先從整體上快速和大家分享一下您自從2009年加入之后,做過(guò)的項(xiàng)目的情況。
楊冰:最早的時(shí)候,我們是第一批“近衛(wèi)軍”。畢業(yè)之后就進(jìn)架構(gòu)組的,當(dāng)時(shí)架構(gòu)組老大很多,我們進(jìn)去就是幫幫忙,打打雜這樣的狀態(tài)。在這個(gè)過(guò)程中,接觸了很多牛人。
最早的時(shí)候,從SOFA開(kāi)始做,那個(gè)時(shí)候胡喜(現(xiàn)螞蟻金服副CTO)已經(jīng)把SOFA創(chuàng)建出來(lái),和我們一起做。我個(gè)人是經(jīng)歷了SOFA1到SOFA2開(kāi)發(fā)過(guò)程,其實(shí)SOFA1整體完成落地,SOFA2引入了整個(gè)服務(wù)的架構(gòu)。那個(gè)時(shí)候主要還是以參與和協(xié)助為主,到了SOFA3,這個(gè)時(shí)候我們引入了新的東西。具體來(lái)說(shuō),我們把Tomcat JBoss那層替換掉,變成自研的Application Server(我們內(nèi)部叫CloudEngine)。我們自研的應(yīng)用服務(wù)器其實(shí)解決了我們內(nèi)部系統(tǒng)做類隔離、模塊隔離以及合并部署的問(wèn)題。這個(gè)項(xiàng)目是我跟我一個(gè)同事,兩個(gè)人主導(dǎo)推下來(lái)的。我個(gè)人參與了整個(gè)過(guò)程,所以印象很深刻。
后面開(kāi)始做微服務(wù)這一部分。服務(wù)治理、鏈路相關(guān)的技術(shù)體系,也是由我這邊主導(dǎo)的。大概在2015年的那個(gè)時(shí)候,我們開(kāi)始做金融云,我也作為創(chuàng)始人之一。那個(gè)時(shí)候也就是四五個(gè)人作為創(chuàng)始團(tuán)隊(duì),進(jìn)去做最核心的PaaS平臺(tái)的研發(fā),包括一些產(chǎn)品化的系統(tǒng),多租戶體系的研發(fā)。在一年多的時(shí)間里,我自己變化非常大。因?yàn)橐郧白鳛橐粋€(gè)新人在支付寶,以內(nèi)部視角看待的很多東西都,有很大的慣性。然而走出去之后,我會(huì)發(fā)現(xiàn)很多應(yīng)用場(chǎng)景,客戶的要求,業(yè)務(wù)的場(chǎng)景,需要做的更好。
現(xiàn)在我們要和全世界去比,我們需要知道業(yè)界最新動(dòng)向,最牛的人才在哪里,大家往哪一個(gè)方向去靠。會(huì)碰到更多這樣的問(wèn)題,用更多元的視角去看待。然后也逐步在這個(gè)過(guò)程當(dāng)中形成了自己的技術(shù)觀和對(duì)軟件技術(shù)發(fā)展趨勢(shì)的一些判斷和理解。
后來(lái)在金融云走上正軌之后,我接手了中間件團(tuán)隊(duì),這個(gè)時(shí)候整個(gè)視野會(huì)更開(kāi)闊一些。我在落地比較關(guān)鍵的項(xiàng)目,比如說(shuō)我們?cè)跀?shù)據(jù)上有很多的遺留問(wèn)題,現(xiàn)在正在這邊逐步解決。我們?cè)诮衲暝诓季諱esh,還有后面團(tuán)隊(duì)蔣濤會(huì)分享的數(shù)據(jù)的一些演進(jìn)方向上,都在做一些主要的設(shè)計(jì),也都是比較關(guān)鍵的方向。我個(gè)人比較關(guān)注Mesh這個(gè)方向,因?yàn)槲覀€(gè)人認(rèn)為這是把基礎(chǔ)設(shè)施沉淀到我們整個(gè)技術(shù)平臺(tái)當(dāng)中非常關(guān)鍵的一環(huán)。
魏佳:剛剛結(jié)合您說(shuō)的您加入之后做的項(xiàng)目的過(guò)程,從側(cè)面也是反映了支付寶或者說(shuō)現(xiàn)在叫螞蟻金服這些年演進(jìn)的過(guò)程,這個(gè)過(guò)程當(dāng)中除了項(xiàng)目本身有其他印象比較深刻的事情嗎?
楊冰:印象比較深刻的事情很多,我挑兩個(gè)印象比較深的來(lái)說(shuō)。
第一,剛剛提到的我主導(dǎo)的合并部署的項(xiàng)目。
魏佳:就是你們替換到Tomcat,然后用自研的容器是嗎?
楊冰:是的。這個(gè)過(guò)程中我有個(gè)心得。原先我們覺(jué)得OpenSource就是最好的,OpenSource就是全部,而且可能會(huì)有慣性。然而在替換過(guò)程中,我們發(fā)現(xiàn)我們的場(chǎng)景足以build up出來(lái)比OpenSource復(fù)雜度更高,能力更強(qiáng)的體系。我自己也參與在這個(gè)過(guò)程當(dāng)中收獲了很多。這件事情也是從一個(gè)側(cè)面反映了螞蟻金服演進(jìn)的歷程。我們從IOE的架構(gòu),經(jīng)過(guò)采用一部分的開(kāi)源軟件,再到逐步開(kāi)始全套自研。在自研過(guò)程當(dāng)中,擁抱部分OpenSource,并且去做深度的創(chuàng)造,做一些自己的創(chuàng)新。整個(gè)過(guò)程其實(shí)是一條非常艱難的路,幸運(yùn)的是,有這樣一個(gè)場(chǎng)景來(lái)培育我們。這是第一個(gè)給我?guī)?lái)我觀念上以及視野上的變化的事情。
第二,我對(duì)外接觸的這個(gè)階段。之前只是用OpenSource,到現(xiàn)在我們?nèi)プ鯫penSource,我形成了自己的技術(shù)觀。我認(rèn)為整個(gè)基礎(chǔ)設(shè)施是應(yīng)該走OpenSource化的,因?yàn)閺腃開(kāi)始到Linux,到 Kubernetes,其實(shí)這個(gè)已經(jīng)被一次又一次地證明。因?yàn)樵降紫碌幕A(chǔ)代碼,包括SOFA中間件這樣的東西,看起來(lái)邏輯沒(méi)有業(yè)務(wù)系統(tǒng)那么復(fù)雜。然而其實(shí)它考慮的一些細(xì)節(jié),設(shè)計(jì)的優(yōu)雅性、架構(gòu)的健壯性其實(shí)是非常強(qiáng)的。而且它一旦要去支撐那么多業(yè)務(wù)系統(tǒng),整個(gè)工程的復(fù)雜度也是非常高的。很難用一家公司的程序員去搞定整個(gè)技術(shù)棧。包括SOFA其實(shí)也是一樣的,我們?cè)絹?lái)越發(fā)現(xiàn)這方面的一些趨勢(shì)。我們靠一己之力去做是很難的,再加上我們既要對(duì)內(nèi)又要對(duì)外?,F(xiàn)在明白了這樣一個(gè)趨勢(shì),因此我覺(jué)得應(yīng)該回饋社區(qū),和社區(qū)共建才是比較好的一條路。在這個(gè)層面上,OpenSource最大的挑戰(zhàn),還是受制于商業(yè)世界對(duì)OpenSource的看法。因?yàn)榇蠹矣X(jué)得OpenSource會(huì)破壞商業(yè)的游戲規(guī)則。但是其實(shí)以Linux為代表的瘋狂發(fā)展,以及伴隨著而來(lái)的商業(yè)化生態(tài)的繁榮,是一次又一次向世界證明,OpenSource和商業(yè)化的結(jié)合是可以非常完美的。所以這兩件事情對(duì)我的轉(zhuǎn)變非常大,視野的轉(zhuǎn)變,思考邏輯的轉(zhuǎn)變非常大。
第一個(gè)階段,突破我們只能選擇OpenSource的禁錮,去選擇自研。我們自研以后,這個(gè)東西成熟了,經(jīng)過(guò)論證了又推廣到開(kāi)源社區(qū)。
現(xiàn)在說(shuō)回來(lái),我們一開(kāi)始走自研,而且我們自研的東西可以做到世界領(lǐng)先。后來(lái)我們又認(rèn)為,再往大了去看的話,還是要開(kāi)源,走出去。遇到螞蟻金服這樣體量的公司,或者說(shuō)像我們這樣的團(tuán)隊(duì),其實(shí)是非常寶貴的一個(gè)機(jī)會(huì)。一個(gè)團(tuán)隊(duì)會(huì)在一個(gè)方向上,比如說(shuō)數(shù)據(jù)庫(kù)可能有幾百人,中間件可能有百人,這是一個(gè)非常難得的機(jī)會(huì),能夠把一些非常聰明的人才聚集在一起。我們應(yīng)該在標(biāo)準(zhǔn)化上,在軟件技術(shù)棧的標(biāo)準(zhǔn)化上,為社區(qū)做一些事情,為更大的領(lǐng)域去貢獻(xiàn)我們的力量,所以最后又走出去。
王淵命:前面提到SOFA,正好你前面也簡(jiǎn)單說(shuō)了一下SOFA的歷史。我正好有一個(gè)關(guān)于SOFA的問(wèn)題,SOFA在業(yè)界,很早大家就知道有這么一個(gè)東西,但是大家不知道它到底長(zhǎng)什么樣,并且它里面的組件很多很多,SOFA到底可以承載哪些職能,大家沒(méi)有一個(gè)比較清楚的概念。并且最近我也看到你們是開(kāi)源了一部分。能不能比較詳細(xì)的介紹一下,SOFA從上面的業(yè)務(wù)層到下面基礎(chǔ)設(shè)施,中間的這一層上,邊界在哪里?讓大家有一個(gè)概念。它已經(jīng)迭代了很多版本了,您剛剛也簡(jiǎn)單說(shuō)了一下它的情況。我想了解一下它的每次大的迭代之間,都有一些什么樣的契機(jī),我要做這個(gè)事情,把它要迭代一個(gè)新的版本?
楊冰:SOFA的邊界在我們內(nèi)部是一次一次擴(kuò)大的。最早的時(shí)候SOFA是Service Oriented Fabric Architecture,它就是一個(gè)Famework,就是像Spring這樣一個(gè)架構(gòu),集成了RPC、研發(fā)框架、腳手架類似這樣的一些東西。那個(gè)階段,它是解決研發(fā)效率的一個(gè)Famework而已。再往前發(fā)展,我們發(fā)現(xiàn)其實(shí)很多的理念是一樣的,所以我們把SOFA的邊界擴(kuò)大到整個(gè)中間件的范疇。我們覺(jué)得它應(yīng)該解決的不是一個(gè)Famework,因?yàn)樗鳛橐粋€(gè)母體,它作為Famework也是自帶生態(tài)屬性的軟件。它應(yīng)該在應(yīng)用和底層基礎(chǔ)設(shè)施之間,很多邏輯都在這一層,所以我們認(rèn)為SOFA應(yīng)該是整個(gè)中間件。
再往后繼續(xù)擴(kuò)大,我們發(fā)現(xiàn)中間件自己搞定單元化架構(gòu)是不夠的,所以我們把邊界擴(kuò)大到DevOps平臺(tái),監(jiān)控這一塊,再加上我們內(nèi)部有CICD持續(xù)交付平臺(tái),這些也都納入到SOFA的邊界里面,我們內(nèi)部稱之為大SOFA體系。我們認(rèn)為這個(gè)是可以去承載整個(gè)分布式架構(gòu)的比較完整的版本,就是Runtime+DEV+OPS這三個(gè)部分的組合,稱之為一個(gè)大SOFA的概念。
但是我們這一次開(kāi)放出來(lái)的部分,還是聚焦在中間件這一層。因此上午演講放出來(lái)的大圖,我們看到的還是是那個(gè)方向上的一些組件。包括微服務(wù)、鏈路、消息、數(shù)據(jù)、分布式事務(wù)。OpenSource主要還是在這個(gè)方向上為主。
黃挺:我來(lái)回答一下第二個(gè)問(wèn)題。SOFA經(jīng)歷過(guò)多次版本迭代。SOFA的版本迭代和公司的架構(gòu)發(fā)展是密切相關(guān)的。比如說(shuō)我們從SOFA剛剛開(kāi)始的時(shí)候,會(huì)做模塊化的事情。到了SOFA2開(kāi)始引入整個(gè)微服務(wù)的體系。到SOFA3我們希望能夠在微服務(wù)體系下,能夠把一些服務(wù)聚合在一起,組成一個(gè)鏈路出來(lái),這就是我們之前說(shuō)的合并部署。隨著每年的交易量的不斷上升,讓我們必須從單體架構(gòu)轉(zhuǎn)到服務(wù)化架構(gòu),再往前演進(jìn)到單元化架構(gòu),再往前演進(jìn)到彈性架構(gòu)。SOFA大部分的功能升級(jí)都是伴隨著整個(gè)公司的技術(shù)架構(gòu)目標(biāo)上更大的一些挑戰(zhàn)進(jìn)行的。
楊冰:我補(bǔ)充兩個(gè)階段,第四個(gè)階段,其實(shí)我們是SOFA4,SOFA4核心的事情是為開(kāi)源做準(zhǔn)備,以及為多租戶做準(zhǔn)備,因?yàn)槲覀冊(cè)谀莾赡曜龅腟OFA4,其實(shí)在核心功能上沒(méi)有太大變化,但是我們孵化出來(lái)幾個(gè)事情。
第一個(gè)是輕量化的版本,因?yàn)橐郧耙粋€(gè)Tomcat加一個(gè)Famework這樣一個(gè)模式是比較傳統(tǒng)的,整個(gè)業(yè)界發(fā)展方向是這樣的。所謂的云原生,在它交付的時(shí)候也更加完整、一體化。這個(gè)理念我們是比較認(rèn)的,所以我們?cè)赟OFA的基礎(chǔ)上再重構(gòu)代碼,集成了 Spring Boot,以這樣的一種方式去做整體化交付。而這個(gè)東西的理念和Ruby是比較像的,是非常適合快速一體化的交付,所以SOFA也演進(jìn)到這個(gè)方向。并且因?yàn)槲覀冊(cè)谧鰧?duì)外的事情,我們?cè)?SOFA4 里面把多租戶的隔離能力也做出來(lái)。當(dāng)來(lái)一個(gè)用戶的時(shí)候,不是說(shuō)直接給用戶部署一套新的中間件。在多租戶的模式下,只要部署一套就夠了。新來(lái)一個(gè)用戶,在上面再隔離出一個(gè)租戶就行。這樣的話,在成本,運(yùn)維各方面都有非常大的提升。
現(xiàn)在Mesh部分,如果說(shuō)真要?dú)w個(gè)類,我們內(nèi)部并沒(méi)有特別想過(guò)怎么定義它,但是我覺(jué)得如果真要?dú)w個(gè)類,可以認(rèn)為是我們往第五代邁進(jìn)。因?yàn)镸esh是一個(gè)非常大的方向。所以我們是把SOFA冠在了 Mesh 的前面,而不是說(shuō) Mesh 僅僅是服務(wù)的部分,它其實(shí)應(yīng)該是整個(gè)中間件比較大的方向,基礎(chǔ)設(shè)施往下承載的方向。
王淵命:那順便聊聊 Mesh 這一塊的內(nèi)容,其實(shí)我很早關(guān)注過(guò)這一塊的東西。這一塊其實(shí)本質(zhì)上帶來(lái)變化是團(tuán)隊(duì)的協(xié)作方式不一樣了,以前是開(kāi)發(fā)出來(lái)一個(gè)開(kāi)發(fā)框架,開(kāi)發(fā)團(tuán)隊(duì)要用我這個(gè)框架,框架升級(jí)的時(shí)候要追著開(kāi)發(fā)團(tuán)隊(duì)說(shuō),你要把我的版本給升了。中間件這一層,沒(méi)有獨(dú)立的升級(jí),也限制了迭代的演進(jìn)的速度。但是 Mesh 把這一目標(biāo)達(dá)到了。在你們實(shí)踐過(guò)程當(dāng)中,你們現(xiàn)在已經(jīng)感受到這種好處了嗎?你們團(tuán)隊(duì)協(xié)作上的變化有沒(méi)有比較真實(shí)的案例或者是故事與大家分享。
黃挺:我們剛剛聊到 Mesh 在螞蟻金服內(nèi)部也是在一個(gè)起步階段。我們現(xiàn)在在基于原來(lái)的產(chǎn)品落地,現(xiàn)在有二三十個(gè)系統(tǒng)正在使用。其實(shí)我們?cè)谏暇€過(guò)程當(dāng)中,已經(jīng)感受到了這一點(diǎn)。之前,比如說(shuō)我們做多元化的改造,其實(shí)涉及到一些路由規(guī)則的變化。這個(gè)時(shí)候如果你的路由規(guī)則變化的計(jì)算出現(xiàn)問(wèn)題的話,你就要推著他們?nèi)プ錾?jí)。如果說(shuō)遇到一個(gè)Bug,之前我們推著應(yīng)用去改造,說(shuō)你給我安排一個(gè)迭代吧,你把這個(gè)東西升級(jí)一下,這個(gè)東西可能會(huì)對(duì)你的影響很大,但是業(yè)務(wù)方有自己的業(yè)務(wù)需求,我的客戶在等著我,產(chǎn)品經(jīng)理在追著我說(shuō),要上別的功能。使用Mesh之后,我們的協(xié)作方式就很簡(jiǎn)單,現(xiàn)在我們?nèi)ズ?SRE 確定說(shuō),我發(fā)現(xiàn)我有這個(gè)Bug,然后我要去做升級(jí)了。我們和SRE確定之后,我們就開(kāi)始去做一個(gè)灰度升級(jí),灰度完成之后,就可以去做全面的升級(jí)。這個(gè)周期是非常快的,我們這個(gè)版本現(xiàn)在推到二三十個(gè)應(yīng)用當(dāng)中,只需要一周的時(shí)間就夠了,之前二三十個(gè)系統(tǒng)起碼要好幾個(gè)月。
楊冰:我們看重這個(gè)交付的標(biāo)準(zhǔn)化,因?yàn)槟阍诳蛻舳耍鋵?shí)你很難標(biāo)準(zhǔn)化,無(wú)非就是做多語(yǔ)言,每個(gè)都做一遍,這樣很難被標(biāo)準(zhǔn)化,什么東西最容易把變化給收攏呢?他是?個(gè)獨(dú)?的運(yùn)行時(shí)的時(shí)候,變化是比較容易被收攏的。這個(gè)時(shí)候我們把最關(guān)鍵的,變化最頻繁的,也承載了架構(gòu)的那部分關(guān)鍵代碼沉到 SideCar 里面(這個(gè)基本上是由中間件團(tuán)隊(duì)和基礎(chǔ)設(shè)施團(tuán)隊(duì)維護(hù)),這樣就可以把它作為一個(gè)獨(dú)立的模塊去演進(jìn)它。這個(gè)無(wú)論是對(duì)上云,還是我們走出去開(kāi)放,都有很大的益處。我們這個(gè)規(guī)模,包括面向云這樣的規(guī)模,是非??粗鼗A(chǔ)設(shè)施迭代更新的效率的。尤其你要讓客戶升級(jí)升級(jí),那更復(fù)雜。
魏佳:結(jié)合您前面提到的,你們定位于中間件這一層,有不同、復(fù)雜業(yè)務(wù)的接入方,你們?cè)谡麄€(gè)落地也好,推的過(guò)程中也好,有一些是來(lái)自于技術(shù)之外的阻力或者是問(wèn)題嗎?尤其是對(duì)于阿里或者是螞蟻金服這樣一個(gè)很大的業(yè)務(wù)組織。
楊冰:其實(shí)如果說(shuō)我們是自己革自己的命,其實(shí)這個(gè)最大的阻力就沒(méi)了。阻力來(lái)自于幾個(gè)方面。第一個(gè)是說(shuō)我們這個(gè)價(jià)值是不是make sense。我們和老板是去聊過(guò)的,他是認(rèn)這個(gè)方向?qū)ξ覀儺a(chǎn)生的價(jià)值是巨大的。因?yàn)榻桓缎实奶岣?,是現(xiàn)在制約基礎(chǔ)架構(gòu)向前演進(jìn)的最關(guān)鍵的要素。
二是我們公司有一個(gè)團(tuán)隊(duì)有很大權(quán)力和影響力,我們稱之為風(fēng)險(xiǎn)部門。谷歌提出了SRE,我們也有SRE,谷歌的R是Reliability,我們的R是Risk。有一個(gè)部門其實(shí)他們這個(gè)團(tuán)隊(duì)會(huì)非常關(guān)注這個(gè)R,而且這個(gè)在螞蟻是底線,是生命線。現(xiàn)在有很多方向,包括我們?cè)诟愕募t藍(lán)軍演練,攻防這些東西,是非常依賴于中間件的。這一層基礎(chǔ)設(shè)施被拿到了我們自己手里,可以更加快速修復(fù)治愈的時(shí)候,他們整個(gè)SRE的風(fēng)險(xiǎn)也會(huì)快速收斂。如果說(shuō)要推到全站去升級(jí)的話,這件事情他們會(huì)很頭大。所以在他們這邊的阻力也會(huì)小很多,他們也是非常擁抱這個(gè)方向的。
因此這幾個(gè)方面,一個(gè)是我們自己,一個(gè)是老板,一個(gè)是SRE,這三個(gè)都順了之后就順多了。剩下的無(wú)非是一些語(yǔ)言團(tuán)隊(duì),這些語(yǔ)言團(tuán)隊(duì)基本上還是比較擁抱的。因?yàn)樗麄兛赡苋绻窃谛」镜脑挘遣糠殖休d基礎(chǔ)設(shè)施的代碼穩(wěn)定了也就穩(wěn)定了,他們就是做業(yè)務(wù)了。但是在螞蟻這種業(yè)務(wù)在飛快往前演進(jìn)的地方,基礎(chǔ)架構(gòu)是看不到穩(wěn)定的那一天的,他們做了一段時(shí)間之后會(huì)覺(jué)得非常累,他可能要和中間件一樣,團(tuán)隊(duì)發(fā)展到一樣的規(guī)模才可以支撐基礎(chǔ)架構(gòu)往前演進(jìn)。?且每次基礎(chǔ)架構(gòu)升級(jí)都會(huì)消耗掉他們大量的精力。因此他們覺(jué)得可以在深度優(yōu)化,以及業(yè)務(wù)創(chuàng)新上去花精力做一些小而美的事情。而在跟著整個(gè)基礎(chǔ)設(shè)施跑的時(shí)候,是非常消耗人力的。所以他們也非常擁抱這個(gè)方向,大家一起開(kāi)源共建。
王淵命:剛剛說(shuō)到 Mesh,你們的定位是 SOFA 5。我們看到您所舉到的 Mesh 所能達(dá)到的功能里,明顯有一部分,原來(lái) SOFA 提供的一些功能可以遷移過(guò)來(lái)了,可以用 Mesh 實(shí)現(xiàn)一部分。這當(dāng)中有一部分 SOFA4 的版本和 SOFA5 的版本,怎么樣來(lái)進(jìn)行融合?
楊冰:它本質(zhì)上把SDK給 Mesh 化,給Runtime化了。
王淵命:最后的演進(jìn),有一部分是互相融合,最后哪些組件是和Mesh整合,哪些組件被替代了?
楊冰:我之前也分享了一些,我們的原則還是那句話能復(fù)用的就復(fù)用。因?yàn)?istio 里面定義了XDS等很多DS這種東西,這些是服務(wù)發(fā)現(xiàn)的標(biāo)準(zhǔn)。這個(gè)東西我們是覺(jué)得非常有價(jià)值的。像社區(qū)走得慢的,我們就自己搞,然后patch回去。如果社區(qū)不接收,那我們就自己做一個(gè)分支,我們有一部分人會(huì)投入到開(kāi)源運(yùn)作。我們想辦法把我們的理念、想法、推到社區(qū),期望他們標(biāo)準(zhǔn)化。當(dāng)年Docker,還有 Kubernetes 也是這么走過(guò)來(lái)的。一開(kāi)始設(shè)計(jì)出來(lái)的時(shí)候也沒(méi)有那么完美。但是到后來(lái)各種網(wǎng)絡(luò)、容器的標(biāo)準(zhǔn)化,OCI的標(biāo)準(zhǔn)都出來(lái)了。我們也希望在微服務(wù)領(lǐng)域做一些標(biāo)準(zhǔn)化的工作。
剛剛說(shuō)到的一些組件,比如說(shuō)服務(wù)注冊(cè)中心,是我之前提到到過(guò)的非常關(guān)鍵的部分。其實(shí)我們和 istio 的人聊過(guò),其實(shí)谷歌做 istio 這一塊的人,是谷歌 Gateway 這個(gè)部門轉(zhuǎn)型過(guò)來(lái)去做的。因?yàn)樗X(jué)得這個(gè)東西不就我和我們整個(gè) Gateway 做的事情非常像嗎?而且他們把很多管控的理念加入進(jìn)來(lái),向前演進(jìn)。但是說(shuō)老實(shí)話,谷歌這樣的公司雖然很偉大,但是在微服務(wù)領(lǐng)域,他們趟的坑我相信是沒(méi)有阿里多的。因?yàn)樗赡苤饕蠥I、搜索,它的業(yè)務(wù)形態(tài)真的沒(méi)有金融那么復(fù)雜。我們也非常直接問(wèn)過(guò)他們團(tuán)隊(duì)的人,微服務(wù)在你們內(nèi)部有多少話語(yǔ)權(quán),其實(shí)是沒(méi)有太大話語(yǔ)權(quán)的。我們認(rèn)為雖然谷歌這家公司,也包括IBM,有很多的沉淀,有非常多的牛人,但是他趟過(guò)的坑沒(méi)有我們多。我們非常認(rèn)同他們的方向、抽象能力以及設(shè)計(jì)能力。我們更多愿意扮演合作者的角色去推動(dòng)社區(qū)往很好的方向發(fā)展。我們會(huì)自己做像服務(wù)注冊(cè)中心這樣的組件。所以現(xiàn)在Istio 的服務(wù)注冊(cè)發(fā)現(xiàn)其實(shí)對(duì)接的是 Kubernetes 里面的 ETCD,但是 ETCD 其實(shí)沒(méi)有我們內(nèi)部這種高可?的能力。將來(lái)如果說(shuō)這個(gè)社區(qū)比我們做的好了,我們會(huì)放棄掉自己的組件往社區(qū)的方向去發(fā)展。但是現(xiàn)在我覺(jué)得社區(qū)是搞不定的,所以在落地的階段,我們會(huì)把服務(wù)注冊(cè)中心等一些關(guān)鍵的組件自己來(lái)做。
王淵命:既然可以把 Mesh 理解成網(wǎng)絡(luò)層,我們把所有的中間件放在網(wǎng)絡(luò)層,而網(wǎng)絡(luò)層最好的提供方,要么是容器平臺(tái),要么是云平臺(tái)。下一步的容器平臺(tái)或者云平臺(tái)也會(huì)往這個(gè)方向發(fā)展,這兩個(gè)會(huì)有一個(gè)什么樣的結(jié)合演變方式?比如說(shuō)剛剛討論的 istio Sidecar 和Kubernetes其實(shí)是非常密切的,非常依賴于Kubernetes的能力,沒(méi)有這個(gè)平臺(tái)的支撐,它是很難去運(yùn)維的。這一塊兩位有什么樣的看法?現(xiàn)在業(yè)界做云的有沒(méi)有這方面的動(dòng)作?
楊冰:你是說(shuō)這個(gè)方向怎么和Kubernetes這個(gè)方向以及非Kubernetes的方向更好的融合是嗎?
王淵命:Mesh 這一層標(biāo)準(zhǔn)化了,那會(huì)不會(huì)變成云平臺(tái)或者容器平臺(tái)默認(rèn)的,就在網(wǎng)絡(luò)層支持的一套能力?
楊冰:谷歌之所以會(huì)出來(lái)做Service Mesh,是因?yàn)?Kubernetes 最強(qiáng)的還是在編排、調(diào)度,整個(gè)模型的抽象,從而讓PaaS更加簡(jiǎn)單和輕量級(jí)。但是它在微服務(wù)這個(gè)層面上,雖然提供這個(gè)能力,但是它的玩法缺不豐富,而且相對(duì)也比較簡(jiǎn)單。就像我們內(nèi)部都有很復(fù)雜的玩法,服務(wù)的動(dòng)態(tài)上線、下線,基于服務(wù)粒度的彈性伸縮,這種能力很難在一個(gè)基于service這個(gè)維度去做。但是 Service Mesh 這個(gè)方向是可以讓微服務(wù)更加容易地往基礎(chǔ)設(shè)施走,這是谷歌做 Service Mesh 的一個(gè)用意,我們希望微服務(wù)這一層走向標(biāo)準(zhǔn)化。
但是就 Kubernetes 和 Service Mesh 這一層結(jié)合的事情,我們?cè)诤退麄?istio 團(tuán)隊(duì))聊的時(shí)候,他們也提到過(guò),首先這個(gè)方向雖然是為了結(jié)合Kubernetes去做的更大,往微服務(wù)這個(gè)層面上去更進(jìn)一步,把這一層去做表征化。但是Service Mesh本身它其實(shí)是一個(gè)可以支持多平臺(tái)的一個(gè)架構(gòu)的,只不過(guò)我理解他們團(tuán)隊(duì)現(xiàn)在應(yīng)該是優(yōu)先在做對(duì)Kubernetes的集成。因?yàn)樗婚_(kāi)始在設(shè)計(jì)那個(gè)藍(lán)圖的時(shí)候,就考慮過(guò)能夠運(yùn)行在非Kubernetes的平臺(tái)上。對(duì)用戶來(lái)說(shuō),一旦標(biāo)準(zhǔn)化之后,其實(shí)他也不關(guān)心底下是不是 Kubernetes 。如果說(shuō)他成為一個(gè)微服務(wù)的標(biāo)準(zhǔn),他不管你是 Container Based 還是 VM Based 理論上都是應(yīng)該可以的。Mesh是往上去抽了一層,做多元化適配,多種基礎(chǔ)設(shè)施的適配,只是優(yōu)先在做Kubernetes的適配。另外他在控制面這一層也是跨平臺(tái)的設(shè)計(jì)。它不是說(shuō)只是運(yùn)行在谷歌云上,它是基于混合云架構(gòu)去設(shè)計(jì)的,基于聯(lián)邦論架構(gòu)去設(shè)計(jì)的,只不過(guò)現(xiàn)在他也沒(méi)有做這部分的特性,但是他們有規(guī)劃去做。而且這一層的規(guī)劃,比現(xiàn)在他們文檔里面看到的東西,可能會(huì)大得多。但是他們現(xiàn)在做比較聚焦于在Kubernetes的適配這個(gè)方向上做。所以這個(gè)和我們的想法也是?較相近的,我們覺(jué)得也是這樣的,而不僅是 Istio 現(xiàn)在的這些東西。
魏佳:回到您前面說(shuō)到的整個(gè)的過(guò)程,如果說(shuō)跳脫出來(lái)看,您覺(jué)得其他的同樣在做互聯(lián)網(wǎng)金融或者是傳統(tǒng)金融轉(zhuǎn)型的,有多少可以從你們類似的螞蟻金服或者是原先的支付寶這樣一個(gè)經(jīng)驗(yàn)借鑒出來(lái),在技術(shù)層面的。我問(wèn)這個(gè)問(wèn)題代表的更多的是,因?yàn)槟澜鹑诳萍枷嚓P(guān)的中小規(guī)模的企業(yè)非常多,有一些在金融領(lǐng)域遇到的一些問(wèn)題是類似的。但是他們的技術(shù)積累、團(tuán)隊(duì)等等都遠(yuǎn)遠(yuǎn)比不上阿里系這樣一個(gè)成熟的體系。有沒(méi)有能讓這些更輕量的玩家,技術(shù)儲(chǔ)備比較弱的玩家,也能夠借鑒到你們正確的一個(gè)路徑向前走?
回答:我這個(gè)話題在剛剛分享當(dāng)中也大概解答過(guò)。我個(gè)人的觀點(diǎn)是這樣的,金融這個(gè)領(lǐng)域,因?yàn)樗烊皇侨谌氲缴罘椒矫婷娴幕A(chǔ)設(shè)施。金融也好,支付也好,無(wú)論是基金還是保險(xiǎn)還是什么形態(tài),都是服務(wù)于個(gè)人,服務(wù)于機(jī)構(gòu)的,是滲透到生活的方方面面的。金融在任何一個(gè)方向在發(fā)展的時(shí)候,都會(huì)面臨到比較大的流量的問(wèn)題。有可能會(huì)出現(xiàn)可能針對(duì)機(jī)構(gòu)的一些保險(xiǎn)或者是機(jī)構(gòu)的基金,但是肯定也會(huì)針對(duì)于C類用戶的,一旦對(duì)接到C類用戶,對(duì)接到互聯(lián)網(wǎng)渠道,它的流量其實(shí)是?個(gè)解決不掉的問(wèn)題。我們?cè)谶@一塊去做了很多的探索。其實(shí)跟整個(gè)集團(tuán)的一些團(tuán)隊(duì)不太一樣的地方是在金融要求下做事情。所謂的金融要求有幾個(gè)方面。一個(gè)是我們的SRE的定義是不同的,我們會(huì)把風(fēng)險(xiǎn)放在第一位,可用性、兜底是被放在第一位的。第二,我們是被強(qiáng)監(jiān)管的。所以我們?cè)谌轂?zāi)、數(shù)據(jù)無(wú)損,類似于這方面的要求更高。戴著金融的枷鎖,既要跑得快又要跑的穩(wěn)。這些方面的平衡是深深寫在我們的代碼里面的。如果說(shuō)要在快、量、可靠、安全方面上去做,我覺(jué)得我們的技術(shù)、理念都是可以借鑒甚至拿過(guò)去用的,這方面會(huì)幫他少趟很多的路。但是現(xiàn)在的Fintech,這個(gè)詞雖然說(shuō)有點(diǎn)被說(shuō)濫了,也有一些誤解,但是還是有很多創(chuàng)新領(lǐng)域上的一些探索。無(wú)論是安全、風(fēng)控還是投研、投顧、質(zhì)研,以及區(qū)塊鏈方面的探索,我覺(jué)得這個(gè)形態(tài)會(huì)非常豐富。
這一塊螞蟻金服是非常踏踏實(shí)實(shí)地在做一些底層方向上的事情。這一塊的想像空間和能做的事情遠(yuǎn)比螞蟻金服現(xiàn)在做的東西要多。而且這個(gè)方向的成熟,不像我們現(xiàn)在開(kāi)放出來(lái)的那部分技術(shù)那么成熟。我們開(kāi)放出來(lái)的那部分技術(shù),大家是可以參與、共建,是大家都會(huì)遇到的。另外一部分,我覺(jué)得可以去借鑒和溝通,因?yàn)槲矣X(jué)得遠(yuǎn)遠(yuǎn)沒(méi)有到標(biāo)準(zhǔn)化的階段。
魏佳:你前面提到了區(qū)塊鏈,二位從個(gè)人的角度怎么去看洶涌而來(lái)的區(qū)塊鏈大潮,當(dāng)然避免不了有一些負(fù)面的事情或者是消息。但是假設(shè)是從技術(shù)角度本身而言,因?yàn)樗旧砗唾~本金融有一個(gè)天然契合的層面,從這個(gè)維度來(lái)看,你們個(gè)人怎么看這樣一個(gè)趨勢(shì)?
王淵命:我追問(wèn)一下,區(qū)塊鏈大家都說(shuō)是金融革命,它可能是想重新定義金融的規(guī)則。在這樣的情況下,又和螞蟻金服這樣的金融的體系肯定是有互相影響的地方。這個(gè)我不知道你們個(gè)人和內(nèi)部是怎么看待的?
楊冰:我也只能說(shuō)一些我能說(shuō)的個(gè)人觀點(diǎn)。如果有機(jī)會(huì)可以采訪到我們這邊的區(qū)塊鏈負(fù)責(zé)人會(huì)更好一些,因?yàn)槲覍?duì)這個(gè)東西的理解沒(méi)有那么透。確實(shí)像您所說(shuō),外面有很多的想法。我們比較明確的幾個(gè)點(diǎn)是,第一,螞蟻金服不會(huì)去做“幣”這樣的一些東西。第二,我們的一些應(yīng)用場(chǎng)景(包括現(xiàn)在能夠?qū)ν庹f(shuō)的,比如說(shuō)溯源、公益等等),螞蟻金服是投重兵在做這件事情。因?yàn)槲覀兎浅UJ(rèn)同這個(gè)東西對(duì)金融帶來(lái)的變革,這是不用避諱的。我們是實(shí)實(shí)在在做和生活、金融便利性相關(guān)的一些方向的探索。我還是比較認(rèn)同這個(gè)方向。我們內(nèi)部更多聊的不是某一個(gè)區(qū)塊鏈技術(shù)或者是某一個(gè)區(qū)塊鏈思想,因?yàn)閰^(qū)塊鏈已經(jīng)變成默認(rèn)事實(shí)。按照這個(gè)標(biāo)準(zhǔn)的話,很多事情確實(shí)是好做很多。就像我們真出了量子計(jì)算機(jī)之后,計(jì)算機(jī)上面的邏輯,比如說(shuō)我們搞的要死的同城雙活就不要搞了。
區(qū)塊鏈記錄一旦寫入不能篡改,因此它本質(zhì)上是一個(gè)加密的分布式的賬本,它不可篡改,而且會(huì)廣播達(dá)成一致性。這三個(gè)關(guān)鍵要素,一旦變成基礎(chǔ)設(shè)施,安全性可以得到保障的話,某一個(gè)場(chǎng)景軟件的寫法會(huì)完全被顛覆掉,包括產(chǎn)出的場(chǎng)景都會(huì)被顛覆掉這是我們比較認(rèn)同的,至于說(shuō)什么場(chǎng)景我也不方便說(shuō)。區(qū)塊鏈的思想還是很好的。
王淵命:我想問(wèn)一下SOFA開(kāi)源的問(wèn)題,SOFA很早以前就打算開(kāi)源了,但是到現(xiàn)在才開(kāi)出來(lái)。因?yàn)樗且粋€(gè)龐大的體系,開(kāi)源有各種阻力,我們可以想到的,比如說(shuō)開(kāi)源出來(lái)要?jiǎng)澐忠粋€(gè)明確的邊界,哪些事情是通用場(chǎng)景的,哪些是特殊場(chǎng)景,這個(gè)你們是如何劃分這個(gè)邊界和思考的?另外是內(nèi)部的認(rèn)識(shí)上,這樣一個(gè)東西是核心競(jìng)爭(zhēng)力之一,我們把它開(kāi)源出去,大家的認(rèn)識(shí)上會(huì)不會(huì)有一些沖突?
黃挺:首先我回答第一個(gè)問(wèn)題,因?yàn)镾OFA發(fā)展了這么多年,是有非常重的歷史包袱的,這也是我們?yōu)殚_(kāi)源準(zhǔn)備了非常長(zhǎng)時(shí)間的原因。在從SOFA3到SOFA4的整個(gè)過(guò)程當(dāng)中,包括把整個(gè)SOFA做輕量化的過(guò)程當(dāng)中,其實(shí)就是在做這件事情。有一些公用的能力(我們覺(jué)得這個(gè)東西,沒(méi)有和螞蟻整個(gè)架構(gòu)或者是業(yè)務(wù)有非常強(qiáng)的相關(guān)的東西),我們都希望可以開(kāi)源出來(lái)。我們做開(kāi)源這件事情不會(huì)把我們代碼分為完全兩套東西,然后兩個(gè)分別演進(jìn),我們覺(jué)得這不是開(kāi)源的正確做法。
另外開(kāi)源對(duì)我們整個(gè)團(tuán)隊(duì)的消耗是非常大的,我們希望用同一套代碼來(lái)實(shí)現(xiàn)內(nèi)部的兼容和外部的開(kāi)源,我們會(huì)在開(kāi)源的代碼當(dāng)中留一些比較好的擴(kuò)展點(diǎn),這也是對(duì)我們本身代碼架構(gòu)可擴(kuò)展性的挑戰(zhàn),目前我們做到的程度就是這樣的。你剛剛講到開(kāi)源對(duì)我們內(nèi)部?jī)r(jià)值的問(wèn)題。
王淵命:對(duì),就是怎么統(tǒng)一這個(gè)認(rèn)知,比如說(shuō)有人覺(jué)得這件事情是我們的核心競(jìng)爭(zhēng)力,不應(yīng)該開(kāi)源。
黃挺:當(dāng)然,這肯定是我們一部分核心競(jìng)爭(zhēng)力,但是我們已經(jīng)發(fā)展了這么多年,本身SOFA當(dāng)中用了非常多的開(kāi)源軟件。從技術(shù)人員角度來(lái)說(shuō),如果我們已經(jīng)能夠在業(yè)界某些方面做到領(lǐng)先程度了,我覺(jué)得我們應(yīng)該是去回饋社區(qū)的。
另一方面,雖然說(shuō)螞蟻金服體量很大,我們?cè)诮鹑谏厦嬗蟹浅6嗟男螒B(tài),包括保險(xiǎn)、基金、銀行,以及本身我們的一些支付業(yè)務(wù)。但是實(shí)際上整個(gè)世界其實(shí)是很大的。我們從做金融云開(kāi)始,看到了一個(gè)更大的世界。如果說(shuō)為了我們整套體系能有更多人去用,在更多的場(chǎng)景下去鍛煉的話,開(kāi)源也是必須要去走的一條路。這也是從產(chǎn)品發(fā)展方向上來(lái)看的。因?yàn)楫吘箖?nèi)部雖然很大,但是場(chǎng)景比外面的世界還是要小很多。
楊冰:我補(bǔ)充一些宏觀的思考。您提到核心競(jìng)爭(zhēng)力,其實(shí)我們不否認(rèn)這個(gè)東西。其實(shí)就像螞蟻去做科技開(kāi)放這件事情的道理是一樣的。螞蟻看到的是一個(gè)更大生態(tài)的可能性。我覺(jué)得螞蟻或者是阿里最有意思的就是聚集了一幫確實(shí)很有夢(mèng)想的人,我們相信這件事情。這么大的一個(gè)可能性,我們發(fā)現(xiàn)瓶頸確實(shí)在技術(shù)上,這雖然不是在我們的瓶頸,但是可能是一些合作伙伴或者客戶的瓶頸。如果說(shuō)這些問(wèn)題可以被解決的話,整個(gè)生態(tài)不是一個(gè)零和游戲,螞蟻金服自己也會(huì)收獲更多,所以我們?cè)敢忾_(kāi)放出來(lái)一些東西。
第二,回饋是另一方面的考慮。我們開(kāi)源不是說(shuō)開(kāi)放出來(lái)就可以了,我們希望做一些運(yùn)營(yíng),希望更多人加入進(jìn)來(lái),因?yàn)殚_(kāi)源或者是社區(qū)不是一言堂,要有更多人去用,這種基礎(chǔ)性的軟件是會(huì)有網(wǎng)絡(luò)效應(yīng)的,我們希望有更多人進(jìn)來(lái)去把它變的更豐富,去應(yīng)對(duì)更復(fù)雜場(chǎng)景。并且螞蟻金服會(huì)跳出來(lái)去做標(biāo)準(zhǔn)的倡導(dǎo)者,因?yàn)橛幸恍〇|西會(huì)在基礎(chǔ)設(shè)施層面,或者是一些基礎(chǔ)架構(gòu)軟件層面,如果變成標(biāo)準(zhǔn)化的話,我們自己也會(huì)受益更多?,F(xiàn)在國(guó)家也在支持這個(gè)事情,自主研發(fā)等等。我們是希望把它變成在金融行業(yè)的基礎(chǔ)設(shè)施,這條路應(yīng)該是挺難的,但是螞蟻金服是最應(yīng)該去做這件事情的一家公司。
王淵命:我突然想到一個(gè)問(wèn)題,做為一個(gè)技術(shù)人我也一直在思考一個(gè)問(wèn)題。你看我們單說(shuō)服務(wù)端的,前幾年冒出來(lái)的 Docker,最近一直很火的 Mesh,這些點(diǎn)你單拎出來(lái),并不是一個(gè)很堅(jiān)深復(fù)雜的技術(shù),說(shuō)我們以前想不到的,以前我們可能就零散的去應(yīng)用這些技術(shù)了,并且實(shí)際上解決這些問(wèn)題了,但是沒(méi)有做的就是把它能抽象成一套非常好的工具或者是標(biāo)準(zhǔn)去把它推廣出來(lái)。這個(gè)事情,當(dāng)然從技術(shù)深度上,我覺(jué)得現(xiàn)在國(guó)內(nèi)的開(kāi)發(fā)工程師沒(méi)有太大的差距了,但是怎么產(chǎn)生這種想法,以及這種想法最后到落地,要有一個(gè)想法、醞釀、策劃的過(guò)程,這個(gè)過(guò)程我們國(guó)內(nèi)工程師是比較缺乏的,這件事情,您覺(jué)得大家應(yīng)該在哪些方面去增強(qiáng)?
楊冰:我覺(jué)得不光是工程師的問(wèn)題,其實(shí)這是一種文化的差異。美國(guó)或者是歐洲,他們是比較講究這種社區(qū)文化的,是比較開(kāi)放的模式。他們?cè)谏鐓^(qū)協(xié)同還有這方面其實(shí)會(huì)做的更好一些。而這個(gè)東西又是需要大量社區(qū)協(xié)同的。
第二,我覺(jué)得還是科技人才和教育體系帶來(lái)的一些變化。因?yàn)閲?guó)外可能很早人們就開(kāi)始寫論文了,所以我們覺(jué)得老外抽象能力很強(qiáng),因?yàn)樗麄冊(cè)诮痰臅r(shí)候是已經(jīng)體系化的。而國(guó)內(nèi)我們這一代人在人才儲(chǔ)備和想法上會(huì)比老外少很多,我們下一代會(huì)比我們這一代好很多。所以不是沒(méi)有這個(gè)深度,沒(méi)有這個(gè)能力,而是說(shuō)在思維能力上就會(huì)少很多這樣的人和思考的方式。所以第一個(gè)是想到的人就比較少,第二個(gè)是想到之后,他愿意分享出來(lái),以協(xié)同化模式去運(yùn)作的人也少。
第三,就OpenSource來(lái)說(shuō),真要做大的OpenSource還是一半商業(yè),一半技術(shù)的。所以你會(huì)發(fā)現(xiàn)其實(shí)國(guó)外能夠深刻理解這個(gè)商業(yè)生態(tài)以及和技術(shù)的結(jié)合,如何把它平衡好,以基金會(huì)的方式去運(yùn)作的人才。這個(gè)已經(jīng)不是對(duì)程序員的要求了,這種類型的人才國(guó)外比國(guó)內(nèi)多太多了。因?yàn)槲覀兘谝苍谧鯫penSource,在找開(kāi)源圈子的人,這種人是鳳毛麟角,還是非常稀缺的。而且我覺(jué)得,做開(kāi)放、開(kāi)源這件事情就是一個(gè)人脈圈,你得有這樣的人,理解共同的理念。大家可以看一下《大教堂與集市》那本書,他講了整個(gè)黑客的文化,開(kāi)源的文化。能夠關(guān)注并且深刻理解,最終能夠把它去做商業(yè)化結(jié)合這方面的人才是奇缺的。所以我覺(jué)得要形成這樣一種體量的,還要走很長(zhǎng)的路。
你看谷歌,Apache 是一個(gè)開(kāi)放治理架構(gòu)的一套體系,這個(gè)東西其實(shí)很難管的,在當(dāng)中還可以產(chǎn)生商業(yè)。谷歌現(xiàn)在從自己做安卓,從相對(duì)獨(dú)立的開(kāi)源體系做到了現(xiàn)在的CNCF,他也投入了很多人去做 CNCF,在里面去扮演一些關(guān)鍵的角色,這也是一套開(kāi)放治理的架構(gòu)。它進(jìn)來(lái)的東西有一些對(duì)它是不利的,但是他也會(huì)放進(jìn)來(lái)。這種駕馭的能力,能管理這種開(kāi)放治理體系的人才太缺了,我覺(jué)得國(guó)內(nèi)幾乎是沒(méi)有的,所以很難達(dá)到這樣體量的影響力。我覺(jué)得開(kāi)源世界現(xiàn)在還是被老外統(tǒng)治的。
魏佳:我是很認(rèn)同您剛剛說(shuō)的那些點(diǎn)的,可能從學(xué)校階段出來(lái)的時(shí)候,理論知識(shí)扎實(shí)的程度,包括整個(gè)西方的商業(yè)文明,每日熏陶人的思維模式,是在這樣一個(gè)過(guò)程當(dāng)中起非常重要的作用的。
楊冰:我給你講一個(gè)我們團(tuán)隊(duì)當(dāng)中很有意思的例子,大家去看可能老外隨便搞一個(gè)項(xiàng)目,先把自己變成一個(gè)優(yōu)秀的ReadMe工程師。我們團(tuán)隊(duì)的同學(xué),寫這個(gè)東西就會(huì)要改好幾版,其實(shí)這是非常不利于開(kāi)源傳播的。其實(shí)我們整個(gè)這方面的人才儲(chǔ)備(有商業(yè)化意識(shí)的人才),都是奇缺的。公司現(xiàn)在也是鼓勵(lì)去推那些有商業(yè)化意識(shí)又有技術(shù)背景的同學(xué),可以去幫助公司去看更大的方向。首先我們有很好的技術(shù)人才的儲(chǔ)備,這個(gè)我們還不錯(cuò),是高速發(fā)展。但是商業(yè)化和技術(shù)相綜合的人才其實(shí)是非常缺的。所以我覺(jué)得有這樣的人才,再加上教育上的一些差距慢慢補(bǔ)齊,才有可能運(yùn)作大規(guī)模的開(kāi)源項(xiàng)目。當(dāng)然國(guó)家支持也很重要。所以現(xiàn)在自主可控、國(guó)家安全、民族崛起這些東西會(huì)引入更多的外腦?,F(xiàn)在海外回來(lái)的人很多,他們是受過(guò)這種思想的熏陶,這樣一些行為模式的培養(yǎng)。他們會(huì)慢慢帶來(lái)改變。百度陸奇走了,陸奇走的時(shí)候我看了很多的文章,大家對(duì)他的文化、理念還是比較認(rèn)同的。雖然整個(gè)國(guó)家,整個(gè)文化,整個(gè)技術(shù)圈子還是有這個(gè)慣性的,沒(méi)有那么容易往更開(kāi)放的社區(qū)化方向去走,但是總會(huì)慢慢改變。
魏佳:我代表我們業(yè)界這些剛剛從學(xué)校出來(lái)的,初出茅廬的年輕工程師的一個(gè)問(wèn)題。因?yàn)槎欢际且划厴I(yè)就加入了阿里的,或者說(shuō)加入了螞蟻金服,特別是楊冰又是近十年走到現(xiàn)在這樣一個(gè)角色,年輕工程師多半有這樣的困惑或者是顧慮,就是我剛剛加入公司的時(shí)候,可能更多是他們認(rèn)為不會(huì)有太多成長(zhǎng)的這種業(yè)務(wù)的代碼,寫的一些功能,打交道的也是公司的產(chǎn)品、測(cè)試。可能在相對(duì)長(zhǎng)的時(shí)間內(nèi)你都很難有機(jī)會(huì)像您剛剛說(shuō)的,你們做的中間件這樣的積累,對(duì)個(gè)人也好,對(duì)平臺(tái)也好都是快速增長(zhǎng)的機(jī)會(huì)的存在。對(duì)于絕大部分的年輕工程師,在缺少公司能提供的這種機(jī)會(huì)的情況下,您覺(jué)得個(gè)人成長(zhǎng)、提升應(yīng)該有哪些方式或者是維度。比如說(shuō)現(xiàn)在加入A公司,本身盤子就沒(méi)有那么大,練兵場(chǎng)就遠(yuǎn)遠(yuǎn)比不上阿里可以提供的。沒(méi)有這樣的一個(gè)平臺(tái),可能就客觀缺乏這樣的機(jī)會(huì)。另一方面,您覺(jué)得您這十年的過(guò)程當(dāng)中,公司之外的,或者說(shuō)項(xiàng)目本身客觀存在的東西之外的,還有什么是為您的個(gè)人成長(zhǎng),無(wú)論是技術(shù)還是能力、事業(yè)等等起了決定性作用的。
楊冰:其實(shí)這方面的雞湯是很多的,我就說(shuō)一下多自己個(gè)人的感受,因?yàn)檫@個(gè)也不算我個(gè)人原創(chuàng)的,我是看到一些東西,結(jié)合我自己的體會(huì)。前一段時(shí)間摩拜的創(chuàng)始人后來(lái)套現(xiàn)離開(kāi)了,發(fā)了一篇比較負(fù)面的文章,說(shuō)你的同齡人現(xiàn)在在干嗎什么的。后來(lái)又有了一篇比較正面的文章,我覺(jué)得分析得挺好的。
首先年輕人在做選擇的時(shí)候,要看點(diǎn)線面,首先選擇比努力更重要,怎么選擇呢?我面了很多的年輕人,大家非常看眼前的。我分享一下,一個(gè)是看微觀,一個(gè)是看宏觀??春暧^是說(shuō),你在選擇的時(shí)候,你要把自己投在一個(gè)大面上是好的,有機(jī)會(huì)讓你成為億萬(wàn)富翁的或者是欣欣向榮這個(gè)方向去發(fā)展的,你行業(yè)要看得準(zhǔn),方向要看得準(zhǔn)。第二個(gè),你看線的時(shí)候,你要看這幾個(gè)賽道當(dāng)中有幾家公司,你削尖腦袋也要前去,或者是盡量?jī)?yōu)先去考慮,而不是說(shuō)隨便找一個(gè)就可以了。第三個(gè),再到點(diǎn)是指微觀的,有可能你在面上OK,線上面不是最佳,在點(diǎn)上面可能要去做一些平衡。你可以在年輕的時(shí)候帶著一個(gè)向前看的心,多選擇到一個(gè)投資自己或者是自己能夠?qū)W到更多東西的地方去,差不多就是線、面選好之后,在點(diǎn)上做平衡。比如說(shuō)有一家公司很好,在線上明顯優(yōu)于另外一家公司的,但是那個(gè)團(tuán)隊(duì)沒(méi)有特別牛的人,只是說(shuō)這家公司很好,你進(jìn)去可能會(huì)帶著這家公司的光環(huán),但是你學(xué)不到很好的東西。光環(huán)沒(méi)有了之后,你原先可以做的事情,在你到了另外一家公司之后你是做不了的。所以你寧可去選擇大方向正確,弱一點(diǎn),但是那邊有一個(gè)牛人或者說(shuō)你能夠成長(zhǎng)的公司。我覺(jué)得這個(gè)就要看自己在宏觀和微觀上的平衡了。
第二個(gè),靠譜比聰明更重要一點(diǎn)。我在看團(tuán)隊(duì)的一些人,包括養(yǎng),包括發(fā)現(xiàn)走得快的?些人,都是一些站在比較高的角度或者是完成事情比較靠譜的人。改變環(huán)境其實(shí)是挺難的,如果說(shuō)你可以改變自己來(lái)適應(yīng)這個(gè)環(huán)境,招數(shù)不一樣的話,你在哪里都可以做好。如果你覺(jué)得這個(gè)公司,這個(gè)廟已經(jīng)裝不下你,你自己再怎么變,這個(gè)能量已經(jīng)到了天花板的話,你就換一個(gè)地方。你一定要想辦法去改變自己,去為這件事情負(fù)責(zé)。
第三個(gè),如果說(shuō)年輕人的話,我們面試的時(shí)候還會(huì)比較看穩(wěn)定性。雖然說(shuō)剛剛講了那么多,但是其實(shí)如果說(shuō)大家無(wú)論是做業(yè)務(wù)還是什么,其實(shí)可能3年為期,很多東西一年、兩年是很難有沉淀的。你一旦從一個(gè)地方換到另外一個(gè)地方,人際關(guān)系要重新建立,信任關(guān)系要重新建立,你的機(jī)會(huì)要重新去獲取。你再不斷重復(fù),在新的地方去證明自己就會(huì)消耗掉很大力量,你就很難再往上全走了。所以他在深度和廣度上就會(huì)出現(xiàn)一個(gè)瓶頸。我們會(huì)在看人的時(shí)候,如果真的是招比較有潛力或者是比較好的人才的話,不僅是看穩(wěn)定度和忠誠(chéng)度的問(wèn)題,也是在看他是否有耐心沉淀下來(lái)在這個(gè)領(lǐng)域里深耕一段時(shí)間的。我個(gè)人結(jié)合一些東西,我覺(jué)得這三個(gè)點(diǎn)是比較重要的。
魏佳:在這樣一個(gè)將近十年時(shí)間里,對(duì)您而言影響最大的是什么?
楊冰:我覺(jué)得還是這兩年,就是走出去的這兩年,我覺(jué)得我自己有很明顯的變化。原先我跟他(黃挺)在一個(gè)團(tuán)隊(duì)里面,其實(shí)大家想法上差別不大,雖然我一直是他的上級(jí),但是其實(shí)大家在思想上是有一些局限的。我的團(tuán)隊(duì)包括我自己也有明顯的感受。我們?nèi)タ碠penSource,看社區(qū),甚至是走出去,而不是只把眼光留在公司內(nèi)部,這個(gè)對(duì)我確實(shí)有很大啟發(fā)。我在這個(gè)期間接觸了非常多商業(yè)化人才,或者說(shuō)外部的一些不同的看法,包括投資圈的一些人,包括社區(qū)一些人。真的給我非常不一樣的視角,讓我能夠從不一樣的維度思考問(wèn)題。另外公司也給我這樣一個(gè)舞臺(tái)和機(jī)會(huì)??赡苁且?yàn)槲視?huì)更花時(shí)間去關(guān)注公司高層或者是整個(gè)公司層面上,主賽道、方向上在做的事情和我這邊的關(guān)系。這樣的話會(huì)得出不一樣的答案。這兩年其實(shí)自己的個(gè)人變化還是比較大的。因?yàn)榻佑|到外面更多的視角,更商業(yè)化的運(yùn)作,結(jié)合技術(shù)再去思考,會(huì)得出不一樣的結(jié)果。看公司層面上的事情,你看到的也是商業(yè)化上的判斷。就是成本、效率、穩(wěn)定性這些方面的。以前我們這些人都是不看這些的,但是結(jié)合商業(yè)再看主賽道,以及我們這些東西,是選擇優(yōu)先做哪一個(gè)答案就不一樣了。
魏佳:我們今天的采訪就到這里,感謝二位。
螞蟻金服現(xiàn)已開(kāi)源其中間件SOFA,欲知詳情,請(qǐng)關(guān)注SOFA公眾號(hào)。