摘要:早在2008年,阿里巴巴即確定了云計算、大數據為中心的DT戰略,并在云計算底層平臺的搭建上取得了令業界矚目的成就。同時,金幣的另一面,大數據的業務尤其是基于淘寶、天貓等電子商務平臺的數據業務也是風生水起,領行業之先。
早在2008年,阿里巴巴即確定了云計算、大數據為中心的DT戰略,并在云計算底層平臺的搭建上取得了令業界矚目的成就。同時,金幣的另一面,大數據的業務尤其是基于淘寶、天貓等電子商務平臺的數據業務也是風生水起,領行業之先。
早期“淘寶指數”、“數據魔方”不但讓用戶有了耳目一新的體驗,更為店鋪賣家提供了運營管理的數據工具。有了云計算穩定可靠、高彈性、大計算能力之后,阿里內部的大數據應用迎來了井噴式的發展。
這里我們再分享另一個基于飛天的ODPS的應用模型——“御膳房”(clouddata.taobao.com),如何將數據轉化為生產資料,來激活生產力。作為阿里巴巴的數據引擎業務,御膳房就是專注于為ISV、商家、非電商用戶提供開放式大數據服務平臺。2013年3月上線以來,一年多的時間,與御膳房深度合作的第三方服務商已經超過300個,提供了包含流量推廣、商品管理、數據分析、CRM、ERP、廣告精準投放等多個支撐工具,覆蓋了180萬天貓、淘寶商家。
目前,御膳房已經開放了商品、商家、客服績效、品牌、行業五大主題數據,并提供了額外的數據倉庫,其中有良好組織的各種數據供開發者來加工和使用。通過御膳房,專注數據的商家及相關服務商可以選擇自己所需要的數據主題并完成定制化的數據開發工作,相關數據聚合結果以API接口的形式發布使用。談到命名之初,阿里數據平臺事業部商家數據業務部高級技術專家王賁表示:“御膳房,實際上是數據廚房的形象比喻。我們就像一個廚房,提供了最優質的原材料、最鋒利的工具,讓開發者、服務商這樣的大廚能夠快速實現大數據應用的各種idea。”
御膳房:電子商務生態系發展的必然
御膳房的出現,是基于淘寶的電商生態系統發展到一定階段的必然需求。王賁表示:“淘寶上不斷涌現的大賣家和品牌商,以及服務于眾多電商的ISV(獨立軟件開發商),發展到一定階段都會面臨的問題:如何實現全鏈路數據的計算、存儲、交換和分析。事實上,在淘寶平臺、CRM、庫存甚至其他各類第三方系統中,那些已經沉淀下來的數據往往都是彼此獨立而分散的,如果這些數據能夠在統一平臺上實現聚合,將釋放出更加強大的能量。”而這些大量的數據,光靠ISV自己的機器是無法完成計算的,需要有更強大的計算能力。
御膳房應運而生,成為對外可以提供包含大數據計算、存儲、挖掘、分析在內的一站式大數據服務的平臺(圖1)。具體來看,御膳房能夠為開發者提供:
■ 完善準確的基礎指標定義,計算口徑,檢驗工具等,確保數據標準、唯一可靠;
■ 云數據中心(倉庫)解決方案,離線分布式計算平臺及強大的算法環境,自主提交計算任務,自主開發模型挖掘數據價值,大數據計算快速響應;
■ 支持隔離的數據存儲、獨立的數據任務部署,確保御膳房內的數據交易與數據開發安全;
■ 根據需求靈活定制API,數據輸出符合TOP API規范;
■ R、Python、Xlab在內的主流大數據挖掘工具,支持模型研究與快速迭代試驗,提升數據價值;
■ 在商品、商家、客服績效、品牌、行業等主題之外,還將繼續開放行業、競品等數據,同時開發者也可以將個人數據上傳使用。在王賁看來,“我們是基于云平臺實現數據服務的PaaS平臺,提供的是Data platform as a Service、Data warehouse as aService和Data center as a Service。自2013年3月采用邀請制的御膳房0.1上線到現在,御膳房發展非常迅猛。有開發能力的商家和ISV希望能夠完整地使用御膳房的服務,還有很多非電商行業,比如氣象局、交通局、高校科研機構等,也在進行深度合作的溝通。”
應對內外技術挑戰
御膳房曾在技術上面臨著巨大的挑戰。御膳房原型驗證階段基于Hadoop集群,面對Hadoop在部署、Fix Bug、升級、資源隔離、保證用戶數據訪問安全和BI應用程序安全等方面缺乏充分的底層支持,團隊需要投入很大精力來進行開發。
王賁表示,當時的主要困難有以下四個方面。
■ Hadoop不支持多租戶,沒有類似ODPS的project的機制,并且基于project進行資源管理,這就導致御膳房作為PaaS層平臺,要考慮和解決這些本該在IaaS層平臺直接解決的問題。比如最簡單的難題是命名空間不能區分不同用戶。為了幫助用區分命名,團隊做了表名的前綴,但這卻為后續開發維護帶來了不小的煩惱。
■ Hadoop資源隔離和Quota限制不完善,而御膳房作為大數據公有云,對這一部分要求很高。
■ Hadoop對數據的權限管理很薄弱,御膳房為了提供對外服務,需要很強的底層權限模型支持。御膳房在遷移到ODPS之前,為了做權限管理,自己解析Hive SQL,做了自己的鑒權系統,對任意一個SQL語句,都要做鑒權。
■ 數據安全和系統安全,對御膳房這樣的公有云大數據平臺而言,特別重要,而Hadoop是按照私有云理念設計的,對這些方面考慮不太多。
而隨著飛天5K成功與ODPS內測,團隊看到了完美解決上述問題、大幅提高效率的希望。在詳細評測飛天平臺和ODPS之后,御膳房毅然停止Hadoop集群的開發,采用飛天和ODPS為底層計算和數據分析平臺。僅僅1個月的時間,技術團隊就完成了從Hive到ODPS,從MySQL到UMP(Unified MySQL Platform)的底層云化遷移。而后,M/R開發環境上線,算法環境上線,新算法環境上線,御膳房正式成為阿里統一的對外數據平臺服務,服務商家和ISV。
當然,這一過程也并非一帆風順。在王賁看來,因為御膳房“對外開放大數據平臺+數據”的模式比較超前,在世界上并沒有可直接學習的對象,所以來自內外的挑戰都非常多。
首先是來自產品設計本身的挑戰。作為原創模式的平臺級產品,對產品經理的要求極高。為了解決不同環節中遇到的問題,整個團隊進行了大量的探索。比如產品經理和架構師經常是在一起設計產品的,不僅要求產品經理必須掌握大數據相關技術,也要求架構師能夠理解產品設計理念。
其次是對技術團隊的挑戰。要在架構上需要對云計算、大數據平臺、數據挖掘、數據分析等相關領域技術都有深刻的理解;系統的復雜度很考驗技術團隊的設計和編碼能力;對測試團隊的要求也很高,舉個例子,測試算法環境,就需要測試同事能理解和使用算法開發工具。
最后是開放和安全既是一對矛盾,又相輔相成。但本質來看,沒有安全保障,是不可能做好開放的大數據平臺的。所以御膳房為了保障安全,做了大量工作:比如集群隔離,代碼自動安全審核,數據安全等級定級,繼承并完善阿里集團數據安全標準,開發環境與線上環境隔離,數據授權安全審核等,同時還從需求出發,推動ODPS進行了系列改進,如進程級沙箱,支持大量Project,強化Quota支持,支持Quota Group等。
挑戰是過程,快樂是結果。王賁說:“御膳房是第一個基于飛天+ODPS對外提供服務的應用,我們切實體會到了飛天與ODPS在穩定性、海量數據平臺化管理、安全性等方面的優勢。”而在此基礎上,技術團隊還進一步提供了數據開發、算法開發、調度體系(Octopus)、監控報警等服務。
比如在數據開發方面,御膳房不僅提供了Eclipse開發插件來輔助MapReduce開發與調試,還提供了Eclipse開發插件來輔助UDF(User Defined Function)開發與調試。而算法分析上,御膳房更是提供了從Hive/UDF、MapReduce、Python、R、Xlab/Xlib(XLib是ODPS的分布式算法庫,支持分類預測、回歸、聚類、關聯分析、矩陣計算等)的“工具鏈”。“作為一站式數據挖掘平臺,工具可自由選擇,兩兩之間,都可協同工作。”隨著V0.8.1版本正式上線,御膳房還提供了對接RDS數據庫數據上傳、新建表復制表字段、補歷史數據等功能。
聚合數據,走向更加開放的數據平臺
隨著業務的爆發式增長,數據正在成倍增加,匯集成海。而要數據產生更高的價值,不同數據之間的交換和分享必不可少。御膳房目前已經提供包含商品數據、店鋪數據、行業數據、品牌數據、聚劃算數據、廣告數據、氣象數據、用戶標簽數據在內的多種數據類型,以及銷量預測、復購分析、購買預測、IDmapping用戶匹配、人群透視、用戶行為等多種算法模型。
未來,御膳房要更加開放。王賁表示:“御膳房會進一步強化多租戶理念和架構,還將聯合更多如MSTR、Cognos、數云和Tableau等第三方伙伴建立起用戶(租戶)數據中心和其上的App生態,并希望在電商以外,聯合更多如氣象、交通、物流、制造等傳統企業,實現數據進一步交換和分享,為打造大數據生態而努力。”