整理|核子可樂、燕珊
如果運氣好,Netflix 的方案可能最終會成為行業标準。
上個月,Netflix 出品的《鱿魚遊戲》劇集再次引爆全球無數觀衆。雖然“身經百戰”的觀衆早已對這類大逃殺題材的作品建立起充分的心理預期,但 Netflix 憑借着對反烏托邦題材的極緻挖掘再次證明,他們有決心打造一出迄今為止最成功的原創劇集,同時也向其他競争對手證明自己的業務高度已然遙不可及。
與此同時,很多同類流媒體平台還深陷老大難問題而無法自拔:視訊卡頓、控件失效或者服務崩潰等等。而 Netflix 卻鮮少出現問題,這離不開其優秀的基礎設施建設。近日,《The Verge》撰文談 Netflix 龐大的伺服器網絡 Open Connect,其指出,正是這個不被太多人在意的技術細節,從根本上解決了大部分現代流媒體面臨的共同難題。
Open Connect 的奧秘
過去十多年來,Netflix 流媒體服務出過多少次技術問題?不能說沒有,但肯定屈指可數。服務的核心,也就是應用程式底層的工程方案,才是決定一切流媒體成功與否的關鍵。
Netflix 用了十年時間搭建起一套名為 Open Connect 的伺服器網絡。Netflix 公司 Open Connect 副總裁 Gina Haspilaire 表示,當初之是以要建構 Open Connect,是因為 Netflix“清醒地意識到,我們需要建構一定水準的基礎設施技術才能維持起我們想要獲得的預期流量。我們覺得自己能成功,也知道當時的網際網路還支撐不起預期中的全球流量規模。”
沒人能在應用程式不斷崩潰、視訊老在緩沖的情況下堅持看完一部電影。Netflix 對這個問題很有先見之明,他們知道要想保持穩定的品質水準,首先需要建立自己的内容分發系統。
Open Connect 是 Netflix 的内容傳遞網絡,專門用于向全球使用者分發電視節目與電影。項目始于 2012 年,包括由 Netflix 向網際網路服務商提供實體裝置,借此實作媒體流量本地化。這些裝置存儲着 Netflix 的内容副本,負責減少内容在抵達播放使用者之前需要經過的通道數量,借此減輕網絡壓力。
大多數主要流媒體服務都依賴于第三方内容傳遞網絡(即 CDN)實作視訊傳遞,正是這種通行實踐讓 Netflix 的自有伺服器網絡變得鶴立雞群。如果沒有像 Open Connect 這樣的系統或者其他第三方 CDN,網際網路服務商所請求的内容必須“通過一個對等點、再經由四到五個其他網絡,才能抵達資料源頭或者内容存儲位置。”内容傳遞網絡廠商 Akamai 媒體工程首席架構師 Will Law 強調,這不僅會拖慢内容傳遞速度,而且考慮到網際網路服務商可能需要付費才能完成内容通路,是以整個實作成本也更為高昂。
為了回避流量和成本問題,Netflix 會提前将内容副本發送至自有伺服器,進而防止 Netflix 流量在流媒體峰值時段被播放端網絡所阻塞。
“我們的 Open Connect 會在離使用者網際網路服務商最近的位置部署一份 Bridgerton 副本——有時候甚至會直接部署在網際網路服務商的網絡之内。這就基本避免了網際網路服務商先通過網絡對接伺服器、再把提取到的内容傳輸給使用者的過程。”Gina Haspilaire 說道。

