圖1 依據(jù)數(shù)據(jù)計算做業(yè)務(wù)決策的整個過程
此外,阿里小貸的業(yè)務(wù)特點決定它對安全性和實時性也有很高要求。阿里小貸使用了多方數(shù)據(jù),包括集團(tuán)內(nèi)部的數(shù)據(jù)以及其他合作伙伴提供的數(shù)據(jù)。這些數(shù)據(jù)都高度敏感,阿里小貸作為使用方有義務(wù)確保數(shù)據(jù)安全,因此對平臺的安全性有較高要求而且發(fā)放貸款之后,要做好貸后監(jiān)控。小貸通常會根據(jù)貸款人的網(wǎng)上行為數(shù)據(jù),對其信用風(fēng)險進(jìn)行評估。這種評估做得越及時,就越有可能在出現(xiàn)異常時提前發(fā)出預(yù)警、挽回?fù)p失。而準(zhǔn)確性、安全性和實時性等阿里小貸的核心業(yè)務(wù)特性都得到飛天平臺的有力支持。
根植飛天平臺,業(yè)務(wù)迅猛增長
由于阿里小貸的業(yè)務(wù)與數(shù)據(jù)相生相依,伴隨數(shù)據(jù)來源的廣泛增長,數(shù)據(jù)庫會越來越龐大,任何傳統(tǒng)數(shù)據(jù)平臺都沒有能力支撐這種業(yè)務(wù)模式,同時,前文提到的阿里小貸對準(zhǔn)確性和安全性的嚴(yán)苛要求,當(dāng)時業(yè)界并沒有成熟的解決方案,結(jié)合云平臺在存儲和計算方面可以提供的強(qiáng)擴(kuò)展能力,阿里小貸成為“飛天”平臺的第一批用戶,并見證了飛天平臺的每一步成長(如圖2所示)。反過來看,也正是“飛天”這樣強(qiáng)大的云平臺,才能支持小貸平均每年四到五倍這樣近乎野蠻的業(yè)務(wù)增長速度。2010年4月10日小貸業(yè)務(wù)第一款基于“飛天”的貸款產(chǎn)品——淘寶訂單貸款發(fā)布,只面向杭州地區(qū)提供服務(wù)。那時的飛天集群只有30臺服務(wù)器,小貸業(yè)務(wù)用了兩個集群,數(shù)據(jù)處理引擎是SQL Engine 0.2。兩個集群同時運行相同的業(yè)務(wù),計算出結(jié)果后,需要人工將計算結(jié)果備份到另一個集群。同年9月,阿里小貸決定將業(yè)務(wù)開放到全國,然而在一切準(zhǔn)備就緒時,發(fā)現(xiàn)當(dāng)時的集群規(guī)模無法支撐那么大的計算量。這時,飛天團(tuán)隊做了一件當(dāng)時看起來很了不起的事,將集群規(guī)模從30臺擴(kuò)展到100臺,SQL Engine 0.2升級成0.8版本,保障了阿里小貸在2010年11月順利將業(yè)務(wù)擴(kuò)展到全國。
圖2 阿里小貸進(jìn)化史
2010年底,阿里小貸的貸款模型由原來的兩個(授信和貸后預(yù)警)發(fā)展成十個。大家逐漸發(fā)現(xiàn),要想支持這么多模型不能再采用煙囪式的方法,因為拿到數(shù)據(jù)后要走很長的加工鏈路,才能得出要用的指標(biāo)。這時,需要有一個底層的公用數(shù)據(jù)庫,于是大家開始動手建數(shù)據(jù)集市。此時,又遇到了跟當(dāng)初擴(kuò)展全國業(yè)務(wù)一樣的問題,集群處理能力再次受到挑戰(zhàn)。飛天平臺再一次做版本升級,將數(shù)據(jù)處理引擎從SQL Engine 0.8升級成DataEngine 0.2,Data Engine 0.2有兩項重大突破:1. 存儲壓縮,壓縮比可達(dá)到2~5倍;2. 計算性能大幅提升。最終,集群規(guī)模瓶頸被成功突破,飛天為阿里小貸性能提升提供了足夠的存儲和計算能力。
隨著業(yè)務(wù)的發(fā)展,數(shù)據(jù)挖掘項目對阿里歷史數(shù)據(jù)的需求越來越大,有些項目甚至需要從2003年淘寶成立以來賣家的所有數(shù)據(jù)中去挖掘信息,這便對數(shù)據(jù)跨度和質(zhì)量提出了很高的要求。于是,阿里小貸開始構(gòu)建大型數(shù)據(jù)倉庫,但這無疑給飛天提出了更大挑戰(zhàn),尤其是在穩(wěn)定性方面一定要有所保證。ODPS的研發(fā)開始,將Data Engine與運行于云梯1上能支持1500臺服務(wù)器的莫邪合并,將莫邪作為ODPS的數(shù)據(jù)處理引擎。同期,飛天將集群服務(wù)器規(guī)模擴(kuò)展到千級別。這時對阿里小貸來說,等于ODPS將飛天平臺包在了底層,主要由ODPS來對阿里小貸的業(yè)務(wù)提供支持。
2012年初,集團(tuán)開始將數(shù)據(jù)魔方、淘寶指數(shù)、Tcif等重要業(yè)務(wù)從Hadoop集群遷移到ODPS集群上,從一定程度上解決了一直困擾阿里小貸的數(shù)據(jù)共享問題。此前,阿里小貸共享集團(tuán)數(shù)據(jù)時大部分要到Hadoop集群去取,數(shù)據(jù)同步、上游數(shù)據(jù)復(fù)制、下游時間銜接等都有可能出問題,很難保障數(shù)據(jù)產(chǎn)出的質(zhì)量和穩(wěn)定性。
業(yè)務(wù)遷移完成之后,開始在ODPS集群上建一個集團(tuán)的數(shù)據(jù)中心,也就是ODS層,專門匯總阿里各個業(yè)務(wù)部門的數(shù)據(jù),然后在其上提供一個基礎(chǔ)的統(tǒng)一數(shù)據(jù)服務(wù)。總的來看,對比Hadoop,ODPS優(yōu)勢很明顯:
ODPS有一整套的數(shù)據(jù)隔離、授權(quán)模式特性,在數(shù)據(jù)的邏輯隔離做得很好,同時提供了多種權(quán)限管理策略:ACL、POLICY、LABE等,最厲害的是,在數(shù)據(jù)嚴(yán)格隔離的情況下支持混合計算——Protected模式;
ODPS在數(shù)據(jù)計算和數(shù)據(jù)管理等方面的實用性功能更加豐富,在很多方面可媲美傳統(tǒng)的RDBMS,例如一些復(fù)雜的開窗函數(shù)查詢等;
ODPS產(chǎn)品易用性較好,上手容易;
在5K之后,ODPS集群的可擴(kuò)展性理論上具備無限擴(kuò)展的能力;
ODPS支持多租戶模型,在數(shù)據(jù)、資源的分配和隔離等方面可以較為靈活地控制;6. 性能和穩(wěn)定性方面,雖然兩者相差不大,不同場景下各有優(yōu)劣,但ODPS顯然走得更遠(yuǎn)。
5K出現(xiàn),平臺和技術(shù)走在業(yè)務(wù)前面
集團(tuán)的ODPS數(shù)據(jù)中心和阿里小貸的業(yè)務(wù)系統(tǒng)放在同一個集群中,必然造成隨著業(yè)務(wù)增長爭搶資源的現(xiàn)實。但如果將數(shù)據(jù)分開存儲在兩個集群的話,又與之前將數(shù)據(jù)從Hadoop集群拷到
ODPS集群來計算并無二致。這時,擴(kuò)展飛天集群規(guī)模成為必然之選。也是在這個時間,“飛天”已經(jīng)邁向5K時代,平臺和技術(shù)的發(fā)展走在了業(yè)務(wù)需求的前面。
提到飛天5K,除單集群規(guī)模由1000多臺升級到5000臺之外,其實還有另一個更重要層次的意義不能忽視,這5000臺并不是一個天花板,ODPS集群之間有很強(qiáng)的跨集群復(fù)制能力,確保了集群之間很好的連通性、數(shù)據(jù)有更好的共享性?,F(xiàn)在,ODPS數(shù)據(jù)中心已搬到另一個飛天5K集群上,但得益于5K的跨集群復(fù)制能力,使得ODS層可以為多方提供數(shù)據(jù)而無需顯式拷貝,用戶感覺不到集群的變化或數(shù)據(jù)傳輸延遲。
2014年7月8日,ODPS正式開放對外提供服務(wù)。此前,ODPS一直是阿里巴巴內(nèi)部的秘密武器,第一個用戶就是阿里小貸。傳統(tǒng)的數(shù)據(jù)倉庫一般都搭建在Oracle等關(guān)系型數(shù)據(jù)庫上,而阿里小貸搭建在飛天平臺上,所以必然會要求ODPS能提供很多關(guān)系型數(shù)據(jù)庫的功能,例如,存儲過程編程能力,以及很多數(shù)據(jù)分布的開放函數(shù)和數(shù)據(jù)分析函數(shù)等。這在技術(shù)上非常有挑戰(zhàn)性,因為在ODPS這樣的分布式框架里解決這些問題要比在關(guān)系型數(shù)據(jù)庫中難很多。ODPS比較逼真地模擬了傳統(tǒng)RDBMS的物理表和視圖概念,包括存儲分區(qū)都很像Oracle,能支持很多傳統(tǒng)數(shù)據(jù)的功能。
然而,在ODPS上構(gòu)建一個大型數(shù)據(jù)倉庫的過程中,仍然有一些地方需要注意,這里分享一個最為關(guān)鍵的點——數(shù)據(jù)管理粒度的劃分,即ODPS和Project的劃分?;旧峡蓪DPS理解成一個數(shù)據(jù)管理的基本單元,常見劃分粒度的方法有幾種:按照層次分成幾層,每層一個Project;或者整個數(shù)據(jù)倉庫為一個Project;或者每一個主題數(shù)據(jù)為一個Project等。這個粒度劃分對于后期的管理成本有非常大的影響。但針對不同團(tuán)隊的不同階段會有不同的劃分方案,并沒有什么絕對的劃分方案,一般會從幾個維度來思考:數(shù)據(jù)倉庫所面向的用戶范圍及數(shù)據(jù)業(yè)務(wù)要面向的人群,不僅是開發(fā)者,用戶也會在數(shù)據(jù)倉庫上直接使用數(shù)據(jù);團(tuán)隊內(nèi)部的協(xié)同方式,如何決策和分工;數(shù)據(jù)安全方面的一些策略,例如數(shù)據(jù)倉庫的基礎(chǔ)層可能不開放,那么它是如何對其他系統(tǒng)做輸出的,不同的輸出策略也會影響數(shù)據(jù)管理粒度的劃分等。一定要在構(gòu)建數(shù)據(jù)倉庫之初,將數(shù)據(jù)管理粒度劃分好,因為除非來一次比較大的重構(gòu),基本上很難有回頭路。
借力云,小企業(yè)與大企業(yè)同步起跑
從阿里小貸這門數(shù)據(jù)生意的發(fā)展歷程不難看出,小貸業(yè)務(wù)與阿里云之間既有相互磨合,又有相互促進(jìn),從而成就了彼此業(yè)務(wù)的迅速發(fā)展。而云計算為小貸業(yè)務(wù)帶來的則不僅僅是平臺的支撐、成本的降低,從某種意義上講,云計算是這種以數(shù)據(jù)為核心的新型互聯(lián)網(wǎng)金融業(yè)務(wù)可以依托的天然平臺。
伴隨著底層技術(shù)的不斷完善與持續(xù)發(fā)展,更多中小企業(yè)可以在云計算平臺上獲得數(shù)據(jù)存儲、數(shù)據(jù)處理服務(wù),并從而構(gòu)建豐富的數(shù)據(jù)應(yīng)用,云計算使得每一個中小企業(yè)具備和大企業(yè)同步起跑的底氣,支撐更多創(chuàng)新服務(wù)的涌現(xiàn),這是云計算承載的重要意義所在。