近日,Netflix通過公司博客宣布他們歷時7年多的云之旅最終完成。Netflix云之旅最早開始于2008一次重大的數據庫損壞事件之后,那次事件影響了他們向訂閱者分發實體DVD的能力。
數據庫損壞事件促使Netflix改變了他們看待其架構的方式。他們由垂直可擴展的單點故障轉向了云上水平可擴展的分布式系統。
Yury Izrailevsky是云和平臺工程部的副總裁。他介紹了Netflix為什么選擇Amazon Web Services作為他們的云提供商:“我們選擇Amazon Web Services(AWS)作為我們的云提供商是因為它為我們提供了最大的規模和最廣泛的服務和特性集合。”
Netflix云之旅非常漫長。最初,他們的重點是所有部署在云上的、面向客戶的服務。這讓Netflix可以利用Amazon遍布世界各地的區域,為130個國家的客戶提供服務。一旦面向客戶的服務遷移到了云上,Netflix此后的重點是計費系統和員工數據管理。最后剩下的是供流媒體服務使用的服務,2016年1月,Netflix關閉了他們數據中心里的這部分服務。
從2007年12月到2015年12月,Netflix增長了超過1000倍。Izrailevsky將Netflix招徠和支撐新客戶的能力歸因于使用了云。“由我們自己的數據中心支撐這種快速增長會非常困難;我們根本無法這么快上架服務器。云的彈性讓我們能夠在幾分鐘內增加成千上萬的虛擬服務器以及數以PB計的存儲,讓這樣一種擴展成為可能。”
云不僅為Netflix提供了可擴展性,還為提高了他們的可用性數值。最初,Netflix經歷了一些“艱難的時刻”,但他們看到了此后的改善,Netflix距離他們給自己設定的正常運行時間99.99%的目標更近了。通過從傳統上不可靠的組件中構建出高可靠性的服務,Netflix提升了他們的可用性。他們通過使用冗余云組件達成了這一目標。
為了測試和驗證他們的冗余策略,Netflix使用Simian Army實現了常規生產測試。其中部分策略包括使用Chaos Monkey,后者會定期施加可能導致組件失敗的條件。它確保及早并經常地暴露任何失敗點,那樣,工程師團隊就可以通過受控的練習來解決問題,而不是在計劃外停機事件中發現它們。
雖然向云遷移花費了Netflix七年多的時間,但他們的遷移有條不紊,沒有出現策略的變化。Netflix覺得,為了真正受益于云,他們需要改變系統,利用基于云的組件,而不是將數據中心的缺點帶到云上。Izrailevsky進一步解釋說:“我們選擇云原生方法,重建了我們幾乎所有的技術,并從根本上改變了我們運營公司的方式。從架構上講,我們從一個單體應用遷移到了數以百計的微服務,并使用NoSQL數據庫反規范化了我們的數據模型。”
查看英文原文:Netflix Cloud Migration Complete