自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WOT2016歐陽辰:小米程序化廣告交易平臺(MAX)的架構(gòu)實踐

原創(chuàng)
開發(fā) 開發(fā)工具
51CTO記者在WOT2016大數(shù)據(jù)峰會舉行之前對小米公司研發(fā)總監(jiān)歐陽辰進行了采訪,他是小米公司MIUI商業(yè)產(chǎn)品部的架構(gòu)師和研發(fā)主管,是此次峰會重要演講嘉賓中的一員。他的演講主題是小米程序化廣告交易平臺(MAX)的架構(gòu)實踐。

【51CTO.com原創(chuàng)稿件】WOT2016大數(shù)據(jù)峰會將于2016年11月25-26日在北京粵財JW萬豪酒店召開,屆時,數(shù)十位大數(shù)據(jù)領(lǐng)域一線專家、數(shù)據(jù)技術(shù)先行者將齊聚現(xiàn)場,在圍繞機器學(xué)習(xí)、實時計算、系統(tǒng)架構(gòu)、NoSQL技術(shù)實踐等前沿技術(shù)話題展開深度交流和溝通探討的同時,分享大數(shù)據(jù)領(lǐng)域***實踐和最熱門的行業(yè)應(yīng)用。

51CTO記者在會前采訪了小米公司研發(fā)總監(jiān)歐陽辰,他是小米公司MIUI商業(yè)產(chǎn)品部的架構(gòu)師和研發(fā)主管,是此次WOT2016大數(shù)據(jù)峰會重要演講嘉賓之一。他的演講主題是小米程序化廣告交易平臺(MAX)的架構(gòu)實踐。

【受訪人簡介】

歐陽辰·小米公司研發(fā)總監(jiān)

歐陽辰,目前就職小米公司MIUI商業(yè)產(chǎn)品部,擔(dān)任架構(gòu)師和研發(fā)主管,主要負責(zé)廣告平臺系統(tǒng)架構(gòu),廣告交易系統(tǒng)研發(fā)和數(shù)據(jù)平臺。之前在微軟工作10年,帶領(lǐng)團隊從事互聯(lián)網(wǎng)廣告和搜索引擎的研發(fā)工作,包括負責(zé)微軟移動上下文廣告系統(tǒng)和數(shù)據(jù)算法,必應(yīng)搜索引擎的Index Serve的性能提升,最早在甲骨文公司從事數(shù)據(jù)庫的研發(fā)工作。

當(dāng)問及所處團隊當(dāng)前的規(guī)模和業(yè)務(wù)劃分情況,歐陽老師這樣說:“小米商業(yè)產(chǎn)品部目前是百余人的規(guī)模,其中大部分為技術(shù)人員,整體團隊還在不斷增長,不斷有廣告行業(yè)技術(shù)專家加入我們。研發(fā)部門按業(yè)務(wù)目標(biāo)劃分,可分為媒體方、系統(tǒng)架構(gòu)、策略算法、廣告主服務(wù)和數(shù)據(jù)平臺。媒體方組負責(zé)媒體變現(xiàn)對接和用戶體驗,系統(tǒng)組負責(zé)架構(gòu)演化和可靠性,策略算法組負責(zé)點擊率預(yù)估、相關(guān)性等,廣告主服務(wù)負責(zé)提升廣告主滿意度和ROI,數(shù)據(jù)平臺提供數(shù)據(jù)洞察和營銷數(shù)據(jù)平臺DMP”。

小米程序化廣告交易平臺(MAX)的架構(gòu)設(shè)計思路

關(guān)于架構(gòu)設(shè)計思路,歐陽老師談到架構(gòu)設(shè)計本身就是一種學(xué)習(xí)和演化,踩坑踩多了,知道哪些地方不能走,也便成了思路。廣告平臺的設(shè)計思路是從幾個方面出發(fā):

首先是對于目前業(yè)務(wù)和未來業(yè)務(wù)的深刻理解,一直堅信架構(gòu)是為現(xiàn)在和未來的業(yè)務(wù)服務(wù)的,減少業(yè)務(wù)變化而引入的成本,在設(shè)計理念上更愿意按照業(yè)務(wù)分解系統(tǒng),特別是將需求多變的業(yè)務(wù)模塊隔離出來,減少耦合。