而且,Netflix 的伺服器幾乎無處不在。目前,Netflix 表示已經在 158 個國家 / 地區部署有 17000 台伺服器,而且未來還計劃進一步擴充其内容傳遞網絡。根據介紹,Netflix 會根據哪些位置周邊的使用者更多、哪些區域的網際網路伺服器商合作門檻更低對伺服器部署做出優先級排序。
Law 解釋道,“為了提高性能,流媒體服務商紛紛将伺服器盡可能靠近最終使用者,再由這些伺服器提供最後一英裡區域内的網絡内容。這就避免了把所有内容請求都傳回源頭,再将内容經由網際網路整體傳遞的過程。這不僅減輕了網際網路的傳輸負擔,也緩解了對等點的承載強度。”
十年前 Open Connect 剛剛立項時,Netflix 也确定了與網際網路服務商全面合作的基本部署思路。Netflix 免費為網際網路服務商提供伺服器,再由内部可靠性團隊與這些服務商一道維護這些伺服器裝置。根據 Netflix 與 Akamai 的介紹,網際網路服務商也能從中受益,因為就近擷取内容副本可以降低他們的網絡基礎設施營運成本。
Law 稱,“由此帶來的營運職責不算特别繁重,但卻帶來了令人釋懷的解脫。而且這些伺服器的基本作用跟 Akamai 乃至其他 CDN 完全相同,唯一的差別就是它們隻服務于 Netflix,屬于 Netflix 内容的專屬 CDN。”
包括 Akamai 在内大多數主要第三方 CDN 服務商都需要服務成千上萬客戶并應對企業提出的種種要求,而 Netflix 的内部 CDN 隻着眼于一個目标:分發 Netflix 内容。Law 表示,為了順利将電影或電視節目傳遞到每一位點播觀衆面前,内容分發商必須建立起這樣一套全面的 CDN 合作關系或者伺服器網絡。
雖然 Netflix 沒有透露他們搭建并維護這些伺服器的具體成本,但也提到自十年前立項以來,Open Connect 的總投資已經達到 10 億美元上下。他們還在不斷向 CDN 投入大量資金,繼續堅定推進這一以良好觀看體驗與使用者高參與度為核心的 Netflix 業務戰略。很明顯,Netflix 的整個訂閱商業模式之是以成立,依靠的就是為使用者提供符合預期的視訊流品質。
Netflix 還需要考慮到一個殘酷的現實:美國的網際網路基礎設施在本質上可謂支離破碎、頭尾難以相顧。
電子前沿基金會的 Katharine Trendacosta 在采訪中表示,“Netflix 之是以必須建立自有 CDN,是因為美國的網際網路服務商實在垃圾得不行。他們很清楚,隻要寄希望于網際網路服務商,就必然會有相當一部分使用者始終受到視訊緩沖或者低畫質圖像的折磨。”
為什麼有效
Netflix 最關注的目标,就是無論網際網路服務商有多差勁、都能保證使用者享受到良好的内容觀看體驗。
為此,Netflix 會在伺服器上為每部劇集或影片保留 3 個副本,這些副本的圖像品質各不相同。如果您的網際網路基礎設施不堪重負甚至暫時中斷,系統會導入碼率較低的版本,保證使用者始終有内容可看。
Haspilaire 解釋道,“我們會根據網絡品質調整内容,而不是根據内容調整網絡品質。正因為如此,觀衆在觀看時感受不到網絡條件發生了哪些波動——流媒體内容一直在穩定呈現,而我們會随時間推移随時調整播放的版本……這樣即使短時間内斷開網絡又重新連入,使用者的螢幕上也不會出現緩沖提示。”
那麼,為什麼是 3 個副本?Trendacosta 指出,美國本地的網際網路服務體驗毫無可靠性可言。設施當機、WiFi 連接配接不良乃至其他網絡故障都有可能影響使用者的網際網路通路能力,而 Netflix 則盡可能與網際網路服務商合作以解決大部分網絡傳輸問題。
Haspilaire 提到,Netflix 會在非峰值時段預先部署好影音内容,保證這部分傳輸任務不會跟其他流量競争網際網路傳輸帶寬。至于部署的具體内容和位置,Netflix 會提前預測高人氣影片 / 劇集,并将資料相應發送至目标伺服器。
Haspilaire 表示,“我們不隻是把内容部署在世界各地的内容傳遞伺服器上,同時也會根據預先做出的流行度預測設計部署方案。我們會預測哪些内容更受歡迎,并把影音盡可能部署在正确的伺服器中。通過提前準備,我們的電影和劇集就能在黃金時段為幾乎 100% 的觀衆提供本地副本,基本消除了由網絡服務中斷引發的糟糕觀感。”
之後,Netflix 會根據内容的受歡迎度在伺服器上轉移視訊。Open Connect 擁有兩類伺服器:閃存型(提供更快的傳遞速度)和存儲型(最多可容納 350 TB 資料)。如果存儲内容的人氣不斷提升,Netflix 就會把相應的副本轉移到閃存伺服器當中。
Netflix 公司解釋道,“閃存伺服器的基本定位就是支撐大部分流量服務,是以随着某些節目或影片的需求量提升,我們的 OCA 伺服器就會把内容從存儲型轉移到閃存型、保障觀衆獲得穩定的觀看體驗。”
新冠疫情的突然爆發,讓全球數億人窩在家中持續觀看流媒體内容。而這一突發狀況,也成為 Netflix 這項十年規劃的收官之戰與立威之路。Haspilaire 表示,“這場疫情以一種我們不願看到的方式測試了 Netflix 基礎設施與技術體系。”而 Open Connect 頂住壓力,證明自己有能力幫助 Netflix 應對不斷增長的未來需求。
流媒體之王
Open Connect 是 Netflix 在疫情期間赢得良好市場表現的一大支柱,但 Netflix 力壓競争對手靠的顯然不隻這一招。Rayburn 也向《The Verge》列舉了 Netflix 視訊與音頻編碼項目的例子,強調雖然看起來 Netflix 當下已經建立起“巨大的優勢”,但作為戰場中的後來者,他們還需要憑借服務品質與服務态度去吸引和留存使用者。
Rayburn 指出,“每個人都承認,Netflix 建立起了一套能夠大規模穩定運作的系統,而這也是整個流媒體行業最不關注的方向。隻有在規模化營運中始終提供良好、優質的消費者體驗,我們才能獲得如此龐大的訂閱者群體。沒人擁有 Netflix 這樣的基礎設施規模,也沒人擁有同等程度的專業積累。”
至于 Netflix 為什麼這麼成功,已經有不少人從各個角度進行剖析,其技術和企業文化也一直廣受好評。資深架構師、微服務技術專家楊波曾向我們總結了一些 Netflix 的厲害之處,其中有幾點尤其能展現 Netflix 在技術創新上的大膽和前沿。比如,在 2009 年左右, Netflix 就開始啟動上公有雲戰略(雖然背後也是吃了自建資料中心的苦頭),應用逐漸向 AWS 遷移,這個過程一共持續了将近 5 年,到 2015 年的時候遷移完畢。而現在回想,2009 年左右的 AWS 其實還不太成熟,别說當時,即使現在也沒有幾個大廠敢提全部遷移公有雲的戰略。
又比如,Netflix 早在 2013 年就提出了 Cloud Native 理念,也就是現在常說的雲原生,而且它的整個平台 (AWS IaaS + PaaS) 都是雲原生的。近年容器技術大火,大家都在談不可變基礎設施的理念,本質就是鏡像部署。Netflix 在 2012 年前就已經實作鏡像部署,釋出的機關是 AMI(Amazon Machine Image) 鏡像。
另一方面,開放開源也是 Netflix 的一種競争戰略。在進行大規模生産級微服務架構實踐的同時, Netflix 也開源了整個微服務技術棧,比如現在大家耳熟能詳的 Zuul 網關、Eureka 服務發現注冊中心、Hystrix 熔斷限流、Archaius 配置等元件。對 Netflix 來說,開源有望能将自己的解決方案建立為行業标準和最佳實踐。其次,開源亦可以幫助建立 Netflix 技術品牌,有利于雇傭、留住和吸引頂級工程師。第三,Netflix 可以從共享生态中獲得回報輸入并受益。
随着其服務體系的不斷擴張,也許終有一天各大老牌流媒體廠商反過來要從 Netflix 的基礎設施與自上而下的業務戰略中取經。甚至,Netflix 的方案可能最終會成為行業标準。
參考連結:
https://www.theverge.com/22787426/netflix-cdn-open-connect