去年11月份CNBC的一則新聞,報(bào)道了華爾街巨頭高盛要把自己投入了14年研發(fā)的一個(gè)技術(shù)平臺(tái)Alloy以及專門為這個(gè)平臺(tái)所設(shè)計(jì)的語(yǔ)言,免費(fèi)、開(kāi)源共享給華爾街的其他機(jī)構(gòu)。去年更早的時(shí)候,高盛也聲稱把自己的一些交易與風(fēng)控相關(guān)代碼貢獻(xiàn)到GitHub(競(jìng)爭(zhēng)對(duì)手摩根大通則已經(jīng)把一個(gè)與區(qū)塊鏈相關(guān)的技術(shù)quorum開(kāi)源到GitHub)。

高盛在開(kāi)源技術(shù)這件事情上,貌似是認(rèn)真的。除了加入開(kāi)源界出名的開(kāi)源組織Eclipse基金會(huì),2015年高盛即參與到容器技術(shù)企業(yè)化的進(jìn)程中(那還是docker這類技術(shù)剛剛開(kāi)始為人知的時(shí)候),2017年起陸續(xù)把一些技術(shù)開(kāi)源到GitHub上,他們甚至把自己的一個(gè)Java技術(shù)框架采用了Apache 2.0的寬松軟件許可(一個(gè)對(duì)開(kāi)源社區(qū)非常友好的許可證)貢獻(xiàn)出來(lái)。

不夸張的說(shuō),開(kāi)源軟件改變世界– 不管在一個(gè)App里面還是在一套交易系統(tǒng)中,都“借力”著不計(jì)其數(shù)的開(kāi)源代碼庫(kù)、開(kāi)源工具?,F(xiàn)在誰(shuí)敢說(shuō)自己的軟件是一行一行代碼從零開(kāi)始構(gòu)建?正如高盛的技術(shù)負(fù)責(zé)人Don Duet所說(shuō),從技術(shù)角度看“開(kāi)源滲透到我們所做的一切事情中”。