其次,架構(gòu)設(shè)計需要和團隊的組織方式是一致的,遵守康威法則,例如在平臺建設(shè)初期,各個業(yè)務(wù)小組都飛速發(fā)展,放馬狂飆,那么架構(gòu)需要提供足夠的靈活性。

另外,廣告系統(tǒng)對于可靠性要求非常高,不僅僅涉及到用戶體驗,也涉及到業(yè)務(wù)收入,因此系統(tǒng)的預(yù)警,報警和錯誤排除都需要大力投入。廣告系統(tǒng)也有業(yè)務(wù)驅(qū)動的特點,不同的廣告業(yè)務(wù)可能需要不同的系統(tǒng)架構(gòu)來支持,因此架構(gòu)的擴展性和可演化性也是非常重要的,需要支持業(yè)務(wù)的小步快跑,敏捷式迭代。

小米程序化廣告交易平臺(MAX)的演化過程以及對應(yīng)業(yè)

歐陽老師表示平臺架構(gòu)的過程實際上是一個演化的過程,每一步演化都是為業(yè)務(wù)服務(wù)的。其可以分為四個階段,分別是”加、減、乘、除”。

***個階段是加法,不斷的上線新業(yè)務(wù),整個系統(tǒng)不斷復(fù)雜化,結(jié)果造成各個業(yè)務(wù)之間耦合很厲害,在后期,每一次設(shè)計涉及的影響都很大。

第二個階段是減法,為了解決***階段的問題,系統(tǒng)的解耦成是一項最重要的工作,將各個模塊獨立出來,服務(wù)化,減少各個模塊之間的不必要的聯(lián)系。

第三個階段是“乘法”,這一階段的業(yè)務(wù)發(fā)展脈路較為穩(wěn)定,各個模塊分解的比較合適,各個模塊(服務(wù))都可以利用各種技術(shù),高速提高服務(wù)質(zhì)量,例如數(shù)據(jù)處理方面,通過流式處理,大大提高及時性;算法模塊在解耦后,也大大提高了算法上線的速度和種類;架構(gòu)服務(wù)化后,系統(tǒng)的容量和可靠性也大大提高。

***一個階段是“除法”,整個系統(tǒng)變得非常大且復(fù)雜,開發(fā)人員也有近5倍的增長,部署的機器也有近10倍的增長,服務(wù)模塊數(shù)量也超過20個,這時候架構(gòu)的調(diào)整涉及到一些抽象,按照業(yè)務(wù)分為服務(wù)群,對于離線的數(shù)據(jù)流也進行了大規(guī)模的優(yōu)化,整合了一些分散的小模塊,使得整個系統(tǒng)更加簡單。

值得分享的經(jīng)驗是,架構(gòu)師的工作不是創(chuàng)建一個靜態(tài)的,美麗的架構(gòu)藍圖,更多的工作是在成本、質(zhì)量、收益和速度中找到長期技術(shù)投入的平衡,其目標(biāo)是支持業(yè)務(wù)的快速發(fā)展。

研發(fā)過程中遇到的問題及經(jīng)驗教訓(xùn)

談到經(jīng)驗教訓(xùn),歐陽老實說開發(fā)過程中踩坑是不可避免的,關(guān)鍵是能從踩坑中吸取教訓(xùn),不要第二次踩到同一個坑。架構(gòu)設(shè)計上,其個人收獲到很重要一點就是:架構(gòu)及演化一定要堅持為業(yè)務(wù)服務(wù)。這部分,他舉了兩個例子:

