作者按:
Netflix(譯為奈飛/網飛)公司自1997年創立以來,已發展成為美國最大的互聯網流媒體服務商,它從2008到2015年間長達七年的將其所有IT系統從自有資料中心遷移到AWS之上的旅程,在當時可謂前無古人的創舉,對公有云的發展、傳統企業上云及基于云的業務轉型等都有很大的推動和促進作用,雖然已過去多年,有些東西已略微顯得過時,但奈飛上云的理念、步驟、做法等,對當今企業上云及用云仍有很大的參考價值,
因此,在接下來的幾周內,筆者打算花上些許時間,對奈飛的上云之旅,及其云上運行,基于網上公開資料,從上云歷程、云上架構、支撐團隊、云上安全等維度做下梳理和總結,形成系列文章,它山之石,可以攻玉,本文為這系列文章的第一篇,介紹奈飛的總體上云歷程,
本文目錄
零、公司簡介....................................... 1
一、發端.............................................. 4
二、驗證.............................................. 6
三、進行.............................................. 8
四、完成.............................................. 11
五、筆者感受
零、公司簡介
Netflix(https://www.netflix.com/)公司總部設在美國加利福尼亞州,是全世界最大的視頻流媒體平臺,在除中國大陸地區以外的所有國家和地區均提供視頻點播服務,相當于國內的愛奇藝、優酷和騰訊視頻等視頻網站,
1997年,當Reed Hastings和Marc Randolph創建 Netflix時,這家公司唯一業務是DVD郵購業務,2002年上市,股票發行價為15美元;2007年開始發展流媒體業務;2013年,發布其首部原創電視劇《紙牌屋》;2016年宣布全球化,全世界200多個國家和地區可訂閱Netflix觀看電影電視劇, 2017年,Netflix用戶數量超過美國有線電視用戶總數,如今,Netflix的股價是419美元,已成為世界上大型的電視劇和電影制片公司之一、美國最大的互聯網流媒體服務商,在世界范圍內擁有很強的影響力,高峰時刻占據了互聯網流媒體流量的33%,
除了商業上非常成功外,Netflix在技術上也非常成功,它雖然是家娛樂公司,但實際上是一家技術公司,從2008年開始,直到2015年底,它花了整整七年時間,把公司整套IT系統搬到了AWS上,這可謂前無來者,除此之外,Netflix在分布式系統開源上具有巨大的影響力,其開源專案叫做Netflix OSS(Open Source Software),涵蓋范圍基本包括了業界絕大部分分布式系統領域,包括但不限于:
· 公共運行時服務及庫,比如Eureka, Ribbon, Hystrix
· 大資料,比如Genie
· 構建和發布工具,比如Asgard/Spinnaker
· 資料持久化,比如EVCache
· 可觀察性、可靠性和性能,比如Simian Army
一、發端
Netflix的上云之旅始于2008年8月,從公開資料來看,當時主要有兩個驅動力促使其上云:
(1)發生了系統宕機,
當時,Netflix的IT系統運行在高端昂貴的IBM服務器、Oracle資料庫和SAN存盤搭建的平臺之上,某次,因為SAN存盤硬體故障導致的資料庫宕機,使得Netflix的DVD配送服務不得不停止了3天,這個故障使得公司管理層開始意識到,由IT團隊利用昂貴的平臺來保證系統可用性的做法存在問題,更應該從應用層面去保障系統可用性,因此,需考慮IT系統從傳統垂直擴展的帶有單點故障的架構,轉向高可用、水平擴展的分布式架構,與此同時,他們開始思考是否可以利用剛剛出現的低成本云基礎設施來替代昂貴傳統IT基礎設施來支撐需具備高可用性的應用,
(2)新業務帶來巨大資料中心擴容壓力,
Netflix的傳統DVD寄送服務的服務模式下,客戶瀏覽Netflix網站選擇DVD,然后公司開始寄送,因為受到DVD來回寄送速度的限制,通常是以周為周期給客戶寄送DVD,因此,這種傳統業務模式對IT系統的業務壓力較輕,
傳統DVD寄送業務模式
盡管DVD業務增長迅速,但2007年Netflix仍然決定推出第一款流媒體產品“Watch Now”來革新其業務,這種業務也是它后來蓬勃發展的關鍵因素之一,這種新服務模式下,用戶與Netflix網站之間的互動頻率是傳統DVD寄送業務下互動頻率的100倍甚至不止,
流媒體服務模式
新模式下,用戶每周看的視頻數量是之前的十倍,而每個視頻對資料中心中的IT系統產生的流量則是百倍,因此每個用戶對IT系統產生的流量是之前的千倍,也就是說,只要0.1%的用戶從傳統模式轉向新模式,那IT系統的容量就必須翻倍,其實這種規律也很常見,即使用戶并沒有顯著增長,只要因為業務模式的變化,對IT系統的壓力也可能成倍增加,
這就要求Netflix找到一種快速擴容資料中心的方法,因為根據當時的業務預測,其用戶很快就會轉向在線流媒體服務模式,時間來到2009年,隨著新業務的發展,Netflix面臨兩個選擇:自建資料中心,或利用其業務競爭對手亞馬遜于2006年才發布的AWS云,前者需要大量前期資金投入,并且未來的容量需求無法預測且是變化不定的,而后者則是在視頻流領域的最大競爭對手Amazon的云上開展業務,Netflix決定選擇后者,他們認為,相比在不實際產生業務價值的資料中心上做前期巨大投入,將資金投入在視頻內容和開發人員身上會更有價值,
二、驗證
于是這一年(2009年),Netflix開始研究利用AWS云來開展業務的各種風險,包括業務競爭風險、規模性風險、商業風險和公關風險等,就業務競爭風險,Netflix與AWS溝融了AWS是如何與Amazon Premier做業務分離的,然后開展實驗去驗證AWS上的資源快速擴容能力,Netflix還與AWS簽訂了首批企業許可協議,這種協議下Netflix不需要通過授權信用卡方式來使用AWS資源,而信用卡授權是當時大多數人在AWS上消費時使用的主要方式,
隨著兩家合作訊息的傳開,2010年4月,紐約時報還發表了一篇關于Netflix和AWS業務的文章,說兩者將進行業務合作,請注意其中的“peculiar(特有)“一詞,表示那時候企業上云是新聞,而上到競爭對手的云上更是新聞,
當時Netflix還咨詢了一些業界專家,專家們認為這種做法非常瘋狂,因為當時很少有企業這么做,而且企業業務上云在當時還是一個非常不成熟的策略,但Netflix決定堅持下去,成為首批上云企業客戶之一,
接下來,Netflix實驗性地將一些沒有真正面向客戶的應用遷移到AWS上,首先從電影編碼開始,當時其只有資料中心沒有足夠的容量來容納編碼服務器,有一次Netflix申請3000臺服務器,結果AWS一個小時內就交付了,這就驗證AWS資源交付的彈性和及時性,而且隨著這項作業的完成,不用的機器即被釋放,這證明了云計算的“按需使用和付費”特征,
接下來驗證視頻服務QoS日志上云,隨著進入資料中心資料庫的流量越來越多,這些流量正在溢位,而且自己的機房缺乏足夠的存盤空間來保存想要的資訊,于是,Netflix利用S3來存盤資料,利用EMR來處理資料,Netflix是Hadoop早期用戶之一,曾與AWS合作將Hive作為基于EMR的處理選項,
到2010年,可行性驗證基本完成,Netflix認為上云看起來是可行的,于是2011年,Netflix作出決定,不再擴容自有IDC,
三、進行
Netflix開始真正地要在AWS云上起飛了,從最簡單的API服務開始,然后是最簡單的Web網頁,然后是更多的API和網頁,
到2010年底,Netflix成功地將網站前端都遷移到了AWS上,但后端依然在自有資料中心內,
用戶訪問流量還是進入其自有資料中心,但是有選擇地將部分流量利用HTTP Redirect將請求轉向AWS Cloud,這其實也就是我們現在常常提到的金絲雀模式,通過匯入部分用戶到新環境上來驗證和逐步地完成系統遷移,
接下來是資料遷移,2010年的主要作業之一,是將主資料系統放在資料中心,將副本放在云中,并將資料從本地持續地同步到云中,
2011年,Netflix決定將所有資料放到云上,其中一個問題是如何做資料備份,Netflix沒有采用當時常見的利用本地資料中心中的磁帶來備份云中資料的做法,而是充分利用了S3的安全性和持久性,用不同的賬戶在不同的AWS區域中創建S3存盤桶,然后將生產資料匯入生產區域S3存盤桶,再經過壓縮和加密并傳送到容災區域的桶中,利用不同的賬戶,主要是從安全角度考慮,后來,AWS發布了Glacier后,Netflix利用它來做長期歸檔的資料存盤,
到2015年,除了計費和賬單系統外,其余所有系統都已經遷移到AWS上了,到2016年1月4日,Netflix完成了最后這兩個系統的遷移,詳細資訊請參加其公司博客https://netflixtechblog.com/netflix-billing-migration-to-aws-451fba085a4,
四、完成
2016年2月,Netflix宣布其上云遷移作業全部完成,這一年,Netflix的用戶數是2008年開始上云遷移時候的8倍,而用戶的月度觀看視頻數則有幾千倍的增長,用戶遍布全球超過130個國家,Netflix也成為了一家國際化視頻服務提供商,
到2017年,除了CDN由其自建外,Netflix使用AWS來滿足其幾乎所有計算和存盤需求,包括資料庫、分析、建議引擎、視頻轉碼等數百種功能,而且,Netflix系統的可用性在持續增加,正在不斷接近99.99%的既定目標,
-
Netflix的視頻服務在高峰時段占據了高達37%的Internet流量,相比之下,YouTube 僅占到15.6%,網頁瀏覽約 6%, Facebook約2.7%, Amazon Instant Video 約2.0%,
-
在AWS上共利用超過10萬個 EC2 Instances 的80萬CPU Cores,且在此基礎上有約 20% 的波動,
-
在每個服務區域上的 AWS Elastic Load Balancing 的流量超過 50Gbps
-
在 S3 上存盤和管理超過15億個物件的 60 PB 的資料,其中每天要丟棄超過 400TB 的過期資料以及新增 600TB 的資料,
2016年Netflix在AWS上的系統架構:
盡管降低成本支出并不是Netflix上云的主要出發點之一,但是實際上,現在每個視頻的播放成本是當初利用自有資料中心的幾分之一,這是一種非常可觀的額外收益,這主要歸功于云的彈性,使得Netflix可以持續地優化實體型別,近乎實時地增加或減少所用的資源,而不需要維持大規模的備用容量,以及公有云的規模不斷擴大帶來的單位成本下降,
那為什么需要7年時間才能完成上云遷移呢?這是因為全業務上云是一項艱巨的作業,需要做好多的艱難決策,可以想到的是,最簡單的方式是將所有系統緣分不斷地搬到云上,但是隨著系統一起搬過去的還有你在傳統資料中心中遇到的所有問題和限制,因此,Netflix選擇了一條另外的道路,重構所有系統,徹底改變公司IT運營方式,將單體應用改變為微服務架構應用、重構資料模型、使用NoSQL資料庫,將過去那種預算嚴格受控制、版本發布嚴格受管控、花幾周時間來做物理容量擴容的傳統方式,改變為持續集成和發布、技術團隊獨立做決策、基于松耦合DevOps環境的新方式,這種方式使得Netflix花了七年時間才完成上云之旅,但是正是這種轉變,也使得它成為了一家國際化的網路視頻服務提供商,
五、筆者感受
大膽決策,開先河,不說10年前,就是在現在,要不要上(公有)云、源代碼和核心資料能不能上云、云上安全怎么搞、以什么步驟上云、應用要不要做架構升級等等這些問題,依然是評估上云時會引發爭論的話題,而十年前的Netflix,從自身業務出發,做出了艱難決策,決定把資金用在核心業務上,將資料中心外包給公有云,這前無來者,開了業界先河,要為他們的眼光、勇氣和決心點贊!
先易后難,保安全,Netflix并非倉促上陣,而是總體上執行先易后難、先驗證再推廣的策略,從最簡單的API、網頁前端、離線視頻編碼系統等開始,做技術可行性驗證,驗證成功后,再推廣至其它系統,最后做最核心的賬單和支付系統遷移,在保障業務穩定和用戶體驗的前提下,花了七年時間才完成全部遷移作業,要為他們的務實精神點贊!
以終為始,高標準,Netflix并沒有簡單地將其IT系統從其自有資料中心搬到AWS上,而是以終為始,高標準完成遷移作業,“終”是系統的可用性要達到四個九,確保用戶體驗,要實作這個目標,需要在遷移上云前對應用做分布式改造,只有這樣,才能充分利用云的彈性和分布式能力,而且,Netflix主要利用的是AWS的IaaS,自研了全球分布的PaaS平臺,一方面是因為當時AWS所提供的是以IaaS為主,還考慮到了供應商系結以及未來多云等可能,這些做法都具有開創性和前瞻性,不僅這種做法對后來更多用戶如何上云極具參考價值,而且Netflix將其PaaS中很多組件都開源了,直接促進了行業發展,要為他們對自己的嚴格要求和對業界的貢獻點贊!
參考資料:
-
復盤Netflix發展史:如何用20年成為一家千億美元公司?,克魯斯2018年5月14日,https://www.gelonghui.com/p/179693
-
Completing the Netflix Cloud Migration,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration,2016.1
-
YouTube video,Globally Distributed Cloud Applications at Netflix,October 2012,Adrian Cockcro
-
Migrating to Cloud - Lessons from Netflix, Brought Up to Date,Adrian Cockcroft,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration
-
Companies Slowly Join Cloud-Computing,By Brad Stone and Ashlee Vance,https://www.nytimes.com/2010/04/19/technology/19cloud.html
感謝您的閱讀,歡迎關注我的微信公眾號:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10774.html
標籤:其他
下一篇:騰訊云云函式快速入門實踐
