量化派是一家互聯(lián)網(wǎng)金融公司,有三條業(yè)務(wù)線:第一是現(xiàn)金貸,撮合用戶跟機構(gòu)交易,目前擁有千萬級的用戶量,對系統(tǒng)訪問量很大;第二是消費分期,可以分線上和線下,就像美容醫(yī)療場景下,量化派給用戶提供虛擬額度,用戶拿額度到場景里面消費,會被扣用戶額度,讓用戶產(chǎn)生分期;第三是自建場景消費,量化派自建了商城。三種業(yè)務(wù)場景都由數(shù)據(jù)驅(qū)動,審核和風控都不需要人工。
從企業(yè)初創(chuàng)到C輪融資,量化派業(yè)務(wù)發(fā)展很快,其IT架構(gòu)也經(jīng)歷了由簡到繁的過程。僅以現(xiàn)金貸業(yè)務(wù)為例,用戶信息需要經(jīng)過主邏輯業(yè)務(wù)進入風控平臺,再經(jīng)過數(shù)據(jù)篩選決定用戶等級。單這個系統(tǒng)就經(jīng)過了單點服務(wù)、集群化服務(wù)、負載均衡、ELK集群、微服務(wù)等多個架構(gòu)的演進。當服務(wù)呈現(xiàn)爆炸式增長時,很多問題都暴露出來了。
一方面,隨著業(yè)務(wù)量不斷增長,量化派對于IT的需求越來越高,實際情況卻是原有硬件不能快速擴容,無法支撐起如此高速的發(fā)展。以前,量化派在機房都是租機架,主機容量有上限,部署新的機器相當繁瑣。由于使用IDC基礎(chǔ)架構(gòu),一旦原有合作伙伴不再合作,部署新的IDC帶來的專線難以打通的問題也困擾著量化派。另一方面,量化派原有的自建高可用方案不能支撐業(yè)務(wù)持續(xù)發(fā)展,一旦硬件出現(xiàn)問題,可能會導致數(shù)據(jù)永久丟失。而對于一家互聯(lián)網(wǎng)金融企業(yè),數(shù)據(jù)是核心競爭力,重要性不言而喻。當然,由于業(yè)務(wù)本身復雜度高,現(xiàn)有IT監(jiān)控系統(tǒng)也早已不能有效發(fā)現(xiàn)系統(tǒng)中存在的問題了。量化派的業(yè)務(wù)發(fā)展對企業(yè)的IT提出了全新的要求。
正是由于上面的這些挑戰(zhàn),量化派技術(shù)總監(jiān)周乾經(jīng)過考察對比,決定將服務(wù)從原有的IDC搬到青云QingCloud,打造一個公有云和私有云結(jié)合的混合架構(gòu)。這個工作做起來并沒有想象中那么簡單,由于涉及到上百臺虛擬機,以及十幾個數(shù)據(jù)庫規(guī)模的微服務(wù),其中需要考慮到的突發(fā)情況也不少。
眾所周知,遷移MySQL,如果中間走公網(wǎng),容易出現(xiàn)閃斷,因閃斷造成數(shù)據(jù)丟失是量化派不愿意看到的。為了避免這種情況,量化派使用了Canal中間件,把數(shù)據(jù)扔到MySQL里,MySQL自帶的存儲特性,直接將數(shù)據(jù)復制給了異地機房數(shù)據(jù)庫,這個時候便不用擔心某個用戶借款丟失的情況發(fā)生。
對于緩存數(shù)據(jù),量化派緩存用的是Redis,用Redis-port工具向Redis Master發(fā)送sync,接受RDB文件,再回放RDB文件,復制便能完成。
而對于遷移過程中遇到DNS緩存問題,量化派和青云QingCloud一起找到了兩個解決辦法。第一個是通過變更域名,這個時候原有DNS緩存會失效,便自然會去訪問新的。另一個是不變更域名,這時候就會有大量流量通過互聯(lián)網(wǎng)訪問到老的IDC上,這與他們的初衷是相違背的。這種情況下,量化派將原有IDC的負載均衡器上的服務(wù)指向青云QingCloud上的Server,緩存問題迎刃而解。
遷移上百臺虛擬機如果純靠手動完成,工作量太大。為此,量化派自建了自動化發(fā)布環(huán)境。為了輕量化運維,量化派自己開發(fā)了xypb-deploy項目,構(gòu)建在paramiko庫上,直接連到ssh。這個自建項目采用Python Nginx-parser,可以靈活切換流量。
周乾指出青云QingCloud所提供的負載均衡器功能,代理了四層流量。為了增加查詢效率,通過負載均衡器代理到存庫上,給用戶提供連到數(shù)據(jù)庫的機會。再通過很多數(shù)據(jù)庫負載用戶查詢的流量,以達到效率提高的目的。
對于安全的話題,周乾詳解了量化派在青云QingCloud上實現(xiàn)安全的路徑。量化派服務(wù)采用前后端分離,沒有后端渲染,基本上所有開發(fā)都是Java,最后部署起來也是單獨架包,不存在JSP或PHP等解釋執(zhí)行的腳本;第二采用orm,利用pojo訪問數(shù)據(jù)庫,杜絕SQL注入;第三采用https進行通信。而具體到防止內(nèi)部人員泄密問題,量化派自己開發(fā)了一套配置中心,把關(guān)鍵配置放到配置中心,服務(wù)每次上線的時候從配置中心去調(diào)取關(guān)鍵參數(shù),這些參數(shù)在傳輸過程中都是通過非對稱加密進行的。