簡(jiǎn)介:6月14日“騰訊創(chuàng)新日:科技年的技術(shù)盛宴”,代表騰訊各業(yè)務(wù)群技術(shù)實(shí)力的四級(jí)專家與騰訊微創(chuàng)新2016年創(chuàng)意獲獎(jiǎng)團(tuán)隊(duì)齊聚一堂,暢談AI、系統(tǒng)安全、架構(gòu)設(shè)計(jì)、社交、推薦模式、游戲引擎、騰訊應(yīng)用創(chuàng)新等前沿技術(shù)。唐劉溪,社會(huì)效果廣告部系統(tǒng)中心主任、專家工程師,分享下一代全方位廣告系統(tǒng)架構(gòu)。
游戲、廣告和電子商務(wù)是互聯(lián)網(wǎng)的三大現(xiàn)金流業(yè)務(wù)。2016年,騰訊廣告收入增長54%,達(dá)到270億。本次分享將與您探討騰訊統(tǒng)一廣告系統(tǒng)廣告業(yè)務(wù)的特點(diǎn),對(duì)技術(shù)架構(gòu)的特殊要求,以及支持和推廣騰訊社交和效果廣告的技術(shù)架構(gòu)。社會(huì)、效果、品牌廣告的統(tǒng)一廣告體系應(yīng)該具備怎樣的架構(gòu)和基本能力?
以下是唐對(duì)講話的記錄
大家好,很高興有機(jī)會(huì)和大家分享騰訊的社交和效果廣告系統(tǒng)。
騰訊的社交和業(yè)績(jī)廣告(SPA)從廣電通開始發(fā)展到現(xiàn)在,從每天一百萬的收入發(fā)展到現(xiàn)在的一千萬,直到未來系統(tǒng)的目標(biāo)可以達(dá)到每天十億以上。這個(gè)架構(gòu)經(jīng)歷了很多年的演變,核心沒有太大變化。在這里,讓我們與您分享我們架構(gòu)的方法論和演進(jìn)過程。
我的分享分為幾個(gè)部分,首先介紹系統(tǒng)架構(gòu),然后是SPA R&D系統(tǒng),然后介紹一些架構(gòu)中感興趣的系統(tǒng),一個(gè)是檢索系統(tǒng),它是我們架構(gòu)的核心,另一個(gè)是數(shù)據(jù)分析引擎。
系統(tǒng)結(jié)構(gòu)
這是我們整個(gè)SPA業(yè)務(wù)的系統(tǒng)架構(gòu)。如你所見,這里粗黑線是系統(tǒng)的數(shù)據(jù)流,數(shù)據(jù)是我們系統(tǒng)的關(guān)鍵因素。我們的整個(gè)系統(tǒng)是建立在數(shù)據(jù)的基礎(chǔ)上的,用來不斷優(yōu)化系統(tǒng)。這種商業(yè)模式其實(shí)是互聯(lián)網(wǎng)中的經(jīng)典商業(yè)模式,包括搜索、廣告、電子商務(wù),都是基于數(shù)據(jù)的大型系統(tǒng)。騰訊SPA廣告系統(tǒng)是一個(gè)很好的數(shù)據(jù)驅(qū)動(dòng)的商業(yè)模式。
整個(gè)廣告系統(tǒng)可以分為幾個(gè)部分,最底層是廣告引擎,它處于我們系統(tǒng)的引擎位置。為什么叫發(fā)動(dòng)機(jī)?因?yàn)閺V告引擎的作用是匹配流量端的廣告數(shù)據(jù),比如微信、QQ、廣告端,從數(shù)千個(gè)廣告中選擇一個(gè),挑出前100個(gè)廣告。
然后就是我們的玩法平臺(tái),會(huì)做一些和玩法相關(guān)的策略。然后是投放平臺(tái),是我們和廣告主之間的接口。廣告主投放創(chuàng)意,觀察投放效果。下面是日志平臺(tái),每個(gè)數(shù)據(jù)的生產(chǎn)點(diǎn)都不一樣。每個(gè)請(qǐng)求都有一個(gè)請(qǐng)求日志,廣告公開后有一個(gè)公開日志,用戶點(diǎn)擊后有一個(gè)點(diǎn)擊日志。如果發(fā)生轉(zhuǎn)換,廣告商也會(huì)將數(shù)據(jù)轉(zhuǎn)換給我們。這些數(shù)據(jù)是系統(tǒng)中某個(gè)時(shí)間點(diǎn)用戶的切片,在時(shí)間軸上是不同的,所以我們需要一個(gè)系統(tǒng)來對(duì)齊所有的數(shù)據(jù),我們稱之為日志處理平臺(tái)。它將數(shù)據(jù)反饋到模型訓(xùn)練平臺(tái),在那里可以用于學(xué)習(xí)和預(yù)測(cè)。廣告系統(tǒng)還有垂直服務(wù),比如DMP數(shù)據(jù)管理平臺(tái),廣告主可以上傳自己的用戶數(shù)據(jù),和騰訊內(nèi)部的用戶數(shù)據(jù)進(jìn)行交叉分析,得到自己感興趣的人。
接下來,我將從廣告商的角度,然后從流量的角度,來分析系統(tǒng)的數(shù)據(jù)流。
廣告主的第一個(gè)行為是上傳他的廣告,設(shè)計(jì)一個(gè)創(chuàng)意,選擇一個(gè)定位,上傳這個(gè)廣告。有了這個(gè)行為,系統(tǒng)會(huì)自動(dòng)將廣告插入到廣告庫中,除了正常的數(shù)據(jù)庫操作之外,還會(huì)生成一個(gè)序列號(hào),對(duì)于我們的系統(tǒng)來說相當(dāng)于一個(gè)心跳,對(duì)于我們系統(tǒng)的穩(wěn)定非常關(guān)鍵。我們用開源軟件zookeeper,用5臺(tái)機(jī)器搭建的集群生成一個(gè)序列號(hào)。因?yàn)橛?套,可以容災(zāi),只要3套正常工作,整個(gè)系統(tǒng)就可以正常工作。整個(gè)系統(tǒng)通過流水驅(qū)動(dòng)下一個(gè)過程。然后是發(fā)布系統(tǒng),根據(jù)水流情況將廣告庫擴(kuò)展到廣告級(jí)別,部署到天津、上海、深圳的數(shù)據(jù)中心。然后是檢索系統(tǒng),建立倒排表,將廣告質(zhì)量的數(shù)據(jù)流與廣告級(jí)別關(guān)聯(lián)起來,生成索引文件。我們有了索引文件之后,就會(huì)加載我們的索引文件,向外界提供服務(wù)。
接下來是流量端。首先,有一個(gè)廣告位管理系統(tǒng)。我們有一個(gè)擁有數(shù)十萬個(gè)廣告位的移動(dòng)聯(lián)盟業(yè)務(wù)。對(duì)于這么大規(guī)模的廣告位,沒有辦法人工管理,所以我們開發(fā)了一個(gè)廣告位管理系統(tǒng)。我們有很多種途徑。在CGI模塊中,我們將所有的訪問轉(zhuǎn)換成一個(gè)通用的請(qǐng)求,并屏蔽后端特定的訪問方法。在Mixer模塊中,我們會(huì)將QQ用戶數(shù)量擴(kuò)展到用戶的年齡和性別,還有很多垂直業(yè)務(wù),比如再營銷。電子商務(wù)平臺(tái)上用戶的一些用戶行為,如下單、收款等,也在這里進(jìn)入我們的系統(tǒng)。Mixer將流量終端用戶ID擴(kuò)展到用戶畫像后,會(huì)請(qǐng)求檢索系統(tǒng),我們會(huì)將其與廣告數(shù)據(jù)關(guān)聯(lián)起來進(jìn)行操作。對(duì)于檢索系統(tǒng)的返回,將為每個(gè)廣告請(qǐng)求點(diǎn)擊率預(yù)測(cè)和轉(zhuǎn)化率預(yù)測(cè)服務(wù),并將這些預(yù)測(cè)值乘以廣告的投標(biāo)價(jià)格,以形成稱為ECPM的分?jǐn)?shù),我們使用該分?jǐn)?shù)來排序和形成最有價(jià)值的廣告,以返回到流量側(cè)。
從前面的過程可以看出,我們整個(gè)廣告系統(tǒng)是一個(gè)長鏈的系統(tǒng),整個(gè)廣告系統(tǒng)可能是一條由許多珍珠組成的項(xiàng)鏈。當(dāng)某個(gè)需求落地的時(shí)候,一定和很多環(huán)節(jié)有關(guān)。我們現(xiàn)在有幾十個(gè)網(wǎng)絡(luò)服務(wù),每天100多個(gè)改動(dòng),整個(gè)部門幾百個(gè)工程師,在線一萬多臺(tái)服務(wù)器,總共800多萬行源代碼。整個(gè)部門每天收入幾千萬。這里有一個(gè)沖突,如何在需求的變化和系統(tǒng)的穩(wěn)定性之間找到平衡,因?yàn)檎麄€(gè)系統(tǒng)每天產(chǎn)生幾千萬的收益。如果遇到代碼bug或者發(fā)布問題,應(yīng)該因?yàn)閾p失而被追究責(zé)任。我們?cè)趺唇鉀Q?經(jīng)過思考和創(chuàng)新,我總結(jié)出了一套玩法,或者說最佳做法。首先統(tǒng)一代碼規(guī)范,底層開發(fā)一個(gè)建筑系統(tǒng)Blade。我們強(qiáng)制所有代碼在提交之前都要經(jīng)過代碼審查。然后是自動(dòng)化工具檢查和系統(tǒng)的持續(xù)集成。經(jīng)過一系列的方法或規(guī)范,我們已經(jīng)在穩(wěn)定性和敏捷性之間取得了平衡。
如你所見,我們的系統(tǒng)是一個(gè)長鏈系統(tǒng),但是如果我們看每一個(gè)網(wǎng)絡(luò)服務(wù),我們是分層的。底層是構(gòu)建系統(tǒng),在其上我們聚集了大量對(duì)大規(guī)模軟件工程的理解,比如集成更好的對(duì)單元測(cè)試的支持,集成對(duì)內(nèi)存泄漏檢測(cè)的支持,集成對(duì)協(xié)議緩沖區(qū)的支持,使得協(xié)議緩沖區(qū)生成的文件不需要提交到代碼庫,從而保持代碼庫的整潔。Blade上有一個(gè)基本庫,比如文件系統(tǒng)的封裝,也就是文件類,可以統(tǒng)一訪問本地文件或者網(wǎng)絡(luò)文件。C++訪問hdfs比較麻煩。我們抽象之后,集中精力解決大家認(rèn)為棘手的問題,讓所有使用這個(gè)文件類的人都能得到好處。這個(gè)C++是內(nèi)部開源的,可以看看。有了一個(gè)基于C++的RPC網(wǎng)絡(luò)框架和Blade的支持,在這里開發(fā)一個(gè)網(wǎng)絡(luò)服務(wù)是非常容易的。網(wǎng)絡(luò)框架之上是各種網(wǎng)絡(luò)服務(wù),用來構(gòu)建整個(gè)SPA架構(gòu)?,F(xiàn)在,每天有7000多萬股水流。可以看看。有流量接入的CGI。這里是一個(gè)可以監(jiān)控系統(tǒng)變化的實(shí)驗(yàn)系統(tǒng)。里面有一個(gè)細(xì)行,可以把檢索系統(tǒng)返回的廣告按十分之一或者十分之一排序。所有這些服務(wù)都基于同一個(gè)網(wǎng)絡(luò)框架,所以我們可以做得更好。
檢索服務(wù)
接下來說說網(wǎng)絡(luò)服務(wù)中一些有趣的檢索服務(wù)。如你所見,檢索服務(wù)處于鏈的中間,之前沒有用戶數(shù)據(jù),之后也沒有廣告數(shù)據(jù),所以這個(gè)檢索是兩個(gè)數(shù)據(jù)的交集。
我們已經(jīng)通過三個(gè)版本迭代了檢索服務(wù),第一次意識(shí)到它是以傳統(tǒng)的倒排表的形式,例如,結(jié)合年齡、性別、規(guī)格和地區(qū)。反相表后過濾的邏輯。這個(gè)架構(gòu)面臨一些問題。首先,它的復(fù)雜性是m× n。然而,廣告的增加是我們業(yè)務(wù)的動(dòng)力。比如隨著電子商務(wù)的推廣,廣告數(shù)量會(huì)翻倍,系統(tǒng)的性能會(huì)急劇下降。還有一個(gè)挑戰(zhàn),因?yàn)榈古胖挥?維,如果超過6維,就需要用代碼實(shí)現(xiàn)方向邏輯。但實(shí)際上,目標(biāo)產(chǎn)品是廣告產(chǎn)品的驅(qū)動(dòng)力,我們傾向于添加越來越多的目標(biāo)產(chǎn)品,這將導(dǎo)致代碼越來越復(fù)雜,最終導(dǎo)致代碼失控。
然后我們開發(fā)了第二代系統(tǒng)。我們做的第一件事是將方向接口抽象成一個(gè)四層樹,實(shí)際上是一個(gè)四層邏輯樹。下線的時(shí)候,把它變成三層結(jié)構(gòu)。它解決了算法性能隨著廣告數(shù)量的增加而下降的棘手問題。二代系統(tǒng)上線后,效果更好。首先,它增加了方向,所以您不必更改代碼。這是最大的好處。還有其他優(yōu)點(diǎn),因?yàn)樗饕投ㄏ蚪涌谑菢?biāo)準(zhǔn)化的,減少了大量的通信工作。還有,方向維度是反轉(zhuǎn)的,所以添加方向產(chǎn)品不會(huì)導(dǎo)致性能下降。但是,后面還有一些挑戰(zhàn)。首先是索引和排序之間的挑戰(zhàn),遇到了檢索和排序之間的問題。它們通過數(shù)據(jù)耦合在一起,當(dāng)需求發(fā)生變化時(shí),應(yīng)該經(jīng)常修改這個(gè)接口。第二,所有方向都在統(tǒng)一的64位空,所以無法支持不同空之間信息的混合排列。例如,當(dāng)蘋果被分類時(shí),它們不知道是被分類為水果還是3C。沒有一維的擊中信息,比如擊中一個(gè)蘋果。不知道這個(gè)廣告是因?yàn)榇蛄艘粋€(gè)蘋果而觸發(fā)的,不是別的。
所以和三代系統(tǒng)一起,2013年12月提出開發(fā)三代系統(tǒng),2014年5月全面上線。我們可以在Query和廣告的兩端都支持方向表達(dá)式,現(xiàn)在處于行業(yè)領(lǐng)先水平。第三代系統(tǒng)的特點(diǎn)是:第一,定向能力更強(qiáng),因?yàn)樗皇撬膶訕?,而是遞歸的多分支樹;其次,它標(biāo)準(zhǔn)化了分類界面,通過它每個(gè)人都可以開發(fā)和交流。另一個(gè)關(guān)鍵特性是它可以集成各種用戶身份。騰訊有很多用戶身份,比如QQ號(hào)和微信號(hào),IMEI和瀏覽器也有自己的身份。該系統(tǒng)的能力是打開所有接口,這是我們系統(tǒng)成功集成的關(guān)鍵特征。四是支持不同空之間信息的混合排列,每個(gè)方向ID屬于相同空或不同空。第五,提供了附件機(jī)制,每個(gè)廣告都有一個(gè)附件,可以添加二進(jìn)制信息流。我們的系統(tǒng)是2014年4月上線的,現(xiàn)在線下有100多臺(tái)機(jī)器,線上有上千臺(tái)機(jī)器,每天收入幾千萬。
接下來我就說說檢索系統(tǒng)要解決的核心問題。抽象這個(gè)問題,我們可以看到,有兩個(gè)簡(jiǎn)單的問題。
第一個(gè)問題是用戶特征和廣告定位要求要能匹配。廣告導(dǎo)向需求是一個(gè)邏輯表達(dá)式,這里是遞歸定義的多樹。比如一個(gè)用戶的頭像,男,27歲,廣州。第二個(gè)問題是流量需求和廣告屬性的匹配。比如有兩個(gè)廣告,第一個(gè)廣告屬性是教育行業(yè)的文字廣告。檢索系統(tǒng)需要做的是在很短的時(shí)間內(nèi)快速解決兩個(gè)表達(dá)式的匹配,我們可以在5毫秒內(nèi)解決幾十萬個(gè)復(fù)雜的表達(dá)式。如何解決這個(gè)問題?因?yàn)闀r(shí)間要求特別嚴(yán)格,如果對(duì)每個(gè)遞歸多樹進(jìn)行特征測(cè)試,不可能在這么短的時(shí)間內(nèi)完成操作。
我們對(duì)這個(gè)邏輯運(yùn)算問題進(jìn)行了創(chuàng)新,把它轉(zhuǎn)化為一個(gè)計(jì)數(shù)和搜索問題。首先,我們將遞歸多樹轉(zhuǎn)換為或-與-或表達(dá)式。當(dāng)我們進(jìn)行轉(zhuǎn)置時(shí),我們單獨(dú)處理或節(jié)點(diǎn)。對(duì)于“與”節(jié)點(diǎn),我們需要準(zhǔn)確存儲(chǔ)它。舉個(gè)例子,這里有個(gè)例子。廣告1將“與”節(jié)點(diǎn)轉(zhuǎn)換為內(nèi)部數(shù)據(jù)結(jié)構(gòu)。有三次命中計(jì)數(shù),也就是說需要被命中三次才能觸發(fā)。對(duì)于20-30歲和40-50歲的用戶,我們將其存儲(chǔ)為匹配1。這是匹配的原子單位。你可以看到這一節(jié)有一些傳統(tǒng)結(jié)構(gòu)中沒有的東西,這是我們結(jié)構(gòu)中更好的創(chuàng)新。這個(gè)區(qū)間的意義是很多離散的空可以作為索引中原子的匹配項(xiàng)。
一種技術(shù)是把經(jīng)緯度轉(zhuǎn)換成整數(shù),你可以把它想象成小方塊來描述地圖上的不規(guī)則多邊形。但是有了這個(gè)區(qū)間,就可以用不同大小的正方形來描述同一個(gè)多邊形,從而節(jié)省了很多小的正方形節(jié)點(diǎn)。所以這個(gè)區(qū)間是我們的創(chuàng)新,當(dāng)然整個(gè)算法是一個(gè)很大的創(chuàng)新。
在我們轉(zhuǎn)置和存儲(chǔ)所有這些遞歸多分支樹之后,我們形成一個(gè)索引文件。再看看,我們?nèi)绾纹ヅ溥@些索引文件?首先我們可以看到最左邊有一個(gè)用戶的頭像,比如27歲,在倒排的列表里,下面有幾個(gè)條目。這個(gè)時(shí)候我們27歲了,就可以對(duì)應(yīng)匹配項(xiàng)a的命中加一操作了,同樣對(duì)于男性用戶頭像這個(gè)屬性,也可以對(duì)應(yīng)匹配項(xiàng)a的命中加一操作,到了3,就可以觸發(fā)所有索引項(xiàng)對(duì)應(yīng)的廣告了。
如你所見,第三代檢索系統(tǒng)推出后,除了上述產(chǎn)品特性外,性能也有所提升。這些都是我們的一些性能指標(biāo),我們也有很多關(guān)鍵特性,比如廣告在其生命周期內(nèi)播放緩慢,啟動(dòng)緩慢,急剎車等。自從上線以來,我們的業(yè)務(wù)發(fā)展順利。現(xiàn)在每天幾千萬,明年收入幾億。2015年底,我們發(fā)現(xiàn)技術(shù)面臨新的挑戰(zhàn),這來自我們對(duì)人的洞察和分析。下面舉個(gè)例子。比如一個(gè)產(chǎn)品經(jīng)理,可能想在廣告人群中找一些青銅成員,他們是活躍的用戶,也是男性。他希望找到這些種子用戶,并利用他們擴(kuò)大類似的群體。如果數(shù)據(jù)量很小,比如幾百萬,那是個(gè)容易的問題,但是如果數(shù)據(jù)量特別大,比如幾千萬,甚至幾十億,幾千億,我們之前的方法就是寫一大堆豬腳本來運(yùn)行這個(gè)邏輯,但是這里有一個(gè)沖突,產(chǎn)品經(jīng)理的需求很多變,廣告商需要快速處理。當(dāng)你寫腳本或程序時(shí),你需要程序員寫代碼,然后調(diào)試它們。這個(gè)過程很慢,會(huì)造成一些問題。面對(duì)這一挑戰(zhàn),我們通過分析和利用現(xiàn)有的檢索技術(shù)基礎(chǔ)進(jìn)行了一些創(chuàng)新,開發(fā)了一個(gè)數(shù)據(jù)分析系統(tǒng)。
首先,我們對(duì)這個(gè)問題進(jìn)行簡(jiǎn)化或抽象。這個(gè)數(shù)據(jù)分析問題可以分為四個(gè)步驟。第一,有原始數(shù)據(jù)集,靈活但或大或小。然后過濾數(shù)據(jù)集,提取子集,比如所有男性或者所有成員。然后對(duì)子集進(jìn)行分組操作,再進(jìn)行一些操作。
我們還為自己設(shè)置了一些系統(tǒng)設(shè)計(jì)約束。首先,它需要可擴(kuò)展,因?yàn)槲覀兠媾R的數(shù)據(jù)規(guī)模是可變的,從數(shù)百萬到數(shù)千億。然后是高性能,這是我們的技術(shù)能夠產(chǎn)生價(jià)值的地方。如果能做到這一點(diǎn),整個(gè)項(xiàng)目的運(yùn)維成本就會(huì)降低。很好用,因?yàn)楫?dāng)時(shí)做核心系統(tǒng)開發(fā)的只有三個(gè)人,但是在需求端,我們有一百多個(gè)程序員在做數(shù)據(jù)相關(guān)的操作。因此,我們只需要三個(gè)人就可以處理一個(gè)100多人的開發(fā)團(tuán)隊(duì),所以我們要求系統(tǒng)必須非常易于使用。
通過技術(shù)討論和創(chuàng)新,我們選擇了一個(gè)框架,很好地解決了所有這些約束。我們的架構(gòu)是基于SSD硬盤的檢索架構(gòu)。SSD硬盤越來越便宜,但是也提供了非常高的帶寬和延遲,所以SSD是介于內(nèi)存和傳統(tǒng)硬盤之間的一種中間狀態(tài)。這是我們的系統(tǒng)架構(gòu)。首先,系統(tǒng)分為全數(shù)據(jù)流和增量數(shù)據(jù)流,能夠滿足數(shù)據(jù)準(zhǔn)確性和及時(shí)性的要求。
我們的指標(biāo)分幾塊,比如1000塊,多級(jí)聚合加速。我們提供毫秒級(jí)延遲,可以提供同步體驗(yàn)。以前用PIG的時(shí)候每個(gè)人可能要一天才能看到結(jié)果,現(xiàn)在我們可以用毫秒看到結(jié)果。我們的集群將有檢索模塊和聚合器模塊。聚合器模塊集成了Mysql Proxy,提供了極大的便利。對(duì)于檢索系統(tǒng),其核心設(shè)計(jì)元素是檢索文件的布局。根據(jù)一些設(shè)計(jì)限制,我們選擇了列存儲(chǔ)。我們將單獨(dú)存儲(chǔ)所有的列,這可以為每個(gè)列提供更好的壓縮。反向鏈選擇RoaringBitmap,它可以在性能和空之間進(jìn)行平衡。
前面說的是如何利用反演加快過濾過程,也就是如何利用反演從較大的數(shù)據(jù)集中提取較小的數(shù)據(jù)集。下一個(gè)問題是如何對(duì)較小的數(shù)據(jù)集進(jìn)行分組。Group by有兩個(gè)操作。我們研究了自己的情況,發(fā)現(xiàn)這兩種方法都不是很適合。第一種方法,我們的系統(tǒng)是單列索引,沒有聯(lián)合索引的設(shè)計(jì)。因此,我們基于自己的數(shù)據(jù)結(jié)構(gòu)開發(fā)了兩種方法,包括用正向數(shù)據(jù)分組和用反向數(shù)據(jù)分組。對(duì)比分組性能,可以看出比原數(shù)據(jù)庫算法好很多。
我們還提供了分區(qū)管理功能。例如,我們可以通過分析過去60天的數(shù)據(jù),簡(jiǎn)單地刪除60天后的數(shù)據(jù)。查詢時(shí),也可以檢索當(dāng)天對(duì)應(yīng)的數(shù)據(jù),而不是檢索全部數(shù)據(jù)。還有有趣的插件函數(shù),因?yàn)槲覀儼l(fā)現(xiàn)在PivotEngine的推廣過程中有很多用sql語言無法滿足的需求,我們?cè)O(shè)計(jì)了一個(gè)插件架構(gòu)。
我們系統(tǒng)的核心設(shè)計(jì)目標(biāo)是性能和存儲(chǔ)成本。我們的系統(tǒng)性能比德魯伊快一個(gè)數(shù)量級(jí),存儲(chǔ)成本大大降低。
以下是我的總結(jié)。我們做了很多建筑設(shè)計(jì),從實(shí)際業(yè)務(wù)需求出發(fā)。我們部門本身就有一個(gè)特殊的技術(shù)生態(tài),這也來源于我們的業(yè)務(wù)特點(diǎn),因?yàn)檎麄€(gè)部門就是一套架構(gòu)。這就需要我們整個(gè)團(tuán)隊(duì)緊密合作,互相理解對(duì)方的代碼。我們團(tuán)隊(duì)的代碼能力很高,界面的可讀性也很高。需求之一是技術(shù)生態(tài)系統(tǒng)。我們建立了許多基礎(chǔ)設(shè)施來充分利用數(shù)據(jù)。此外,廣告系統(tǒng)行業(yè)是一個(gè)技術(shù)密集型行業(yè),技術(shù)可以促進(jìn)產(chǎn)品的進(jìn)步,對(duì)收入有影響。我們看到了一些關(guān)鍵的業(yè)務(wù)創(chuàng)新,比如兼容不同身份證的能力,這可以幫助我們整合各種廣告產(chǎn)品和形式。這些產(chǎn)品級(jí)創(chuàng)新背后的驅(qū)動(dòng)力來自于我們?cè)诩夹g(shù)上的積累和創(chuàng)新。
1.《全能廣告 下一代的全能廣告系統(tǒng)架構(gòu)【騰訊創(chuàng)新日】》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。
2.《全能廣告 下一代的全能廣告系統(tǒng)架構(gòu)【騰訊創(chuàng)新日】》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/keji/1249348.html