歡迎光臨
每天分享高質量文章

HBO為何選擇Kubernetes助力《權力的遊戲》?

現在已經有越來越多的IT公司選擇Kubernetes作為他們的容器編排系統。就像文中所介紹的,社群的活躍度和使用者數量是很多人選擇它的重要原因之一。其次就是功能的完善和成功的案例。

《權力遊戲》是世界上最受歡迎的電視劇之一,觀眾既可以在HBO網路上觀看,也可以透過HBO Go流媒體服務觀看。對於播放一個像《權利的遊戲》這樣火爆的片子來說,會有很多不同的技術問題需要去解決。HBO的開發者採用了一個開源的容器編排平臺Kubernetes去處理它們。

在2017年12月7日的北美KubeCon論壇上,HBO的工程師解釋瞭如何和為什麼選擇Kubernetes來完成《權力的遊戲》第七季在2017年7月和8月的首映。

“我們從不使用容器到用Kubernetes去管理所有的服務,” HBO高階工程師Illya Chekrygin對KubeCon聽眾說。

Kubernetes是一個開源的容器編排系統,它起源於Google。從2015年7月,Cloud Native Compute Foundation(CNCF)主持了Kubernetes的開發工作,而且有很多的開發者和軟體廠商都對它都貢獻了程式碼。

Chekrygin解釋了HBO Go流媒體服務是完全不同的API服務,都用Node.js以及Go程式語言。HBO的流媒體平臺部署在亞馬遜網路服務(AWS)上並使用EC2虛擬機器,使用它的支援自動縮放功能。為了協助處理需求,HBO Go框架使用負載平衡器來分發流量。

HBO的流量樣式可以比作一道“牆”,Chekrygin說。

這道“牆”是指,其流量在黃金時段驟然提升,這時觀眾們大量湧入進行節目觀看。Chekrygin說,看著《權利的遊戲》一集接一集,一季換一季在HBO上播出,HBO的工程師對他們未來能否處理更多的需求充滿了懷疑(譯者註:意思是說,每一集的收視率都屢創新高,伺服器快扛不住了)。

“當新的一集釋出時,最大的挑戰是如何提前預測到流量的最高點,”Chekrygin說。

在HBO工程師們面臨的諸多挑戰當中,已部署資源利用率低下無疑是最令人頭痛的一項。Chekrygin解釋說,Node.js的程式碼往往只使用CPU的一個核心。他指出,AWS EC2實體,具有很高的網路流量處理能力,但它是基於雙核CPU的。因此,HBO僅使用了整個部署叢集CPU容量的50%。

在EC2上啟動新實體的速度無法滿足HBO的實際需求,因此Chekrygin提到工程師們必須採取容量過度配置的方式,從而應對預期之外的暫時性流量樣式。當然也需要啟動一些ELB(彈性的塊儲存)去傳送資料。

“雖然我們的CPU利用率在50%以下,但我們發現,資源仍然不夠用,”Chekrygin說。“所以為了服務可靠性(譯者註:就是在收視高峰的時候伺服器別掛了),只要在任何的時候,ELB和其他資源的利用率發現越過80%,就會出發報警”。

HBO還發現在《權力的遊戲》的觀看高峰期,用來提供給觀眾的IP地址也不夠了。

為什麼選擇Kubernetes呢?

“我從一開始就關註Kubernetes,”Chekrygin說,“但是我們仍然對Meses、Docker Swarm 和ECS(ESC彈性容器服務)做了調查。”

“HBO選擇Kubernetes的原因之一是它的技術可以提高資源的利用率和叢集本身的自愈能力。此外,Kubernetes被HBO認為比其他的容器編排系統更快更安全。

當HBO決定用Kubernetes部署應用時,仍然用AWS的雲服務,因為在2016年HBO沒有自己的雲伺服器部署Kubernetes,但是最近情況發生了變化。

AWS在11月29日剛剛宣佈,可以為Kubernetes(EKS)提供自己的彈性容器服務。Chekrygin說,HBO的工程師做了大量的工作,以確保Kubernetes能夠滿足的《權力遊戲》的生產部署需求。

HBO電視臺的高階工程師Zihao Yu,在KubeCon上說,HBO最終使用自定義Teraform模板來幫助管理和部署Kubernetes叢集。Teraform是HashiCorp開發的一個開源專案,可以幫助企業管理基礎設施,部署程式碼。

Yu說在網路層面,HBO選擇開源軟體Flannel軟體定義網路(SDN)封包技術(譯者註:就是網路Overlay,他確定不是host-gw?,Overlay一層速度有保證嗎?我記得好像對CPU也有損耗,在紅帽的OpenShift裡也用了OVS,好像有一個對硬體的最低要求吧,sorry我跑題了)並且建立一個自定義的安全組去處理服務交付。


經驗教訓

《權力的遊戲》第七季的首發由Kubernetes構建的平臺執行,其中涉及許多步驟,當然包括大量的測試。

“兩個或三個月內,我們為《權力的遊戲》首映每週跑大量的壓力測試,”Chekrygin說。”我們的第一次嘗試,非常可憐。”

壓力測試幫助HBO工程師找到哪裡還有問題。Chekrygin說,微調和分析幫助我們的平臺為《權力的遊戲》第七季首演做準備。Chekrygin說,沒有網上的資源,沒有Kubernetes的社群和討論組的幫助,HBO的 Kubernetes叢集部署很有可能不會進行的這麼順利。

“對我們來說,部署和測試過程中發現的許多問題不是由Kubernetes引起的。把它們部署到Kubernetes裡,只是讓問題更快更容易的暴露出來,”Chekrygin說。“當然我們關註其他的編排系統,但我們選擇Kubernetes最大的原因是他的活力和活躍的社群。”

原文連結:http://www.eweek.com/cloud/why-hbo-chose-kubernetes-to-help-stream-game-of-thrones

基於Kubernetes的容器雲平臺實踐培訓

本次培訓包含:Kubernetes核心概念;Kubernetes叢集的安裝配置、運維管理、架構規劃;Kubernetes元件、監控、網路;針對於Kubernetes API介面的二次開發;DevOps基本理念;Docker的企業級應用與運維等,點選識別下方二維碼加微信好友瞭解具體培訓內容

點選閱讀原文連結即可報名。
贊(0)

分享創造快樂