其一:一年前剛剛接觸這個平臺時,當(dāng)時感覺平臺的層次不清楚,各業(yè)務(wù)之間的重復(fù)性很高,很多代碼不忍直視,我的***個直覺就是需要一個周全的架構(gòu),統(tǒng)一化的廣告檢索,可擴展的廣告檢索元語言等,基于這些想法和過去多個廣告平臺的經(jīng)驗,設(shè)計了一個廣告演化的目標(biāo)架構(gòu)(所謂藍圖),有些模塊沿著這個思路開始了重構(gòu)工作,有些模塊并沒有重構(gòu),沿著老路發(fā)展,半年以后,我們再回首當(dāng)時的決定。當(dāng)時重構(gòu)的模塊是業(yè)務(wù)相對穩(wěn)定的模塊,后期的業(yè)務(wù)并沒有從其中得到太多直接好處,雖然代碼很整齊,設(shè)計很規(guī)范,但是投入和產(chǎn)出比很低; 對于沒有重構(gòu)的一些模塊,在各個新業(yè)務(wù)的沖擊,打磨和碰撞下,不斷的進行自然演化,反而成為最適宜業(yè)務(wù)變化的模塊,回想過來,其中的很多設(shè)計都不是當(dāng)初能夠規(guī)劃出來的,因為很多新業(yè)務(wù)都未到位。

其二:關(guān)于MySQL的,在項目初期使用MySQL一直很順利,讀訪問量大了,就采用、讀寫分離;寫訪問量大了,就進行垂直拆庫(分表);數(shù)據(jù)量繼續(xù)增長,然后進行水平拆庫、水平擴展、引入代理層;然后數(shù)據(jù)量又長大了,不得不將部分數(shù)據(jù)移植到HBase里去。整個過程中,我們在MySQL折騰了太多的時間,每一次數(shù)據(jù)庫改進都需要花不少人力,而且容易出錯,每次的工作成果只能維持很短的一段時間,總結(jié)出一個簡單道理, 如果有機會再重新做一次,我會更早的擁抱NoSQL的解決方案,避免在MySQL上很多無謂的投入 。

開發(fā)和設(shè)計“老司機”給入行新手的忠告

每個人都是從新手成長起來的,新手往往是潛力無窮的。我有幾點小建議,也是我成長過程中,在多次經(jīng)歷迷惑后的一些體會。首先,要學(xué)會確定自己想去的方向,確定自己想成為架構(gòu)師還是某個領(lǐng)域?qū)<?,一旦確定目標(biāo)了就可以多向周邊的大牛學(xué)習(xí),看看優(yōu)秀的同事都是如何思考問題的。 第二,保持學(xué)習(xí)的熱情,計算機行業(yè)新技術(shù)層出不窮,需要不斷的充電,了解***的技術(shù)動態(tài)。第三,在學(xué)習(xí)過程中,要坐的住冷板凳,學(xué)會漁而非魚,對于每種新技術(shù),每一類問題,都會有學(xué)習(xí)的曲線,往往需要經(jīng)歷過一段黑暗的曲線,堅持下去就是光明。另外,在解決問題的時候,盡量了解問題的原理,把問題想透,學(xué)會刨根問底的思考。

***,也祝愿剛?cè)腴T的新手能夠享受計算機技術(shù)的歡樂和痛苦,這是一條長長的路,道長且阻,行則將至,加油!

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2016-04-19 14:29:53

中國金融交易大會

2015-02-05 13:39:36

移動廣告

2014-03-05 16:37:20

移動廣告

2016-06-25 15:32:26

WOT2016

2016-10-31 12:48:38

2016-08-11 22:32:27

2016-02-25 14:02:06

小米運維WOT2016

2016-11-04 17:58:15

大數(shù)據(jù)資訊WOT

2016-11-06 23:21:49

深度學(xué)習(xí)情感分析

2016-04-14 16:48:56

WOT2016運維與開發(fā)者大會51CTO

2016-06-30 14:13:00

2016-03-03 13:56:38

ZabbixWOT2016運維

2015-02-09 13:15:08

移動互聯(lián)網(wǎng)

2016-11-25 14:29:38

WOT2016大數(shù)據(jù)峰會大數(shù)據(jù)

2016-11-03 13:42:47

WOT大數(shù)據(jù)金融

2014-11-17 11:19:37

2016-05-18 09:52:55

2016-06-27 10:24:12

WOT2016企業(yè)安全

2016-03-22 10:02:23

WOT2016創(chuàng)業(yè)團隊大數(shù)據(jù)

2016-04-13 11:36:33

OpenStackWOT2016云計算
點贊
收藏

51CTO技術(shù)棧公眾號