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