《權力遊戲》是世界上最受歡迎的電視劇之一,觀眾既可以在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%,就會出發報警”。
為什麼選擇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開發的一個開源專案,可以幫助企業管理基礎設施,部署程式碼。
《權力的遊戲》第七季的首發由Kubernetes構建的平臺執行,其中涉及許多步驟,當然包括大量的測試。
“兩個或三個月內,我們為《權力的遊戲》首映每週跑大量的壓力測試,”Chekrygin說。”我們的第一次嘗試,非常可憐。”
壓力測試幫助HBO工程師找到哪裡還有問題。Chekrygin說,微調和分析幫助我們的平臺為《權力的遊戲》第七季首演做準備。Chekrygin說,沒有網上的資源,沒有Kubernetes的社群和討論組的幫助,HBO的 Kubernetes叢集部署很有可能不會進行的這麼順利。
原文連結:http://www.eweek.com/cloud/why-hbo-chose-kubernetes-to-help-stream-game-of-thrones
本次培訓包含:Kubernetes核心概念;Kubernetes叢集的安裝配置、運維管理、架構規劃;Kubernetes元件、監控、網路;針對於Kubernetes API介面的二次開發;DevOps基本理念;Docker的企業級應用與運維等,點選識別下方二維碼加微信好友瞭解具體培訓內容。