方法指南:利用邊緣計(jì)算實(shí)現(xiàn)低延遲直播流媒體服務(wù)
廣告商(和廣告代理公司)通常會(huì)利用需求方平臺(tái)(DSP)執(zhí)行程序化的廣告購(gòu)買(mǎi)操作。DSP使廣告商能夠配置自己的廣告活動(dòng),并為庫(kù)存廣告位(例如展示廣告的網(wǎng)站上的可投放版面)出價(jià)。隨著廣告商出價(jià)行為和投放網(wǎng)站的廣告庫(kù)存量逐漸增加,處理出價(jià)過(guò)程,并將其與可用庫(kù)存相匹配的工作也開(kāi)始變得越來(lái)越復(fù)雜。DSP系統(tǒng)需要借助性能良好、可擴(kuò)展的云基礎(chǔ)設(shè)施來(lái)處理廣告活動(dòng)和競(jìng)價(jià)。此外,這種基礎(chǔ)設(shè)施內(nèi)的每一環(huán)節(jié)都需要盡可能降低延遲。較低的延遲可使廣告與發(fā)布者的網(wǎng)頁(yè)一起快速加載。
延伸閱讀,點(diǎn)擊鏈接了解 Akamai Cloud Computing
本文簡(jiǎn)要介紹了一種DSP解決方案,該方案對(duì)關(guān)鍵基礎(chǔ)設(shè)施組件(包括前端服務(wù)器和實(shí)時(shí)競(jìng)價(jià)(RTB)服務(wù)器)進(jìn)行了分布式處理。通過(guò)將這些基礎(chǔ)設(shè)施移動(dòng)到更靠近用戶(hù)的地方,再加上為廣告庫(kù)存和用戶(hù)配置文件添加強(qiáng)大的緩存系統(tǒng),即可解決廣告服務(wù)所面臨的一些重大挑戰(zhàn),包括低延遲要求和降低出口費(fèi)用。
一、克服挑戰(zhàn)
與其他幾乎全部專(zhuān)業(yè)的生產(chǎn)級(jí)工作負(fù)載一樣,分布式需求方平臺(tái)也需要考慮獨(dú)特的基礎(chǔ)設(shè)施。我們總結(jié)了下列幾項(xiàng)挑戰(zhàn),每項(xiàng)挑戰(zhàn)都可以通過(guò)精心設(shè)計(jì)的架構(gòu)加以緩解或降低其影響。
1.延遲敏感性
找出導(dǎo)致高延遲問(wèn)題的源頭,盡量減少這些組件對(duì)延遲的影響。
與許多其他系統(tǒng)相比,廣告服務(wù)需要更低的延遲。畢竟廣告需要盡快展示到最終用戶(hù)面前。即便延遲的微小增加,也會(huì)對(duì)客戶(hù)SLA(服務(wù)等級(jí)協(xié)議)和最終用戶(hù)轉(zhuǎn)化率產(chǎn)生巨大的負(fù)面影響。在許多情況下,集中式廣告服務(wù)基礎(chǔ)設(shè)施是造成高延遲的主要原因,但企業(yè)也應(yīng)該仔細(xì)研究,看現(xiàn)有系統(tǒng)中是否還有其他會(huì)造成高延遲的組件。
與傳統(tǒng)的集中式系統(tǒng)相比,該解決方案的分布式特性使關(guān)鍵組件更接近最終用戶(hù),從而減少了延遲。此外,該解決方案還能為每個(gè)區(qū)域提供快速故障切換能力,從而減少停機(jī)時(shí)間并將延遲造成的影響降至最低。
2.成本敏感性(低利潤(rùn)率)
找出導(dǎo)致基礎(chǔ)設(shè)施成本居高不下的源頭,并設(shè)法盡可能降低成本。
由于廣告服務(wù)領(lǐng)域的利潤(rùn)空間相對(duì)較小,云基礎(chǔ)設(shè)施成本會(huì)直接影響盈利能力。降低云成本在基礎(chǔ)設(shè)施規(guī)劃中起著至關(guān)重要的作用。
基礎(chǔ)設(shè)施成本的一個(gè)主要來(lái)源是數(shù)據(jù)出口費(fèi)用。相比其他超大規(guī)模公有云平臺(tái),通過(guò)將分布式廣告服務(wù)系統(tǒng)托管在Akamai云計(jì)算平臺(tái),可以大幅降低甚至完全消除數(shù)據(jù)出口費(fèi)用。本文所介紹的解決方案使一位客戶(hù)成本降低了40%。
云成本和數(shù)據(jù)出口費(fèi)用增加的另一個(gè)原因是流量過(guò)大。當(dāng)分布式基礎(chǔ)設(shè)施與集中式基礎(chǔ)設(shè)施通信時(shí),分散某些組件而不分散其他組件會(huì)增加跨區(qū)域流量。為了限制與這種流量相關(guān)的數(shù)據(jù)出口費(fèi)用,應(yīng)該在分布式系統(tǒng)上實(shí)施緩存。利用這種方法,本地實(shí)例可以同步關(guān)鍵數(shù)據(jù)(如廣告庫(kù)存和出價(jià)),從而減少與集中式云進(jìn)行通信所產(chǎn)生的網(wǎng)絡(luò)流量。此外,憑借著Akamai的全球網(wǎng)絡(luò)以及Akamai與其他超大規(guī)模公有云平臺(tái)的關(guān)系,在對(duì)集中存儲(chǔ)在另一個(gè)超大規(guī)模平臺(tái)上的數(shù)據(jù)進(jìn)行傳輸時(shí),也可消除或減少數(shù)據(jù)出口費(fèi)用。
3.與集成和遷移有關(guān)的負(fù)擔(dān)
考慮基礎(chǔ)設(shè)施變更會(huì)帶來(lái)的工作負(fù)擔(dān),并盡可能設(shè)計(jì)一種可減少工作負(fù)擔(dān)的架構(gòu)。
在重新構(gòu)建應(yīng)用程序時(shí),設(shè)計(jì)和集成新系統(tǒng)的工作負(fù)擔(dān)以及遷移到另一個(gè)提供商的工作負(fù)擔(dān)都會(huì)帶來(lái)巨大挑戰(zhàn)。本文中介紹的解決方案,只需要將部分廣告服務(wù)工作流程遷移到Akamai平臺(tái),這意味著許多集中式組件無(wú)需遷移。廣告庫(kù)存記錄系統(tǒng)和其他關(guān)鍵數(shù)據(jù)庫(kù)也可以保持不變。與其他同類(lèi)解決方案相比,Akamai解決方案的工作量大幅減少。
二、基礎(chǔ)設(shè)施架構(gòu)圖
下圖展示了在Akamai云計(jì)算平臺(tái)上實(shí)現(xiàn)的多區(qū)域DSP基礎(chǔ)設(shè)施組件,其中還保留了原有的集中式數(shù)據(jù)系統(tǒng)。該解決方案可將請(qǐng)求路由到最靠近最終用戶(hù)(廣告商和廣告代理公司)的區(qū)域,能在多個(gè)后端系統(tǒng)間對(duì)請(qǐng)求進(jìn)行負(fù)載均衡,可緩存任何集中數(shù)據(jù)的副本,并能監(jiān)控基礎(chǔ)設(shè)施的停機(jī)時(shí)間等。
- 客戶(hù)(廣告商)與DSP交互,借此配置廣告活動(dòng)并競(jìng)標(biāo)廣告位庫(kù)存。
- 廣告商提交競(jìng)價(jià),將其廣告顯示給最終用戶(hù)。這一過(guò)程采用了HTTPS API請(qǐng)求。
- 該請(qǐng)求被路由到多個(gè)計(jì)算區(qū)域(數(shù)據(jù)中心)之一。由于這是一個(gè)分布式應(yīng)用,因此請(qǐng)求會(huì)通過(guò)一個(gè)基于DNS的智能負(fù)載均衡解決方案(例如Akamai Global Traffic Manager,Akamai GTM)進(jìn)行路由。GTM會(huì)決定哪個(gè)區(qū)域能最好地滿足客戶(hù)請(qǐng)求。這需要考慮到位置、性能和可用性等因素。像這樣的負(fù)載均衡解決方案是降低延遲(提高廣告展示速度)和提高彈性(確保一次故障不會(huì)影響所有廣告)的理想方式。
- 本地負(fù)載均衡器(例如運(yùn)行HAProxy的計(jì)算實(shí)例)會(huì)將請(qǐng)求路由到多個(gè)后端集群之一。為了實(shí)現(xiàn)冗余和擴(kuò)展,一個(gè)區(qū)域內(nèi)通常會(huì)使用多個(gè)集群。諸如LKE這樣的編排平臺(tái)可管理集群基礎(chǔ)設(shè)施和運(yùn)維任務(wù)。
- 前端API網(wǎng)關(guān)開(kāi)始處理請(qǐng)求。這些系統(tǒng)在競(jìng)價(jià)服務(wù)器之前運(yùn)行,這是為了降低數(shù)據(jù)出口費(fèi)用和競(jìng)價(jià)處理成本。這些前端服務(wù)器通常能應(yīng)用業(yè)務(wù)邏輯,與廣告交易所、競(jìng)價(jià)服務(wù)器和集群上的其他微服務(wù)進(jìn)行通信。
- 前端網(wǎng)關(guān)向競(jìng)價(jià)服務(wù)器發(fā)送競(jìng)價(jià)請(qǐng)求。在競(jìng)價(jià)過(guò)程中,競(jìng)價(jià)與本地廣告庫(kù)存進(jìn)行匹配,并與使用DSP平臺(tái)的其他廣告商進(jìn)行比較。
- 處理競(jìng)價(jià)時(shí),會(huì)先查詢(xún)本地緩存服務(wù)器。該緩存包括來(lái)自任何集中式基礎(chǔ)設(shè)施的數(shù)據(jù),如廣告庫(kù)存數(shù)據(jù)庫(kù)、用戶(hù)配置文件等。這就避免了每次請(qǐng)求時(shí)都要查詢(xún)中央記錄系統(tǒng)所帶來(lái)的延遲。
- 本地緩存會(huì)定期更新。緩存中的數(shù)據(jù)會(huì)被刷新,從而確保系統(tǒng)會(huì)使用到最新信息。
- 將本地緩存中的信息發(fā)回競(jìng)價(jià)服務(wù)器。
- 競(jìng)價(jià)服務(wù)器處理競(jìng)價(jià),即決定競(jìng)價(jià)是被接受(并將結(jié)果發(fā)送給廣告交易平臺(tái)或提供廣告位的網(wǎng)站)還是被拒絕。
- DSP通過(guò)更新網(wǎng)頁(yè)界面將競(jìng)價(jià)結(jié)果告知廣告商。
三、涉及到的系統(tǒng)和組件
1.全局負(fù)載均衡器
Akamai Global Traffic Manager(GTM)可用于將傳入請(qǐng)求路由到最靠近最終用戶(hù)的區(qū)域。
2.本地負(fù)載均衡器
在每個(gè)區(qū)域內(nèi),使用負(fù)載均衡器來(lái)均衡多個(gè)后端集群之間的流量。為避免停機(jī),該負(fù)載均衡器應(yīng)具備冗余,并能優(yōu)雅地故障切換到輔助負(fù)載均衡器??蛇x擇的負(fù)載均衡解決方案包括NodeBalancers、NGINX和HAProxy。
3.DSP廣告服務(wù)集群
廣告服務(wù)集群在LKE等容器編排平臺(tái)上運(yùn)行,由多個(gè)計(jì)算實(shí)例組成,每個(gè)實(shí)例運(yùn)行下列一個(gè)或多個(gè)組件。每個(gè)區(qū)域內(nèi)應(yīng)使用多個(gè)集群,以保持冗余并實(shí)現(xiàn)高可用性。
- 前端API網(wǎng)關(guān):該網(wǎng)關(guān)會(huì)代理集群上托管的其他廣告相關(guān)API的所有API請(qǐng)求??蛇x擇的API網(wǎng)關(guān)包括Kong、NGINX、Tyk和Gravitee。
- 實(shí)時(shí)競(jìng)價(jià)服務(wù)器:托管了決定接受或拒絕哪些競(jìng)價(jià)的所有邏輯??赏ㄟ^(guò)API訪問(wèn),請(qǐng)求只能來(lái)自該集群的API網(wǎng)關(guān)。
- 緩存系統(tǒng):每個(gè)集群都應(yīng)包含一個(gè)本地緩存,緩存了與廣告相關(guān)的重要集中式數(shù)據(jù)庫(kù),如廣告庫(kù)存和可能的用戶(hù)配置文件??蛇x擇的本地緩存系統(tǒng)包括Redis、Apache Ignite、Memcached和Couchbase。
4.監(jiān)控系統(tǒng)
為監(jiān)控該區(qū)域內(nèi)負(fù)載均衡器和集群的狀態(tài),應(yīng)配置監(jiān)控和/或日志系統(tǒng)。可選擇的監(jiān)控解決方案包括Prometheus、Grafana和ThousandEyes。
———————————————————————————————————————————————
如您所在的企業(yè)也在考慮采購(gòu)云服務(wù)或進(jìn)行云遷移,
點(diǎn)擊鏈接了解Akamai Linode解決方案,現(xiàn)在申請(qǐng)?jiān)囉每傻酶哌_(dá)500美元專(zhuān)屬額度