Netflix_Customer-Reference_Logo@2x

Netflix 與 Amazon Kinesis Data Streams 案例研究

2017

Netflix 是全球領先的網路電視網,全球擁有超過 1 億名會員每天欣賞 1.25 億小時的電視節目和電影,包括原創影集、記錄片和劇情片。會員在大部分可連接網路的螢幕上,隨時隨地無限觀賞想看的內容。

開始 Python 教學
kr_quotemark

Amazon Kinesis Data Streams 每天處理數 TB 的日誌資料,但只需幾秒鐘,即可在我們的分析中顯示事件。我們可以即時發現和回應問題,確保高可用性和出色的客戶體驗。”

John Bennett
Netflix 資深軟體工程師

大規模的應用程式監控

Netflix 幾乎所有運算和儲存需求都使用 Amazon Web Services (AWS),包括資料庫、分析、推薦引擎、影片轉碼等,共有數百項功能在 AWS 上使用超過 100,000 個伺服器執行個體。

導致了極其複雜且動態的網路環境,在這個環境中,應用程式在 AWS 內部和整個網際網路不斷進行通訊。監控和優化網路對於 Netflix 在持續改善客戶體驗、提高效率並降低成本方面十分重要。尤其是,Netflix 需要一種解決方案,用於擷取、擴大和分析其網路每天以 Virtual Private Cloud (VPC) 流量日誌形式產生的數 TB 資料。讓 Netflix 能夠識別各種效能提升機會,例如,識別正跨區域通訊的應用程式並組合搭配這些應用程式。該公司還透過快速偵測和減少應用程式停機時間,藉此增加正常執行時間。

每個日誌記錄都包含有關兩個 IP 地址之間的通訊資訊。但是像 Netflix 這樣的動態環境,IP 地址可以每天甚至每幾分鐘在應用程式之間浮動,所以僅僅 IP 地址就沒有太大的意義。Netflix 資深軟體工程師 John Bennett 說:「我們採取這項計劃之前,擁有的資料來源是單向的。我們知道某個應用程式正與其他應用程式連接,但不知道雙方對話內容,也不知道如何優化這些通訊或網路上應用程式的放置。」

Netflix 著手建立新的資料來源,透過將 VPC 流量日誌與應用程式中繼資料結合,以便對應用程式和區域之間的通訊有更深入的了解。

使用 Amazon Kinesis Data Streams 集中流量日誌

從一開始,AWS 就讓 Netflix 能夠試驗各種方法來分析其網路資料。「在設計初期,嘗試不同處理資料方式的靈活性非常重要。」Bennett 說,「我們嘗試了多種設計,並使用許多 AWS 產品來達到目標。」

Netflix 最終部署的解決方案 (內部稱為 Dredge) 使用 Amazon Kinesis Data Streams 集中流量日誌。該應用程式從 Amazon Kinesis Data Streams 即時讀取資料,利用應用程式中繼資料來豐富 IP 地址,以提供網路環境的全貌。Bennett 說:「通常,我們會將資料放入資料庫,建立索引以實現更快速的查詢。Dredge 將流量日誌與應用程式中繼資料結合,因為它無須使用資料庫就可以進行串流和索引,去除了很多複雜性。」

豐富的資料位在稱為 Druid 的開放原始碼分析應用程式中。Netflix 使用 Druid 的 OLAP 查詢功能,將資料快速切割成區域、可用性區域和時間視窗,將資料視覺化,並取得有關網路行為和效能的資訊。

AWS 是 Dredge 的合理選擇,部分原因是資料已駐留在 AWS 雲端中。Bennett 說:「如果從 Kafka 這類外部系統發佈、串流和使用大量資訊就會很棘手,但我們只用了幾個 API 呼叫就將數 TB 的流量日誌集中到 Amazon Kinesis Data Streams。現在,我們可以專注於從資料獲得資訊,而不是只能做存取而已。」

因為 Netflix 網路用量的週期性和彈性本質的關係,Amazon Kinesis Data Streams 的可擴展性非常適合 Dredge 應用程式。Bennett 表示:「運用在我們的網路資料時,能夠擴展和縮減會更具成本效益,而使用 Amazon Kinesis Data Streams 的替代方案則不容易達成這一點。」 

架構圖

netflix_arch_diagram

透過即時網路監控改善客戶體驗

事實證明,Netflix 以 Amazon Kinesis Data Streams 為基礎的解決方案具有高度可擴展性,每天能夠處理數十億的流量。通常,大約有 1,000 個 Amazon Kinesis 碎片平行執行,以處理資料串流。Bennett 說:「Amazon Kinesis Data Streams 每天處理數 TB 的日誌資料,但只需幾秒,即可在我們的分析中顯示事件。我們可以即時發現和回應問題,確保高可用性和出色的客戶體驗。」

Netflix 現在能夠識別出優化其應用程式的新方法,無論是將應用程式從一個區域移動到另一個區域,還是針對特定流量類型變更到更合適的網路協定。Bennett 說:「建立在 Amazon Kinesis 上的解決方案讓我們能夠識別提高效率、降低成本並改善彈性的方法,以獲得最佳的客戶體驗。」

儘管串流資料解決方案對 IT 產業而言並不陌生,但這是網路領域的一項創新。Bennett 說:「Netflix 大量投資 AWS,部分原因是它將基礎網路抽象化,因此我們不必處理交換器和路由器。我們正以更高的堆疊層級進行監控、分析和優化,而且採用的是運作自己的資料中心時絕對不會考慮的方式。」


關於 Netflix

Netflix 是全球領先的網際網路電視網路,在超過 190 個國家/地區擁有超過 1 億名會員,每天欣賞 1.25 億小時的電視節目和電影。

AWS 的優勢

  • 每天處理和充實數 TB 的資料,代表數十億個事件,其分析查詢的回應時間不到 1 秒
  • 與競爭的解決方案相比,具有很高的成本效益
  • 自由實驗系統架構以獲得最有效的解決方案
  • 只需幾個簡單的 API 呼叫即可啟動資料擷取
  • 具備可平行處理近 1,000 個 Amazon Kinesis 碎片的高度彈性解決方案

使用的 AWS 服務

Amazon Kinesis Data Streams

Amazon Kinesis Data Streams (KDS) 是一種可大規模擴展且耐久的即時資料串流服務。

進一步了解 »

更多 Netflix 案例


開始使用

各行各業各種規模的組織每天都在使用 AWS 來變革其業務和履行其使命。聯絡我們的專家,立即開始您的專屬 AWS 雲端之旅。