跳到主要內容

​雲中奈飛(一):Netflix的上雲之旅_網頁設計公司


※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面



網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。



作者按: 


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



 


感謝您的閱讀,歡迎關注我的微信公眾號:


本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!



以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。




Orignal From: ​雲中奈飛(一):Netflix的上雲之旅_網頁設計公司

留言

這個網誌中的熱門文章

架構設計 | 異步處理流程,多種實現模式詳解

本文源碼:GitHub·點這裏 || GitEE·點這裏 一、異步處理 1、異步概念 異步處理不用阻塞當前線程來等待處理完成,而是允許後續操作,直至其它線程將處理完成,並回調通知此線程。 必須強調一個基礎邏輯,異步是一種設計理念,異步操作不等於多線程,MQ中間件,或者消息廣播,這些是可以實現異步處理的方式。 同步處理和異步處理相對,需要實時處理並響應,一旦超過時間會結束會話,在該過程中調用方一直在等待響應方處理完成並返回。同步類似電話溝通,需要實時對話,異步則類似短信交流,發送消息之後無需保持等待狀態。 2、異步處理優點 雖然異步處理不能實時響應,但是處理複雜業務場景,多數情況都會使用異步處理。 異步可以解耦業務間的流程關聯,降低耦合度; 降低接口響應時間,例如用戶註冊,異步生成相關信息表; 異步可以提高系統性能,提升吞吐量; 流量削峰即把請求先承接下來,然後在異步處理; 異步用在不同服務間,可以隔離服務,避免雪崩; 異步處理的實現方式有很多種,常見多線程,消息中間件,發布訂閱的廣播模式,其根據邏輯在於先把請求承接下來,放入容器中,在從容器中把請求取出,統一調度處理。 注意 :一定要監控任務是否產生積壓過度情況,任務如果積壓到雪崩之勢的地步,你會感覺每一片雪花都想勇闖天涯。 3、異步處理模式 異步流程處理的實現有好多方式,但是實際開發中常用的就那麼幾種,例如: 基於接口異步響應,常用在第三方對接流程; 基於消息生產和消費模式,解耦複雜流程; 基於發布和訂閱的廣播模式,常見系統通知 異步適用的業務場景,對數據強一致性的要求不高,異步處理的數據更多時候追求的是最終一致性。 二、接口響應異步 1、流程描述 基於接口異步響應的方式,有一個本地業務服務,第三方接口服務,流程如下: 本地服務發起請求,調用第三方服務接口; 請求包含業務參數,和成功或失敗的回調地址; 第三方服務實時響應流水號,作為該調用的標識; 之後第三方服務處理請求,得到最終處理結果; 如果處理成功,回調本地服務的成功通知接口; 如果處理失敗,回調本地服務的失敗通知接口; 整個流程基於部分異步和部分實時的模式,完整處理; 注意 :如...

.NET Core前後端分離快速開發框架(Core.3.0+AntdVue)

.NET Core前後端分離快速開發框架(Core.3.0+AntdVue) 目錄 引言 時間真快,轉眼今年又要過去了。回想今年,依次開源發布了 Colder.Fx.Net.AdminLTE(254Star) 、 Colder.Fx.Core.AdminLTE(335Star) 、 DotNettySocket(82Star) 、 IdHelper(47Star) ,這些框架及組件都是本着以實際出發,實事求是的態度,力求提高開發效率(我自己都是第一個使用者),目前來看反響不錯。但是隨着前端和後端技術的不斷變革,尤其是前端,目前大環境已經是前後端完全分離為主的開發模式,在這樣的大環境和必然趨勢之下,傳統的MVC就顯得有些落伍了。在這樣的背景下,一款前後端分離的.NET開發框架就顯得尤為必要,由此便定了框架的升級目標: 前後端分離 。 首先後端技術的選擇,從目前的數據來看,.NET Core的發展遠遠快於.NET Framework,最簡單的分析就是Colder.Fx.Core.AdminLTE發布比Colder.Fx.Net.AdminLTE晚,但是星星卻後來居上而且比前者多30%,並且這個差距在不斷擴大,由點及面的分析可以看出我們廣大.NET開發人員學習的熱情和积極向上的態度,並不是某些人所認為的那麼不堪( 走自己的路,讓別人說去吧 )。大環境上微軟积極擁抱開源,大力發展.NET Core, 可以說前途一片光明。因此後端決定採用 .NET Core3.0 ,不再浪費精力去支持.NET Framework。 然後是前端技術選擇,首選是三大js框架選擇,也是從實際出發,Vue相對其它而言更加容易上手,並且功能也毫不遜色,深得各種大小公司喜歡,如果偏要說缺點的話,那就是對TS支持不行,但是即將發布Vue3.0肯定會改變這一缺陷。選擇了Vue之後,然後就是UI框架的選擇了,這裏的選擇更多了,我選擇了Ant Design Vue,理由便是簡潔方便,十分符合我的設計理念。 技術選型完畢之後便...

台北市住宅、社區建創儲能設備 最高可獲600萬元補助

為了推廣分散式發電,台北市環保局預計補助1億元供住宅社區設置創能、儲能設備,計有3種方案可供選擇。環保局說明,每案補助額度不超過建制總經費49%,社區每案最高可獲200萬至600萬元補助,住宅每案補助上限100萬元,5月1日起開放申請。 環保局說明,台北市溫室氣體排放量7成以上來自住商部門,其中以使用電力造成間接溫室氣體排放為大宗,台北市平均年用電量約159.86億度,1度電約等同排放0.5公斤二氧化碳,若想達成2050年淨零排放目標,僅靠節能減碳無法達成,必須發展綠色創能、儲能,並且參考歐洲、日本的做法,採分散式發電方式,推廣到社區、住家、商辦,達到供電自給自足目標。 因此,環保局推出「台北市住宅社區創能儲能及節能補助計畫」,補助對象為台北市轄內房屋所有權人及社區管理委員會,補助方案共計3種,每一申請人或每一場址僅能獲1次補助,每案補助額度不超過建置總經費49%為限,5月1日到7月31日開放申請,但補助經費用完即停止申請。 環保局說明,方案A補助對象以社區為主,公共區域申請創能儲能及節能項目,每案補助上限新台幣600萬元;方案B分為住宅或社區公共區域申請創能搭配儲能項目(創能或儲能方案不得單獨申請),社區每案補助上限新台幣400萬元,住宅每案補助上限100萬元。方案C補助對象也是社區,公共區域申請節能項目,每案補助上限新台幣200萬元。 網頁設計 最專業,超強功能平台可客製,窩窩以「數位行銷」「品牌經營」「網站與應用程式」「印刷品設計」等四大主軸,為每一位客戶客製建立行銷脈絡及洞燭市場先機,請問 台中電動車 哪裡在賣比較便宜可以到台中景泰電動車門市去看看總店:臺中市潭子區潭秀里雅潭路一段102-1號。 電動車補助 推薦評價好的 iphone維修 中心擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢住家的頂樓裝 太陽光電 聽說可發揮隔熱功效一線推薦東陽能源擁有核心技術、產品研發、系統規劃設置、專業團隊的太陽能發電廠商。 網頁設計 一頭霧水該從何著手呢? 回頭車 貨運收費標準宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念 台中搬家公司 教你幾個打包小技巧,輕鬆整理裝箱!還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多...