Netflix的三大云上生存經驗
盡管Netflix是全球***的云用戶之一,但這家大型在線影片租賃服務商還沒有把所有的東西都放在云上。
Netflix不僅是一家大型公司,同時也是一家大型的云用戶。該公司在全球40多個國家中擁有3800萬名會員,每月傳送的視頻內容長達數十億個小時。Netflix所有面向客戶的服務,例如根據瀏覽記錄向用戶推薦個性化內容的龐大數據庫,幾乎都在亞馬遜Web服務(以下簡稱為亞馬遜AWS)的公有云上運行。
Netflix云解決方案總監Ariel Tseitlin
該公司擁有一個名為“開放連接”( Open Connect)的內容交付平臺。這一平臺用于管理與Netflix合作的ISP(互聯網服務提供商),以更好地將電影視頻流傳輸給用戶。作為全球***的云用戶之一,Netflix從其自身的業務運營中總結了許多經驗和教訓。在近期于美國馬薩諸塞州召開的技術***云峰會中,Netflix 的云解決方案總監Ariel Tseitlin總結了關于企業如何使用云的三大經驗。
經驗1:創建微服務
Netflix的一個目標是盡可能地為每個應用創建一個極短的摘要,以***程度地降低云服務宕機和服務失敗所造成的影響。目前Tseitlin主要負責組建Netflix自己的云并確保這些云的可靠性。Tseitlin稱,如果這一舉措取得成功,那么將可極大地降低云服務中斷的“殺傷半徑”。
比方說,如果Netflix的個性化服務發生了故障,那么公司將默認提供一個涵蓋范圍更廣的推薦電影列表,為用戶推薦當下最為流行的電影。但是對于用戶來說,這些推薦列表未必是個性化的。這將***限度地降低滾雪球效應,防止一個服務影響到其他服務。
經驗2:設置冗余
將應用和服務的功能部署至云上是一回事,對應用和服務進行擴展,并確保它們24小時運行則是另外一回事。這也是Netflix在全球水平地擴展其服務的原因。每一個服務都被部署到至少三個“可用區域”(簡稱為AZ)。在亞馬遜AWS上,這些可用區域都是相互孤立的區域。為了防止發生故障,亞馬遜AWS在服務水平協議中建議每個服務都要部署到至少兩個可用區域內。Netflix不僅將他們的服務部署在三個可用區域內,而且每個服務還都被獨立地進行擴展。一旦某個可用區域出現故障,負載均衡器可以將流量遷移至工作正常的可用區域內。
除了擴展至多個可用區域外,整個Netflix服務還在亞馬遜云中的兩個地區中進行了備份,其中一個是在“美國東部”區域,另一個是在“歐盟西部”區域。為了防止出現問題,兩個備份為異步進行。Netflix的想法是,如果亞馬遜云的某個區域服務整體出現了問題,那么其他地區的亞馬遜云服務仍然可以確保Netflix的服務正常運行。
經驗3:保持彈性
即使監控和警報覆蓋了Netflix的整體運營,仍然有可能會出現故障。這也是它為什么要創建一個監控服務和糾錯平臺的原因。Netflix在內部開發了一套名為Simian Army的開源工具,專門用于測試企業服務的容錯能力。其中,Chaos Monkey可以隨機殺死多個服務以在應用層進行故障測試;Chaos Gorilla可以關閉整個可用區域,以對高可用性進行測試;Chaos Kong則是一項正在開發中的服務,Netflix希望通過其測試當亞馬遜AWS整個地區服務發生故障時企業服務的運行情況。Tseitlin開玩笑稱,Netflix非常關注測試和監控工作,以致于它更像是一家監控公司,提供電影反而成為了副業。
另一方面,保持彈性也影響了企業對員工責任的分配。Netflix依賴開發人員創建的Simian Army和云服務,在創建了相關應用后,開發人員還必須負責后續的運維工作。盡管這聽起來有點像“開發運營”模式,即由開發人員準備他們自己的基礎設施資源,但是Tseilin將這稱為“分布式運營”模式。開發人員需要對自己創建的代碼和應用的整個生命周期負責。他們不僅負責編寫和運行相關程序,還負責這些程序的更新工作。
盡管Netflix已經幾乎將所有面向客戶的服務遷移至了公有云上,但是他們仍然有許多工作要做。根據路線圖,Netflix將要把該公司所有的本地后端服務遷移至云端。Tseitlin稱,目前Netflix已經將電子郵件業務由Exchange遷移至了谷歌Apps上,將開銷管理由Concur遷移至了Workday上。此外,傳統的內部文件共享也轉到了Box上。
為了遵守支付卡行業(PCI)標準,目前Netflix的計費與支付業務仍在由其控制的數據中心上運行。如果一切順利,這種局面也可能會在短期內發生改變。Netflix希望將所有的業務都遷移至云端。Tseitlin說:“我們的目標是不再運行數據中心”。