5月24日诞丽,網(wǎng)易攜手中睿在深圳益田威斯汀酒店舉辦了“云服務(wù)、大數(shù)據(jù)應(yīng)用實(shí)例&高效研發(fā)管理---軟件研發(fā)沙龍”拐格,來自深圳五百強(qiáng)企業(yè)的信息技術(shù)部骨干僧免,政府、事業(yè)單位的相關(guān)IT領(lǐng)導(dǎo)捏浊,金融業(yè)的IT精英等近百位技術(shù)人員參與了本次沙龍的學(xué)習(xí)懂衩。
首先,網(wǎng)易數(shù)據(jù)科學(xué)中心技術(shù)總監(jiān)余利華從以下三方面分享了網(wǎng)易大數(shù)據(jù)實(shí)踐:
一呛伴、網(wǎng)易在大數(shù)據(jù)方面做了哪些事情勃痴;
二谒所、網(wǎng)易大數(shù)據(jù)建設(shè)的思路热康;
三、網(wǎng)易在大數(shù)據(jù)方面的2個工具劣领。
網(wǎng)易在大數(shù)據(jù)方面的工作
網(wǎng)易在大數(shù)據(jù)方面的定位是充分利用數(shù)據(jù)統(tǒng)計(jì)分析挖掘價值姐军,大力推進(jìn)服務(wù)智能化和決策科學(xué)化,全面提升產(chǎn)品的規(guī)劃運(yùn)營水平和服務(wù)質(zhì)量尖淘。
服務(wù)智能化
余利華以網(wǎng)易云音樂為例奕锌,說明了服務(wù)智能化的具體含義。網(wǎng)易云音樂在推出的時候市面上已經(jīng)有了數(shù)個億級用戶的音樂產(chǎn)品村生,競爭非常激烈惊暴,之所以能夠脫穎而出,就是因?yàn)榫W(wǎng)易云音樂從一開始就將個性化推薦作為核心功能來做趁桃。音樂并不像其它文本類的內(nèi)容辽话,用戶不太容易表達(dá)自己的搜索需求。我們可能都有過類似的經(jīng)歷卫病,偶然聽到的一首好音樂油啤,再想去聽的時候卻找不到了,網(wǎng)易云音樂能夠用個性化推薦幫你找到這些音樂蟀苛,幫助用戶發(fā)現(xiàn)一些意想不到的好歌曲益咬,給你帶來驚喜。目前帜平,網(wǎng)易云音樂從APP首頁到歌單幽告、歌曲梅鹦、私人電臺等場景已經(jīng)全面實(shí)現(xiàn)了個性化,是一個個性化推薦深入到骨髓的產(chǎn)品冗锁。
推薦是個系統(tǒng)工程帘瞭,不僅僅是算法的問題,產(chǎn)品和算法必須緊密配合蒿讥。云音樂通過UGC歌單和個性化推薦蝶念,幫助用戶更好的發(fā)現(xiàn)音樂和傳播音樂,大大的提升曲庫利用率。
個性化推薦的原理是找到人與物之間的關(guān)聯(lián)芋绸,在合適的場景下把合適的物品推薦給合適的人媒殉。 這里的物,可以是新聞摔敛,音樂廷蓉,理財(cái)產(chǎn)品等等。把人和物關(guān)聯(lián)起來的方式通常有三種:
通過人關(guān)聯(lián)马昙,與你相同喜好的人喜歡的物品桃犬,或你的朋友推薦的物品,你通常都會喜歡行楞;
通過物關(guān)聯(lián)攒暇,因?yàn)槟谭酆湍虿际怯嘘P(guān)聯(lián)的,如果用戶買過尿布子房,那么推薦奶粉給他形用;
通過特征關(guān)聯(lián),搖滾是音樂的一個特征证杭,如果一個人喜歡搖滾田度,那么推薦搖滾歌曲給他。
通過關(guān)聯(lián)解愤,我們就召回了很多候選商品镇饺,它們都是有可能和人發(fā)生聯(lián)系的。在召回之后送讲,要進(jìn)行過濾奸笤,比如你在最近七天買過一個商品,通常會將這個商品過濾掉李茫。過濾之后揭保,就得到一個候選商品的列表,這時候要對商品進(jìn)行一個多維度的打分魄宏,把你最可能喜歡的商品推薦給你秸侣,這就是一個基本的推薦過程。
類似服務(wù)智能化的應(yīng)用場景還有很多,比如郵箱反垃圾味榛,客服機(jī)器人椭坚,反作弊,金融反欺詐搏色,視頻鑒黃等善茎。
服務(wù)智能化通常的工作流程是這樣的:
- 形成想法,想法可能來源于數(shù)據(jù)的分析频轿,然后尋找特征垂涯,增加場景;
- 從特征中設(shè)計(jì)方案航邢,引入算法耕赘,調(diào)整方案,進(jìn)行模型的訓(xùn)練膳殷;
- 效果驗(yàn)證:一般分為離線評估操骡,線上A/B測試兩類,只有發(fā)現(xiàn)效果好的時候赚窃,才真正讓這個算法上線册招。
決策科學(xué)化
決策科學(xué)化,是指讓數(shù)據(jù)來輔助決策勒极,比如投放廣告的過程中我們通常會這樣做:
- 找到目標(biāo)用戶:用戶多維度分析是掰,確定投放目標(biāo)用戶群體;
- 分析投放目標(biāo):基于投放群體河质,篩選投放渠道冀惭;
- 監(jiān)控投放數(shù)據(jù):實(shí)時監(jiān)控投放數(shù)據(jù),快速調(diào)整投放策略掀鹅;
- 構(gòu)建用戶質(zhì)量評估模型,評價用戶質(zhì)量媒楼;
- 評估投放效果:ROI評估乐尊,發(fā)現(xiàn)更優(yōu)質(zhì)的渠道。
決策科學(xué)化還有很多應(yīng)用場景划址,比如電商定價扔嵌、促銷設(shè)計(jì)、功能上線夺颤、留存分析等痢缎。
決策科學(xué)化的工作流程:
- 度量:部署實(shí)施數(shù)據(jù)采集,實(shí)施數(shù)據(jù)轉(zhuǎn)化與加工世澜,建立度量指標(biāo)體系独旷;
- 洞察:數(shù)據(jù)探索、建模、假設(shè)檢驗(yàn)嵌洼、用戶研究案疲、形成理論等;
- 干預(yù):設(shè)計(jì)方案麻养、實(shí)施實(shí)驗(yàn)褐啡、評估效果、推廣應(yīng)用等鳖昌。
網(wǎng)易大數(shù)據(jù)建設(shè)思路:一個中心备畦,兩個平臺
做好大數(shù)據(jù)業(yè)務(wù)需要很多東西,比如你要有很好的想法许昨,比如你的算法工程師要很厲害萍恕,懂得很多算法,但一個成功的大數(shù)據(jù)應(yīng)用關(guān)鍵在于兩點(diǎn):有數(shù)據(jù)+快速改進(jìn)车要。
聽上去很簡單允粤,但在實(shí)際開發(fā)過程中,還是面臨很多問題:
- 數(shù)據(jù)孤島的問題翼岁,你會發(fā)現(xiàn)你的數(shù)據(jù)散落在各個地方类垫,可能在業(yè)務(wù)中,也可能在你服務(wù)器中的日志中琅坡,想用數(shù)據(jù)的時候找不到悉患;還有一種情況是公司各個部門間的數(shù)據(jù)不共享;
- 數(shù)據(jù)資源缺乏管理榆俺,由于數(shù)據(jù)的規(guī)模很大售躁,再加上人員的流動,沒有一個人完全清楚所有數(shù)據(jù)表中每個指標(biāo)的含義茴晋,導(dǎo)致數(shù)據(jù)的使用效果不好陪捷;
- 數(shù)據(jù)開發(fā)的門檻很高:首先是知識的門檻,專業(yè)的數(shù)據(jù)開發(fā)人員很難招到诺擅,他們要學(xué)習(xí)Hadoop市袖、Spark等各種相關(guān)技術(shù);另外烁涌,使用上也很麻煩苍碟,要把這些開源的東西放在一起,組成一個解決方案撮执。
- 分析流程長微峰,涉及的人員多,決策周期長抒钱。
網(wǎng)易的解決思路是一個中心蜓肆,兩個平臺颜凯。一個中心是指數(shù)據(jù)資源中心,數(shù)據(jù)資源中心會集成所有有價值的數(shù)據(jù)症杏,進(jìn)行數(shù)據(jù)的融合和深加工装获,目的是打破各個產(chǎn)品的數(shù)據(jù)分界和壁壘,提高利用效率厉颤;兩個平臺分別是大數(shù)據(jù)管理與應(yīng)用開發(fā)平臺(猛犸)和數(shù)據(jù)分析平臺(有數(shù))穴豫。其中,猛犸會存儲和管理整個公司級別的數(shù)據(jù)資源逼友,提供高效精肃、易用的大數(shù)據(jù)分析挖掘應(yīng)用開發(fā)環(huán)境,提供大規(guī)模查詢和計(jì)算能力帜乞;有數(shù)用來支撐產(chǎn)品分析與決策司抱,產(chǎn)品營銷推廣。通過數(shù)據(jù)資源中心的建設(shè)习柠,可以使得所有數(shù)據(jù)都在平臺上,想用可以直接去用照棋,降低了門檻资溃。
大數(shù)據(jù)管理和應(yīng)用開發(fā)平臺
接下來,余利華介紹了網(wǎng)易大數(shù)據(jù)管理和應(yīng)用開發(fā)平臺猛犸烈炭,整個大數(shù)據(jù)平臺的建設(shè)思路主要是滿足效率快的需求溶锭,僅用開源的Hadoop是不夠的。把Hadoop引進(jìn)來經(jīng)過改造成為適合我們自己用的體系化的大數(shù)據(jù)平臺符隙,所謂體系化趴捅,是指整個平臺分為以下幾層:
最底層是元數(shù)據(jù)、數(shù)據(jù)湖和資源調(diào)度霹疫。表定義拱绑、權(quán)限和數(shù)據(jù)血緣關(guān)系都屬于元數(shù)據(jù)的范疇。數(shù)據(jù)湖就是統(tǒng)一存儲數(shù)據(jù)的更米,通常是HDFS欺栗;資源調(diào)度其實(shí)就是分配CPU、內(nèi)存和磁盤這些資源征峦。我們會把整個數(shù)據(jù)資源都放在數(shù)據(jù)湖中,然后用元數(shù)據(jù)去描述它消请,這樣就建立了一個企業(yè)級的數(shù)據(jù)倉庫栏笆,統(tǒng)一去管理數(shù)據(jù)。
再上一層是計(jì)算層臊泰,包括實(shí)時計(jì)算蛉加、離線計(jì)算、Adhoc查詢等類型,各種引擎是有機(jī)整合的针饥,就是在數(shù)據(jù)湖中的同一份數(shù)據(jù)厂抽,既可以用Hive來查,也可以用Spark來查丁眼,還可以用Impala來查筷凤,而且各引擎在權(quán)限控制上也保持一致。另外苞七,離線計(jì)算和實(shí)時計(jì)算也是融合的藐守,一個實(shí)時計(jì)算的任務(wù)可能去查離線計(jì)算的表,實(shí)時計(jì)算的表也可能會歸檔為離線計(jì)算的表蹂风。
再上一層是用戶的使用界面卢厂,包含一個可視化的開發(fā)界面和統(tǒng)一的SQL語言開發(fā)。
最上層是各種應(yīng)用惠啄,比如考拉慎恒、嚴(yán)選、云音樂等撵渡。
上圖是網(wǎng)易猛犸數(shù)據(jù)接入的界面融柬,只要在界面上配置好數(shù)據(jù)源和數(shù)據(jù)目的地,就能把數(shù)據(jù)定期地導(dǎo)入進(jìn)來姥闭,所有的操作都是通過表單實(shí)現(xiàn)的丹鸿,另外還提供了基于SQL的ETL的功能。在數(shù)據(jù)資源管理方面棚品,網(wǎng)易猛犸提供了主題管理靠欢,一個產(chǎn)品里面可能分好多主題,比如用戶一個主題铜跑,商品一個主題门怪,訂單又是一個主題,我們提供了主題管理的功能锅纺,使得業(yè)務(wù)能夠很方便地梳理他的數(shù)據(jù)倉庫掷空。另外提供了數(shù)據(jù)血緣的能力,使得任何一個數(shù)據(jù)的來龍去脈都非常清楚囤锉,知道這個數(shù)據(jù)是哪個任務(wù)計(jì)算出來的坦弟,依賴于前面的哪個數(shù)據(jù)。提供了拖拽式的可視化的開發(fā)環(huán)境官地,而且提供SQL化的開發(fā)酿傍,提升效率。
大數(shù)據(jù)可視化分析平臺
最后驱入,余利華介紹了企業(yè)級大數(shù)據(jù)可視化分析平臺網(wǎng)易有數(shù)赤炒。網(wǎng)易有數(shù)的特點(diǎn)是安全氯析、高性能和敏捷。報(bào)表的安全性是大家都關(guān)心的問題莺褒,我們會提供行列級的權(quán)限控制掩缓;在計(jì)算方面,拖拽報(bào)表的時候性能是非常關(guān)鍵的遵岩,有數(shù)中采用了MPP的引擎做優(yōu)化你辣,使得拖拽可以秒間完成。
接下來旷余,奇碩CTO殷世林作為網(wǎng)易云的客戶绢记,分享了奇碩數(shù)據(jù)服務(wù)在大數(shù)據(jù)平臺中的實(shí)戰(zhàn),殷世林從技術(shù)的角度介紹了奇碩的大數(shù)據(jù)平臺和架構(gòu)正卧,分享了奇碩大數(shù)據(jù)平臺和網(wǎng)易云的合作蠢熄。下周會有文章單獨(dú)分享殷世林的演講內(nèi)容。
基于微服務(wù)的應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐
下午炉旷,網(wǎng)易云首席解決方案架構(gòu)師劉超帶來了演講“基于微服務(wù)的應(yīng)用架構(gòu)設(shè)計(jì)實(shí)踐”签孔,分別從產(chǎn)品和最佳實(shí)踐的角度介紹了網(wǎng)易云在微服務(wù)化方面的經(jīng)驗(yàn)。
目前窘行,網(wǎng)易內(nèi)部95%的產(chǎn)品都已經(jīng)在使用網(wǎng)易云饥追,上圖是網(wǎng)易云整個的產(chǎn)品架構(gòu)。最底層的云主機(jī)罐盔、云網(wǎng)絡(luò)和云硬盤是比較通用的服務(wù)但绕,目前主流的云服務(wù)商都會提供;右上方的平臺服務(wù)惶看,經(jīng)歷了網(wǎng)易內(nèi)部產(chǎn)品長時間的考驗(yàn)捏顺,才開放出來,尤其是對象存儲服務(wù)僅支持郵箱產(chǎn)品就已經(jīng)積累了100PB以上的數(shù)據(jù)纬黎,而且迄今為止都是零丟失幅骄;最左邊是容器服務(wù)和工具鏈,工具鏈?zhǔn)轻槍θ萜骱臀⒎?wù)的本今,網(wǎng)易云相信容器在整個開發(fā)拆座、部署和彈性擴(kuò)展的過程中有著革命性的技術(shù),是一個非常好的云計(jì)算的切入點(diǎn)冠息。
Why 微服務(wù)挪凑?
接下來,劉超以運(yùn)輸過程中的集裝箱為例逛艰,介紹了容器的概念岖赋,核心是封裝和標(biāo)準(zhǔn),將所有的配置文件瓮孙、用戶創(chuàng)建唐断、路徑創(chuàng)建、權(quán)限修改打包到標(biāo)準(zhǔn)的容器鏡像中杭抠,只要基于這個鏡像創(chuàng)建出來的容器就都是一樣的脸甘。
容器改變了應(yīng)用的管理和部署方式,從編碼開始偏灿,鏡像是貫穿整個過程的標(biāo)準(zhǔn)交付物丹诀,最終保證發(fā)布時測試、聯(lián)調(diào)和線上環(huán)境的一致性翁垂,將整個過程打通了铆遭。其中編排想表達(dá)的思想是希望管理容器相互間的關(guān)系,網(wǎng)易云通過Kubernetes實(shí)現(xiàn)容器的編排沿猜。
就像漫畫《當(dāng)一個項(xiàng)目里的代碼超過一百萬行……》所描述的場景枚荣,隨著應(yīng)用的業(yè)務(wù)越來越大,無論從代碼層面還是組織架構(gòu)層面啼肩,代碼的修改都會變得很難橄妆,甚至每次發(fā)布都要像行軍打仗一樣,統(tǒng)一由最高的領(lǐng)導(dǎo)來協(xié)調(diào)這件事情祈坠,整個迭代速度是非常慢的害碾。如果拆分成微服務(wù),只要服務(wù)間的接口定義相對松耦合并標(biāo)準(zhǔn)化赦拘,每個模塊都可以獨(dú)立地進(jìn)行開發(fā)和上線慌随。理想的情況是,每個微服務(wù)團(tuán)隊(duì)都在5-9個人的規(guī)模躺同,相互間的溝通非常方便阁猜,迭代速度會快很多。
容器+Kubernetes的平臺一個非常大的好處是笋籽,一個容器掛了蹦漠,可以在秒級恢復(fù),如果再配合負(fù)載均衡车海,對你的業(yè)務(wù)幾乎是沒有任何影響的笛园,對客戶來講體驗(yàn)是非常好的。
總體來說侍芝,微服務(wù)化的收益是每天的更新速度和并發(fā)的訪問速度在用戶規(guī)模相對比較大的情況下研铆,有一個很大的提升。
網(wǎng)易云容器服務(wù)優(yōu)勢
網(wǎng)易云的容器服務(wù)為了支撐內(nèi)部應(yīng)用州叠,做了很多改進(jìn)棵红,來克服當(dāng)前容器服務(wù)的缺陷,并提升容器服務(wù)的性能咧栗,這也是和其它同類服務(wù)相比網(wǎng)易云容器服務(wù)的特色逆甜。
安全層面:由于容器是共享內(nèi)核虱肄,所以經(jīng)常被詬病不夠安全,網(wǎng)易云的策略是在不同租戶間實(shí)現(xiàn)主機(jī)隔離交煞、內(nèi)核隔離和二層虛擬網(wǎng)絡(luò)的隔離咏窿。
性能的改進(jìn):當(dāng)前主流的容器平臺多會采取左邊的方式,容器間的聯(lián)通又增加了一層虛擬成本素征,非常影響網(wǎng)絡(luò)性能集嵌。網(wǎng)易云采取右面的方式,會把虛擬機(jī)的網(wǎng)卡打到容器中御毅,容器看到的網(wǎng)絡(luò)和虛擬機(jī)看到的網(wǎng)絡(luò)是同一個二層網(wǎng)絡(luò)根欧,沒有二次虛擬化;并且網(wǎng)易云的虛擬機(jī)二層網(wǎng)絡(luò)是進(jìn)行過高并發(fā)改進(jìn)的端蛆,可以保證容器間交互的高吞吐量凤粗;同時也方便容器和虛擬機(jī)的混合部署。
簡化運(yùn)維:左邊是一般容器服務(wù)的模式欺税,用戶可以在上面一鍵創(chuàng)建容器平臺侈沪,但實(shí)際用起來就發(fā)現(xiàn)還有很多問題需要解決,尤其是容器平臺出現(xiàn)問題晚凿,或者需要升級和運(yùn)維的時候亭罪,要自己去學(xué)Kubernetes或Mesos,相當(dāng)于云平臺又把很多工作交還給了用戶歼秽。網(wǎng)易云采取右面的方式应役,紅色的部分都是網(wǎng)易云來負(fù)責(zé),在IaaS上面有一個統(tǒng)一的Kubernetes調(diào)度系統(tǒng)燥筷,用戶只需要關(guān)心容器的部分箩祥,并且用戶創(chuàng)建的應(yīng)用依舊是主機(jī)隔離的。
工具鏈的完善:網(wǎng)易云提供了APM肆氓,監(jiān)控袍祖,日志ELK的工具鏈。
網(wǎng)易云在幫助客戶實(shí)現(xiàn)微服務(wù)化谢揪,持續(xù)集成蕉陋,DevOps的時候,逐漸發(fā)現(xiàn)客戶做不到最佳實(shí)踐往往并不是工具的問題拨扶,而是缺乏知識輸出和經(jīng)驗(yàn)分享的來源凳鬓。網(wǎng)易云有非常豐富的微服務(wù)化實(shí)戰(zhàn)經(jīng)驗(yàn),比如網(wǎng)易考拉海購就是從一個母嬰產(chǎn)品的單體應(yīng)用,逐漸發(fā)展成為跨境電商的第一品牌,目前整個架構(gòu)中有600+的容器支撐業(yè)務(wù)邏輯平委,每天更新上線達(dá)700次以上厚满。
十二原則和微服務(wù)化實(shí)踐有著異曲同工之處仅孩,最后托猩,劉超介紹了云原生應(yīng)用的十二原則:
1.在線上部署的任何一套環(huán)境,在代碼中都應(yīng)該有相應(yīng)的代碼進(jìn)行控制杠氢,你在任何環(huán)境中的任何操作站刑,在代碼中都有追蹤,能夠追根溯源鼻百;
2.把微服務(wù)間的依賴,包括API摆尝、接口温艇、中間產(chǎn)生的DTO等清晰地暴露出來;
3.環(huán)境變量盡量存儲在environment中堕汞,通用的環(huán)境變量打在鏡像中勺爱;
4.后端服務(wù)當(dāng)做附加資源,盡量使用PaaS服務(wù)讯检,不要花太多時間在PaaS平臺上琐鲁;
5.嚴(yán)格區(qū)分編譯和運(yùn)行的環(huán)境;
6.盡量使用無狀態(tài)應(yīng)用人灼;
7.通過端口綁定提供服務(wù)围段;
8.通過進(jìn)程模型進(jìn)行擴(kuò)展;
9.快速啟動和優(yōu)雅終止可最大化健壯性投放;
10.盡可能的保持開發(fā)奈泪、預(yù)發(fā)布和線上環(huán)境的一致性;
11.把日志當(dāng)做事件流灸芳;
12.后臺管理任務(wù)當(dāng)做一次性進(jìn)程運(yùn)行涝桅。
活動最后,中睿信息創(chuàng)始人鹿傳明向大家傳授了“從0到1打造高效的軟件研發(fā)團(tuán)隊(duì)”的經(jīng)驗(yàn)烙样。鹿傳明首先從研發(fā)項(xiàng)目管理的本質(zhì)出發(fā)冯遂,認(rèn)為不以提升質(zhì)量與生產(chǎn)率的項(xiàng)目管理就是形式主義,再詳細(xì)講解了個人投入度與團(tuán)隊(duì)投入度的概念谒获,量化講述構(gòu)建高效團(tuán)隊(duì)蛤肌。接著詳細(xì)對比論證了傳統(tǒng)的重量級研發(fā)項(xiàng)目管理體系與輕量級的管理體系如Scrum的特點(diǎn)與適用性。最后鹿傳明詳細(xì)介紹了符合中國國情的iScrum項(xiàng)目管理方法在企業(yè)中的應(yīng)用案例究反。