基礎(chǔ)軟件開(kāi)源的必要性
為什么搞金融科技需要借力開(kāi)源、參與開(kāi)源?本人以過(guò)去的幾段從業(yè)經(jīng)歷在此貢獻(xiàn)五毛錢意見(jiàn)。
在MorganStanley。那是IT只有不到千人、還坐落在7大道750號(hào)、工程師們還在使用Sun和HP工作站的年頭。Morgan Stanley有自己的基礎(chǔ)設(shè)施團(tuán)隊(duì)去研發(fā)跨操作系統(tǒng)(Solaris、AIX、HPUX、Windows)的UI開(kāi)發(fā)框架Morgan Stanley Toolkit(簡(jiǎn)稱MSToolkit)、第一代Web應(yīng)用服務(wù)器Netscape的插件、還有其他很多看上去和證券業(yè)務(wù)沒(méi)有什么直接關(guān)系的但是支撐著上層業(yè)務(wù)的很酷的技術(shù),設(shè)計(jì)水平在那個(gè)時(shí)代比起專業(yè)軟件公司不逞多讓。事實(shí)上那個(gè)時(shí)代大型的金融機(jī)構(gòu)研發(fā)自己的交易中間件、圖計(jì)算引擎甚至專門性的計(jì)算機(jī)語(yǔ)言,并非罕見(jiàn)。
可以說(shuō),在利潤(rùn)的驅(qū)動(dòng)下,能夠幫助賺到錢的技術(shù)有可能被投資作核心競(jìng)爭(zhēng)力。比起稍后的那些互聯(lián)網(wǎng)新貴技術(shù)公司,華爾街的IT一點(diǎn)都不落后??墒?,尷尬的地方在于,這些封閉的、僅內(nèi)部使用的技術(shù),很容易失去生命力:資助某個(gè)技術(shù)的一些業(yè)務(wù)項(xiàng)目如果被砍掉,這個(gè)技術(shù)很可能也完蛋;市場(chǎng)不好,這類技術(shù)遭裁切也是首當(dāng)其沖。受眾太少、應(yīng)用場(chǎng)景太窄,讓這些技術(shù)很快喪失先發(fā)優(yōu)勢(shì)。
在雅虎研究院。和很多巨型互聯(lián)網(wǎng)企業(yè)一樣,雅虎里面什么技術(shù)都自成體系,對(duì)象存儲(chǔ)、消息中間件、內(nèi)部的wiki、JavaScript的開(kāi)發(fā)框架、移動(dòng)端開(kāi)發(fā)工具、Web服務(wù)器、甚至類似Linux里的包管理與分發(fā)工具… 這些技術(shù)可能在早期是很先進(jìn)的因?yàn)榛ヂ?lián)網(wǎng)上找不到等價(jià)物,可是隨著網(wǎng)上開(kāi)源運(yùn)動(dòng)的發(fā)展,這些封閉的技術(shù)越來(lái)越變得非主流,新加入的人往往抓狂。長(zhǎng)期呆在封閉技術(shù)環(huán)境里的人,也很容易被工具洗腦,不知道外面的世界,離開(kāi)了這個(gè)環(huán)境出去找工作,面試一問(wèn)三不知。而這些技術(shù)最終也被內(nèi)部的人摒棄、走向消亡,大家更愿意融入到開(kāi)源世界中。雅虎身后還存在的技術(shù)是Hadoop,這個(gè)影響了整個(gè)大數(shù)據(jù)領(lǐng)域發(fā)展的技術(shù),證明開(kāi)源軟件的生命力強(qiáng)、活過(guò)它的發(fā)明者。
在國(guó)內(nèi)證券公司。個(gè)人一向認(rèn)為軟件的邏輯架構(gòu)一定要清晰的體現(xiàn)出分層,對(duì)實(shí)現(xiàn)成“一大坨”深惡痛絕。舉兩個(gè)例子:第一個(gè)是在研發(fā)經(jīng)紀(jì)業(yè)務(wù)所需用到的社交化客戶關(guān)系管理與服務(wù)平臺(tái)時(shí),涉及到即時(shí)通訊工具、規(guī)則引擎這樣的基礎(chǔ)設(shè)施,因?yàn)橐婚_(kāi)始的時(shí)候場(chǎng)景非常簡(jiǎn)單,那么我們是“舉手之勞”的重新發(fā)明車輪直接把它們做到系統(tǒng)里面當(dāng)作業(yè)務(wù)功能的一部分?還是明確的把它們當(dāng)作通用模塊解耦出來(lái)?如果當(dāng)作獨(dú)立模塊,是自研?還是采用第三方的方案?當(dāng)時(shí)的實(shí)際情況就是,沒(méi)有合適的第三方技術(shù)(那是微信還出來(lái)沒(méi)多久的、移動(dòng)端IM尚算新生事物的年代),自己研發(fā),很可能挖了一個(gè)大坑,未來(lái)難以養(yǎng)專門團(tuán)隊(duì)維護(hù);直接當(dāng)做滿足短期業(yè)務(wù)需求的應(yīng)用功能來(lái)做,則導(dǎo)致延展性前瞻性靈活性非常差、技術(shù)上無(wú)任何優(yōu)雅性可言。
另一個(gè)更容易理解的例子是交易系統(tǒng),要把交易系統(tǒng)的基礎(chǔ)做扎實(shí),顯然我們必須有經(jīng)過(guò)交易場(chǎng)景反復(fù)論證抽象、高度通用、考慮周全的消息中間件,互聯(lián)網(wǎng)上的開(kāi)源消息中間件往往不是為證券業(yè)務(wù)設(shè)計(jì)的,不是不能用就是用起來(lái)極其別扭。自主研發(fā)?你得有足夠強(qiáng)的團(tuán)隊(duì)、有長(zhǎng)期維護(hù)優(yōu)化的決心、有業(yè)務(wù)部門的“贊助”、有公司在IT戰(zhàn)略上的支持。否則肯定干不下去。所謂“自研”的交易系統(tǒng),不少會(huì)因?yàn)椤巴练掍摗钡幕A(chǔ)技術(shù)層不過(guò)關(guān)不專業(yè)而失敗。
不僅是業(yè)務(wù)應(yīng)用導(dǎo)向的金融機(jī)構(gòu),包括科技公司在內(nèi),在研發(fā)自己的科技產(chǎn)品的過(guò)程中,都不可避免需要涉及到各種基礎(chǔ)技術(shù)框架、技術(shù)庫(kù)、底層工具,這些東西往往是“雞肋”,自研的話,有點(diǎn)“不務(wù)正業(yè)”,而且你的團(tuán)隊(duì)往往在這些方面非常不專業(yè),長(zhǎng)期來(lái)看也維護(hù)不了。高盛走的開(kāi)源道路,其實(shí)是節(jié)省成本、借力打力。
金融機(jī)構(gòu)IT研發(fā)的痛點(diǎn)
券商和銀行們的IT研發(fā),“正業(yè)”肯定是支持業(yè)務(wù)創(chuàng)新、做能產(chǎn)生差異化競(jìng)爭(zhēng)的應(yīng)用軟件。在這個(gè)過(guò)程中,應(yīng)該“有所為、有所不為”:基礎(chǔ)設(shè)施和通用技術(shù)框架,盡量借力第三方,業(yè)務(wù)相關(guān)的邏輯,盡量自己開(kāi)發(fā)??墒乾F(xiàn)實(shí)世界沒(méi)有這么理想。
采用第三方的封閉技術(shù),你可能得糾結(jié)這幾個(gè)問(wèn)題:傳統(tǒng)大廠的技術(shù)非常封閉,他們沒(méi)有開(kāi)放接口(那是生財(cái)工具– 要一個(gè)收一個(gè)的錢),他們的古老技術(shù)架構(gòu)也無(wú)法承載插件化的訂制,他們不響應(yīng)你的個(gè)性化訴求,用起來(lái)很不爽;小公司的技術(shù)你不放心,怕他們改變產(chǎn)品方向甚至終止產(chǎn)品線,或者可能被收購(gòu)合并甚至關(guān)門大吉??傊陂]源的技術(shù)你害怕被“綁架”。
自研,你也可能糾結(jié)這幾個(gè)問(wèn)題:一些與業(yè)務(wù)非直接相關(guān)的底層技術(shù),自己的團(tuán)隊(duì)不是缺乏專業(yè)性去駕馭就是無(wú)法專心專注去做好,一旦展開(kāi),等于給自己挖坑,還得經(jīng)常面對(duì)成本預(yù)算方面的質(zhì)疑;采用開(kāi)源技術(shù),又往往沒(méi)有符合行業(yè)特性、針對(duì)金融場(chǎng)景直接可用的選擇,學(xué)習(xí)掌握進(jìn)行改造的成本高(一旦自行改造,很可能又掉進(jìn)長(zhǎng)期維護(hù)的坑)。
除非你是高盛,在一些業(yè)務(wù)場(chǎng)景需要用到一些基礎(chǔ)技術(shù)而市場(chǎng)上卻沒(méi)有選擇的情況下,自行研發(fā),然后共享到開(kāi)源社區(qū)讓同業(yè)甚至業(yè)外技術(shù)人員共同維護(hù)與利用,避免了“胎死腹中”的命運(yùn)。
采購(gòu)閉源軟件時(shí)買源代碼并沒(méi)有什么大用
很多機(jī)構(gòu)采購(gòu)系統(tǒng)喜歡要源代碼– 針對(duì)大廠就跟他們買、針對(duì)小公司就跟他們拿。但個(gè)人認(rèn)為這并無(wú)什么意義。
首先,“買斷源代碼”這種做法真的非常、非常過(guò)時(shí)。源代碼不是固化的、“買斷”之后就不變的,因?yàn)閺S商可能在未來(lái)不斷升級(jí)、不斷修復(fù)缺陷、不斷優(yōu)化,你買一個(gè)“快照”一樣的東西,基于它東改西改,很快和原廠的版本分離,廠商無(wú)法替你維護(hù),你也享受不到他們?cè)诜?wù)行業(yè)過(guò)程中的優(yōu)化重構(gòu)、升級(jí)換代。
其次,“買代碼”這種事情,相當(dāng)部分花的是冤枉錢,其實(shí)自己并沒(méi)有資源或者能力去維護(hù),也就是買個(gè)“保險(xiǎn)”吧。
就算真的要源代碼,也不是“買斷”,而是買服務(wù) – 例如獲得廠商部分公共代碼庫(kù)的訪問(wèn)權(quán),在服務(wù)合同時(shí)間范圍內(nèi)隨時(shí)可以抽取最新的代碼并可以通過(guò)廠商提供的工具、指引能自己進(jìn)行構(gòu)建,并且萬(wàn)一自己修改后還可以提交回開(kāi)發(fā)商的代碼庫(kù)供其合并,一句話,就是用源代碼版本管理工具及最佳實(shí)踐管理好行業(yè)級(jí)、跨機(jī)構(gòu)的互助。
當(dāng)然,一些開(kāi)發(fā)商也沒(méi)有這種源代碼交付與管理的能力。你要“買斷”?打一個(gè)壓縮包,作為電郵附件給你發(fā)過(guò)去,或者找個(gè)網(wǎng)盤臨時(shí)共享一下,或者用QQ發(fā)送一下… 之后這份代碼就和主庫(kù)徹底告別,再也無(wú)法同步。
改變軟件的研發(fā)、銷售與交付方式
越來(lái)越多的軟件公司,商業(yè)模式架設(shè)在開(kāi)源生態(tài)之上。以向金融機(jī)構(gòu)提供基礎(chǔ)性軟件技術(shù)的企業(yè),是適合這么做的。怎樣算“基礎(chǔ)性軟件技術(shù)”?就是具有行業(yè)通用性和針對(duì)性、滿足金融業(yè)務(wù)應(yīng)用需求共性、從眾多金融機(jī)構(gòu)的商業(yè)場(chǎng)景中總結(jié)抽象出來(lái)的基礎(chǔ)技術(shù)層,它往往首先面向金融機(jī)構(gòu)的IT研發(fā)人員,供其進(jìn)行訂制和二次開(kāi)發(fā)以支撐更上層的業(yè)務(wù)應(yīng)用。以我們公司的即時(shí)通訊技術(shù)為例,它可私有化部署、配備合規(guī)存儲(chǔ)與舉證引擎、客戶端SDK化可隨意嵌入到任何銀行和券商App中、提供數(shù)以百計(jì)的接口與事件供金融業(yè)務(wù)應(yīng)用的融合,它本身還是一個(gè)開(kāi)發(fā)平臺(tái)。這就是針對(duì)行業(yè)需求量身定做的基礎(chǔ)技術(shù)。
基礎(chǔ)技術(shù)適合開(kāi)源,是一種新的軟件生產(chǎn)協(xié)作模式,它有以下的商業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì):
通過(guò)開(kāi)源社區(qū),吸引和利用優(yōu)秀人才。最具前景、最有用的開(kāi)源項(xiàng)目往往能吸引到最頂級(jí)工程師。這其實(shí)是一種“杠桿”的利用,也能促進(jìn)開(kāi)源產(chǎn)品在社區(qū)的快速迭代
有助于獲客。如上文所述,很多金融機(jī)構(gòu)采購(gòu)系統(tǒng)的時(shí)候也想獲得源代碼,這背后的邏輯是擔(dān)心廠商封閉,讓自己不能訂制;以及對(duì)被某個(gè)技術(shù)“綁架”的防范 – 萬(wàn)一它忽然終止存在又無(wú)法被輕易替換,而分分鐘和錢掛鉤的業(yè)務(wù)系統(tǒng)卻構(gòu)建在它的基礎(chǔ)之上,這個(gè)風(fēng)險(xiǎn)太大。處于敏感位置的基礎(chǔ)技術(shù),如即時(shí)通訊工具,其源代碼開(kāi)放可審計(jì),也讓一些機(jī)構(gòu)對(duì)信息安全、數(shù)據(jù)隱私保護(hù)方面放心。開(kāi)源在現(xiàn)在已經(jīng)成為一種信心保障
有助于建立商業(yè)生態(tài)。通過(guò)知識(shí)產(chǎn)權(quán)的開(kāi)放,讓客戶以較低門檻采納,逐漸形成市場(chǎng)規(guī)模,并形成社區(qū)、建立上下游的合作伙伴,有機(jī)會(huì)成為de facto standard(事實(shí)上的標(biāo)準(zhǔn))。Kafka就是一個(gè)好例子,不知不覺(jué)中很多金融機(jī)構(gòu)就已經(jīng)采用了它,技術(shù)人員甚至以它的技術(shù)概念作為詞匯表描述問(wèn)題與方案
構(gòu)建在開(kāi)源之上的軟件公司,研發(fā)是社區(qū)化的協(xié)作,不僅有自己的研發(fā)人員主導(dǎo),也有客戶開(kāi)發(fā)人員的參與(例如提報(bào)缺陷甚至直接修復(fù)和提交代碼合并),甚至有認(rèn)同這個(gè)技術(shù)的互聯(lián)網(wǎng)技術(shù)粉絲的主動(dòng)加盟。
銷售方式也發(fā)生改變,機(jī)構(gòu)更多是從網(wǎng)上獲得關(guān)于產(chǎn)品的信息、口碑、案例,隨時(shí)通過(guò)社區(qū)或者其他社交頻道與軟件公司發(fā)起交流。銷售人員可以在線陪伴運(yùn)行demo、雙向互動(dòng)。而軟件的體驗(yàn)門檻非常低,例如我們就采用雙license制,社區(qū)版免費(fèi)并采用非商業(yè)化許可證,而企業(yè)版則采用Copyleft(“著佐權(quán)”,見(jiàn)下一篇文章的介紹)許可證或者商業(yè)軟件許可證。社區(qū)版能夠讓金融機(jī)構(gòu)以最低門檻實(shí)現(xiàn)POC的原型驗(yàn)證甚至直接使用于商業(yè)用途。
交付方面,源代碼我們通過(guò)開(kāi)發(fā)者社區(qū)交付,部分代碼對(duì)互聯(lián)網(wǎng)開(kāi)放,任何人直接從GitHub可以獲得;部分對(duì)機(jī)構(gòu)客戶開(kāi)放,通過(guò)開(kāi)發(fā)者社區(qū)可以訪問(wèn)源代碼庫(kù),拖取被授權(quán)獲得的分支。而軟件系統(tǒng)的成品,全部都是基于云原生的技術(shù)架構(gòu)、100%容器化,用戶通過(guò)鏡像倉(cāng)庫(kù)拉取鏡像進(jìn)行自動(dòng)化部署。這好像是一家汽車制造商的零件倉(cāng)庫(kù),組裝工人(IT)一按按鈕(跑一個(gè)腳本),即把相關(guān)的車門、車胎、座椅、方向盤、發(fā)動(dòng)機(jī)、外殼等等下載并自動(dòng)組裝。
開(kāi)源的商業(yè)模式有多種,包括open-core 和hybrid等等,我們將在下期《開(kāi)源商業(yè)模式促進(jìn)金融業(yè)科技生態(tài)的發(fā)展》中分享,探討一下開(kāi)源技術(shù)如何能在金融行業(yè)落地和促進(jìn)金融科技發(fā)展。
關(guān)于金融科技領(lǐng)域的開(kāi)源,您有什么想法?可留言和我們探討
文章來(lái)源:凡泰極客
關(guān)于凡泰極客:幫助金融機(jī)構(gòu)乃至任何希望擁有類似技術(shù)的其他行業(yè)機(jī)構(gòu),建立“碎片”的集散地、降低管理成本、提高研發(fā)效能,形成自己的數(shù)字化生態(tài)、與客戶和伙伴建立真正的數(shù)字化連接。