为什么 Netflix “永不宕机”?
整理|核子可樂、燕珊
如果運(yùn)氣好,Netflix 的方案可能最終會成為行業(yè)標(biāo)準(zhǔn)。??
上個(gè)月,Netflix 出品的《魷魚游戲》劇集再次引爆全球無數(shù)觀眾。雖然“身經(jīng)百戰(zhàn)”的觀眾早已對這類大逃殺題材的作品建立起充分的心理預(yù)期,但 Netflix 憑借著對反烏托邦題材的極致挖掘再次證明,他們有決心打造一出迄今為止最成功的原創(chuàng)劇集,同時(shí)也向其他競爭對手證明自己的業(yè)務(wù)高度已然遙不可及。
與此同時(shí),很多同類流媒體平臺還深陷老大難問題而無法自拔:視頻卡頓、控件失效或者服務(wù)崩潰等等。而 Netflix 卻鮮少出現(xiàn)問題,這離不開其優(yōu)秀的基礎(chǔ)設(shè)施建設(shè)。近日,《The Verge》撰文談 Netflix 龐大的服務(wù)器網(wǎng)絡(luò) Open Connect,其指出,正是這個(gè)不被太多人在意的技術(shù)細(xì)節(jié),從根本上解決了大部分現(xiàn)代流媒體面臨的共同難題。
Open Connect 的奧秘
過去十多年來,Netflix 流媒體服務(wù)出過多少次技術(shù)問題?不能說沒有,但肯定屈指可數(shù)。服務(wù)的核心,也就是應(yīng)用程序底層的工程方案,才是決定一切流媒體成功與否的關(guān)鍵。
Netflix 用了十年時(shí)間搭建起一套名為 Open Connect 的服務(wù)器網(wǎng)絡(luò)。Netflix 公司 Open Connect 副總裁 Gina Haspilaire 表示,當(dāng)初之所以要構(gòu)建 Open Connect,是因?yàn)?Netflix“清醒地意識到,我們需要構(gòu)建一定水平的基礎(chǔ)設(shè)施技術(shù)才能維持起我們想要獲得的預(yù)期流量。我們覺得自己能成功,也知道當(dāng)時(shí)的互聯(lián)網(wǎng)還支撐不起預(yù)期中的全球流量規(guī)模。”
沒人能在應(yīng)用程序不斷崩潰、視頻老在緩沖的情況下堅(jiān)持看完一部電影。Netflix 對這個(gè)問題很有先見之明,他們知道要想保持穩(wěn)定的質(zhì)量水平,首先需要建立自己的內(nèi)容分發(fā)系統(tǒng)。
Open Connect 是 Netflix 的內(nèi)容交付網(wǎng)絡(luò),專門用于向全球用戶分發(fā)電視節(jié)目與電影。項(xiàng)目始于 2012 年,包括由 Netflix 向互聯(lián)網(wǎng)服務(wù)商提供物理設(shè)備,借此實(shí)現(xiàn)媒體流量本地化。這些設(shè)備存儲著 Netflix 的內(nèi)容副本,負(fù)責(zé)減少內(nèi)容在抵達(dá)播放用戶之前需要經(jīng)過的通道數(shù)量,借此減輕網(wǎng)絡(luò)壓力。
大多數(shù)主要流媒體服務(wù)都依賴于第三方內(nèi)容交付網(wǎng)絡(luò)(即 CDN)實(shí)現(xiàn)視頻傳遞,正是這種通行實(shí)踐讓 Netflix 的自有服務(wù)器網(wǎng)絡(luò)變得鶴立雞群。如果沒有像 Open Connect 這樣的系統(tǒng)或者其他第三方 CDN,互聯(lián)網(wǎng)服務(wù)商所請求的內(nèi)容必須“通過一個(gè)對等點(diǎn)、再經(jīng)由四到五個(gè)其他網(wǎng)絡(luò),才能抵達(dá)數(shù)據(jù)源頭或者內(nèi)容存儲位置。”內(nèi)容交付網(wǎng)絡(luò)廠商 Akamai 媒體工程首席架構(gòu)師 Will Law 強(qiáng)調(diào),這不僅會拖慢內(nèi)容交付速度,而且考慮到互聯(lián)網(wǎng)服務(wù)商可能需要付費(fèi)才能完成內(nèi)容訪問,所以整個(gè)實(shí)現(xiàn)成本也更為高昂。
為了回避流量和成本問題,Netflix 會提前將內(nèi)容副本發(fā)送至自有服務(wù)器,從而防止 Netflix 流量在流媒體峰值時(shí)段被播放端網(wǎng)絡(luò)所阻塞。
“我們的 Open Connect 會在離用戶互聯(lián)網(wǎng)服務(wù)商最近的位置部署一份 Bridgerton 副本——有時(shí)候甚至?xí)苯硬渴鹪诨ヂ?lián)網(wǎng)服務(wù)商的網(wǎng)絡(luò)之內(nèi)。這就基本避免了互聯(lián)網(wǎng)服務(wù)商先通過網(wǎng)絡(luò)對接服務(wù)器、再把提取到的內(nèi)容傳輸給用戶的過程。”Gina Haspilaire 說道。
而且,Netflix 的服務(wù)器幾乎無處不在。目前,Netflix 表示已經(jīng)在 158 個(gè)國家 / 地區(qū)部署有 17000 臺服務(wù)器,而且未來還計(jì)劃進(jìn)一步擴(kuò)展其內(nèi)容交付網(wǎng)絡(luò)。根據(jù)介紹,Netflix 會根據(jù)哪些位置周邊的用戶更多、哪些區(qū)域的互聯(lián)網(wǎng)服務(wù)器商合作門檻更低對服務(wù)器部署做出優(yōu)先級排序。
Law 解釋道,“為了提高性能,流媒體服務(wù)商紛紛將服務(wù)器盡可能靠近最終用戶,再由這些服務(wù)器提供最后一英里區(qū)域內(nèi)的網(wǎng)絡(luò)內(nèi)容。這就避免了把所有內(nèi)容請求都返回源頭,再將內(nèi)容經(jīng)由互聯(lián)網(wǎng)整體傳遞的過程。這不僅減輕了互聯(lián)網(wǎng)的傳輸負(fù)擔(dān),也緩解了對等點(diǎn)的承載強(qiáng)度。”
十年前 Open Connect 剛剛立項(xiàng)時(shí),Netflix 也確定了與互聯(lián)網(wǎng)服務(wù)商全面合作的基本部署思路。Netflix 免費(fèi)為互聯(lián)網(wǎng)服務(wù)商提供服務(wù)器,再由內(nèi)部可靠性團(tuán)隊(duì)與這些服務(wù)商一道維護(hù)這些服務(wù)器設(shè)備。根據(jù) Netflix 與 Akamai 的介紹,互聯(lián)網(wǎng)服務(wù)商也能從中受益,因?yàn)榫徒@取內(nèi)容副本可以降低他們的網(wǎng)絡(luò)基礎(chǔ)設(shè)施運(yùn)營成本。
Law 稱,“由此帶來的運(yùn)營職責(zé)不算特別繁重,但卻帶來了令人釋懷的解脫。而且這些服務(wù)器的基本作用跟 Akamai 乃至其他 CDN 完全相同,唯一的區(qū)別就是它們只服務(wù)于 Netflix,屬于 Netflix 內(nèi)容的專屬 CDN。”
包括 Akamai 在內(nèi)大多數(shù)主要第三方 CDN 服務(wù)商都需要服務(wù)成千上萬客戶并應(yīng)對企業(yè)提出的種種要求,而 Netflix 的內(nèi)部 CDN 只著眼于一個(gè)目標(biāo):分發(fā) Netflix 內(nèi)容。Law 表示,為了順利將電影或電視節(jié)目交付到每一位點(diǎn)播觀眾面前,內(nèi)容分發(fā)商必須建立起這樣一套全面的 CDN 合作關(guān)系或者服務(wù)器網(wǎng)絡(luò)。
雖然 Netflix 沒有透露他們搭建并維護(hù)這些服務(wù)器的具體成本,但也提到自十年前立項(xiàng)以來,Open Connect 的總投資已經(jīng)達(dá)到 10 億美元上下。他們還在不斷向 CDN 投入大量資金,繼續(xù)堅(jiān)定推進(jìn)這一以良好觀看體驗(yàn)與用戶高參與度為核心的 Netflix 業(yè)務(wù)戰(zhàn)略。很明顯,Netflix 的整個(gè)訂閱商業(yè)模式之所以成立,依靠的就是為用戶提供符合預(yù)期的視頻流質(zhì)量。
Netflix 還需要考慮到一個(gè)殘酷的現(xiàn)實(shí):美國的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施在本質(zhì)上可謂支離破碎、頭尾難以相顧。
電子前沿基金會的 Katharine Trendacosta 在采訪中表示,“Netflix 之所以必須建立自有 CDN,是因?yàn)槊绹幕ヂ?lián)網(wǎng)服務(wù)商實(shí)在垃圾得不行。他們很清楚,只要寄希望于互聯(lián)網(wǎng)服務(wù)商,就必然會有相當(dāng)一部分用戶始終受到視頻緩沖或者低畫質(zhì)圖像的折磨。”
為什么有效
Netflix 最關(guān)注的目標(biāo),就是無論互聯(lián)網(wǎng)服務(wù)商有多差勁、都能保證用戶享受到良好的內(nèi)容觀看體驗(yàn)。
為此,Netflix 會在服務(wù)器上為每部劇集或影片保留 3 個(gè)副本,這些副本的圖像質(zhì)量各不相同。如果您的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施不堪重負(fù)甚至?xí)簳r(shí)中斷,系統(tǒng)會導(dǎo)入碼率較低的版本,保證用戶始終有內(nèi)容可看。
Haspilaire 解釋道,“我們會根據(jù)網(wǎng)絡(luò)質(zhì)量調(diào)整內(nèi)容,而不是根據(jù)內(nèi)容調(diào)整網(wǎng)絡(luò)質(zhì)量。正因?yàn)槿绱?#xff0c;觀眾在觀看時(shí)感受不到網(wǎng)絡(luò)條件發(fā)生了哪些波動——流媒體內(nèi)容一直在穩(wěn)定呈現(xiàn),而我們會隨時(shí)間推移隨時(shí)調(diào)整播放的版本……這樣即使短時(shí)間內(nèi)斷開網(wǎng)絡(luò)又重新連入,用戶的屏幕上也不會出現(xiàn)緩沖提示。”
那么,為什么是 3 個(gè)副本?Trendacosta 指出,美國本地的互聯(lián)網(wǎng)服務(wù)體驗(yàn)毫無可靠性可言。設(shè)施宕機(jī)、WiFi 連接不良乃至其他網(wǎng)絡(luò)故障都有可能影響用戶的互聯(lián)網(wǎng)訪問能力,而 Netflix 則盡可能與互聯(lián)網(wǎng)服務(wù)商合作以解決大部分網(wǎng)絡(luò)傳輸問題。
Haspilaire 提到,Netflix 會在非峰值時(shí)段預(yù)先部署好影音內(nèi)容,保證這部分傳輸任務(wù)不會跟其他流量競爭互聯(lián)網(wǎng)傳輸帶寬。至于部署的具體內(nèi)容和位置,Netflix 會提前預(yù)測高人氣影片 / 劇集,并將數(shù)據(jù)相應(yīng)發(fā)送至目標(biāo)服務(wù)器。
Haspilaire 表示,“我們不只是把內(nèi)容部署在世界各地的內(nèi)容交付服務(wù)器上,同時(shí)也會根據(jù)預(yù)先做出的流行度預(yù)測設(shè)計(jì)部署方案。我們會預(yù)測哪些內(nèi)容更受歡迎,并把影音盡可能部署在正確的服務(wù)器中。通過提前準(zhǔn)備,我們的電影和劇集就能在黃金時(shí)段為幾乎 100% 的觀眾提供本地副本,基本消除了由網(wǎng)絡(luò)服務(wù)中斷引發(fā)的糟糕觀感。”
之后,Netflix 會根據(jù)內(nèi)容的受歡迎度在服務(wù)器上轉(zhuǎn)移視頻。Open Connect 擁有兩類服務(wù)器:閃存型(提供更快的交付速度)和存儲型(最多可容納 350 TB 數(shù)據(jù))。如果存儲內(nèi)容的人氣不斷提升,Netflix 就會把相應(yīng)的副本轉(zhuǎn)移到閃存服務(wù)器當(dāng)中。
Netflix 公司解釋道,“閃存服務(wù)器的基本定位就是支撐大部分流量服務(wù),所以隨著某些節(jié)目或影片的需求量提升,我們的 OCA 服務(wù)器就會把內(nèi)容從存儲型轉(zhuǎn)移到閃存型、保障觀眾獲得穩(wěn)定的觀看體驗(yàn)。”
新冠疫情的突然爆發(fā),讓全球數(shù)億人窩在家中持續(xù)觀看流媒體內(nèi)容。而這一突發(fā)狀況,也成為 Netflix 這項(xiàng)十年規(guī)劃的收官之戰(zhàn)與立威之路。Haspilaire 表示,“這場疫情以一種我們不愿看到的方式測試了 Netflix 基礎(chǔ)設(shè)施與技術(shù)體系。”而 Open Connect 頂住壓力,證明自己有能力幫助 Netflix 應(yīng)對不斷增長的未來需求。
流媒體之王
Open Connect 是 Netflix 在疫情期間贏得良好市場表現(xiàn)的一大支柱,但 Netflix 力壓競爭對手靠的顯然不只這一招。Rayburn 也向《The Verge》列舉了 Netflix 視頻與音頻編碼項(xiàng)目的例子,強(qiáng)調(diào)雖然看起來 Netflix 當(dāng)下已經(jīng)建立起“巨大的優(yōu)勢”,但作為戰(zhàn)場中的后來者,他們還需要憑借服務(wù)品質(zhì)與服務(wù)態(tài)度去吸引和留存用戶。
Rayburn 指出,“每個(gè)人都承認(rèn),Netflix 建立起了一套能夠大規(guī)模穩(wěn)定運(yùn)行的系統(tǒng),而這也是整個(gè)流媒體行業(yè)最不關(guān)注的方向。只有在規(guī)模化運(yùn)營中始終提供良好、優(yōu)質(zhì)的消費(fèi)者體驗(yàn),我們才能獲得如此龐大的訂閱者群體。沒人擁有 Netflix 這樣的基礎(chǔ)設(shè)施規(guī)模,也沒人擁有同等程度的專業(yè)積累。”
至于 Netflix 為什么這么成功,已經(jīng)有不少人從各個(gè)角度進(jìn)行剖析,其技術(shù)和企業(yè)文化也一直廣受好評。資深架構(gòu)師、微服務(wù)技術(shù)專家楊波曾向我們總結(jié)了一些 Netflix 的厲害之處,其中有幾點(diǎn)尤其能體現(xiàn) Netflix 在技術(shù)創(chuàng)新上的大膽和前沿。比如,在 2009 年左右, Netflix 就開始啟動上公有云戰(zhàn)略(雖然背后也是吃了自建數(shù)據(jù)中心的苦頭),應(yīng)用逐步向 AWS 遷移,這個(gè)過程一共持續(xù)了將近 5 年,到 2015 年的時(shí)候遷移完畢。而現(xiàn)在回想,2009 年左右的 AWS 其實(shí)還不太成熟,別說當(dāng)時(shí),即使現(xiàn)在也沒有幾個(gè)大廠敢提全部遷移公有云的戰(zhàn)略。
又比如,Netflix 早在 2013 年就提出了 Cloud Native 理念,也就是現(xiàn)在常說的云原生,而且它的整個(gè)平臺 (AWS IaaS + PaaS) 都是云原生的。近年容器技術(shù)大火,大家都在談不可變基礎(chǔ)設(shè)施的理念,本質(zhì)就是鏡像部署。Netflix 在 2012 年前就已經(jīng)實(shí)現(xiàn)鏡像部署,發(fā)布的單位是 AMI(Amazon Machine Image) 鏡像。
另一方面,開放開源也是 Netflix 的一種競爭戰(zhàn)略。在進(jìn)行大規(guī)模生產(chǎn)級微服務(wù)架構(gòu)實(shí)踐的同時(shí), Netflix 也開源了整個(gè)微服務(wù)技術(shù)棧,比如現(xiàn)在大家耳熟能詳?shù)?Zuul 網(wǎng)關(guān)、Eureka 服務(wù)發(fā)現(xiàn)注冊中心、Hystrix 熔斷限流、Archaius 配置等組件。對 Netflix 來說,開源有望能將自己的解決方案建立為行業(yè)標(biāo)準(zhǔn)和最佳實(shí)踐。其次,開源亦可以幫助建立 Netflix 技術(shù)品牌,有利于雇傭、留住和吸引頂級工程師。第三,Netflix 可以從共享生態(tài)中獲得反饋輸入并受益。
隨著其服務(wù)體系的不斷擴(kuò)張,也許終有一天各大老牌流媒體廠商反過來要從 Netflix 的基礎(chǔ)設(shè)施與自上而下的業(yè)務(wù)戰(zhàn)略中取經(jīng)。甚至,Netflix 的方案可能最終會成為行業(yè)標(biāo)準(zhǔn)。
參考鏈接:
https://www.theverge.com/22787426/netflix-cdn-open-connect
有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號
好文章,我在看??
總結(jié)
以上是生活随笔為你收集整理的为什么 Netflix “永不宕机”?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当Typora开始收费,开源免费的Mar
- 下一篇: 代码review,瑞出事来了!