聊聊Netflix那些大膽的技術創新

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Netflix 這家公司不知道你有沒有聽說過,《紙牌屋》這樣的風靡全球的原創劇就是他們出品的。但我瞭解這家公司,還是從一個介紹他們公司文化的 PPT 開始的,那個 PPT 的第一句就寫着,“我們只招成年人,並願意爲大家支付行業的最高薪資”,如果你想看這個 PPT,可以在視頻號給我私信。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因爲這週六我要和 Netflix 的資深架構師徐振中老師直播連麥,所以又開始看這家公司的故事了。不看不知道,一看嚇一跳,原來這公司這麼厲害。這周真的強烈推薦大家一定要看下這場直播,我們可以一起了解世界頂級的技術組織在技術、架構、組織和文化方面的創新。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下面是極客時間老師楊波總結的 Netflix 比較牛逼的點,你可以先看看。直播的話,點擊下方紅色按鈕就可以預約了。我請這位老師廢了老大功夫,估計一年就這一次了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"1、微服務很多公司(eBay、Amazon、BAT)都有,甚至比 Netflix 做得更早,但 Netflix 大概是大規模生產級微服務做得最傑出的。100s 範圍的微服務,1000s 範圍的每日生產變更,10,000s 範圍的實例,1,000,000s 範圍的活躍客戶數,1,000,000,000s 範圍的度量。但是隻有 10s 範圍的運維工程師,沒有自己的數據中心 NOC,應該算微服務 DevOps 的最高境界了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2、Netflix 微服務技術棧的核心組件基本上都是開源的。Pivotal 在 2~3 年前把 Netflix 開源的這攤東西封裝一下改頭換面,再拼湊一些其它東西(配置中心,調用鏈監控等)就變成了 Spring Cloud。"},{"type":"text","marks":[{"type":"strong"}],"text":"現在大家耳熟能詳的 Zuul 網關"},{"type":"text","text":",Eureka 服務發現註冊中心,Hystrix 熔斷限流,Archaius 配置等組件,Netflix 在 2012 年左右就都開源出來了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"3、開放開源是 Netflix 的一種競爭戰略。"},{"type":"text","marks":[{"type":"strong"}],"text":"Netflix 爲啥熱衷於要搞開源?"},{"type":"text","text":"第一,他們想將自己的解決方案建立爲行業標準和最佳實踐。第二,開源可以幫助建立 Netflix 技術品牌,這有利於他們僱傭、留住和吸引頂級工程師。第三,Netflix 可以從共享生態中獲得反饋輸入並受益。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"4、大致在 09 年左右, Netflix 就開始啓動上公有云戰略(當然背後也是吃了自建數據中心的苦頭),應用逐步向 AWS 遷移,這個過程一共持續了將近 5 年,到 15 年的時候,遷移完畢,全部應用上到 AWS。09 年左右的 AWS 還不太成熟,別說當時,即使現在也沒有幾個大公司不掂量一下敢提全部遷移公有云的戰略。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"5、Netflix 在 AWS IaaS 的基礎上封裝打造了自己的 PaaS 雲平臺服務 (大部分組件開源),包括平臺運行時服務 (Eureka、Zuul、Edda、Atlas),平臺庫和框架 (Karyon\/Ribbon、Hystrix、RxJava、Governator、Servo、Archaius、Astyanax),平臺大數據和緩存服務 (Cassandra\/ES\/Hadoop Platform as a Service、EVCache、S3)。平臺工具和服務 (Asgard\/Aminator、SimianArmy\/ChaosMonkey、ICE),這些都某種意義上代表了硅谷的技術風向標。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"6、業內最近開始提出雲原生架構的理念,Pivotal 是這個理念的主要推動者(背後主要是要推它的 Cloud Foundry 產品)。其實 Netflix 在 2013 年就提出了 Cloud Native 理念,而且它的整個平臺 (AWS IaaS + PaaS) 就是雲原生的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"7、Netflix 原來用 Oracle 等傳統 SQL 數據庫,但是受到擴展性挑戰。公司架構管理層大膽顛覆性提出使用"},{"type":"text","marks":[{"type":"strong"}],"text":" Cassandra NoSQL 作爲主要的持久化化存儲機制"},{"type":"text","text":",Netflix 在 2012 年就做到大部分數據存放 Cassandra 和 S3 等非關係數據庫上。這個架構決策也是非常大膽有魄力,一般沒有幾個公司敢這麼幹的。Cassandra 本質上是一種 KV 數據庫,更像 sorted map 存儲,不支持事務,不支持 join。在 CAP 理論中,Cassandra 是展現 AP 特性,無中心分散式高可用,天然支持跨數據中心數據同步,這大概是 Netflix 最看重的特性。Cassandra 是讀慢寫快的特性(一般數據庫是讀快寫慢),Netflix 大量使用 Memcached 做緩存補償。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"8、近年容器技術大火,大家都在談不可變基礎設施的理念,"},{"type":"text","marks":[{"type":"strong"}],"text":"本質就是鏡像部署"},{"type":"text","text":"。Netflix 在 2012 年前就已經實現鏡像部署,發佈的單位是 AMI(Amazon Machine Image) 鏡像,通過持續交付工具 Asgard(現在升級版叫 Spinnaker)直接將鏡像推到 AWS 雲中部署,支持藍綠(需要至少兩倍虛機),灰度和金絲雀等部署模式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"9、Netflix 的發佈管道叫 Paved Road,就是平臺團隊鋪好的路,由提交,構建,AMI 鏡像烘焙 (Image Baking) 和發佈四個階段組成。金絲雀發佈之後,系統會自動生成金絲雀健康報告和分數(背後需要統計上千個 metrics + 複雜智能算法),達到一定的分數,比如 80 分,才能繼續 roll out。"},{"type":"text","marks":[{"type":"strong"}],"text":"這個也稱發佈自動剎車。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"10、Netflix 大膽提出"},{"type":"text","marks":[{"type":"strong"}],"text":"反脆弱架構的理念"},{"type":"text","text":"。爲了讓你的系統更加健壯,不是將它們嚴格保護起來,而是主動隨機性地的增加一些破壞性測試,逼迫研發人員做好高可用。Netflix 從週一至週五,上午 9 點到下午 3 點,混亂猴子軍團會隨機殺生產實例,這個叫 Chaos Monkey,還有增加延遲的 Latency Monkey。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"11、"},{"type":"text","marks":[{"type":"strong"}],"text":"Netflix 的技術這麼牛逼,但它是沒有技術 CTO 職位的"},{"type":"text","text":",只有首席產品 CPO,工程團隊和產品團隊的 VP 都向 CPO 彙報。這樣做更多是爲了產品導向,便於技術和產品溝通合作,避免兩邊扯,避免業務驅動還是技術驅動的悖論,大家都是產品驅動。Netflix 把它稱爲 BusDevOps 組織架構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"12、"},{"type":"text","marks":[{"type":"strong"}],"text":"Netflix 也沒有獨立的運維團隊"},{"type":"text","text":",架構 + 中間件 + 運維 + 大數據閉環統稱爲雲平臺工程 (Cloud and Platform Engineering) 團隊,一個 VP 總負責,更好地對接 DevOps 文化。Netflix 的產品導向文化非常濃厚,連平臺工程團隊開源出來的產品都是整整齊齊的,PaaS 雲平臺是整個雲平臺工程團隊最大的產品輸出。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"13、無論公司興衰,始終支付市場最高工資。不用多解釋,這大概是 Netflix 最有霸氣底氣和牛逼的一點。據我在米國的同學講,去 Netflix 基本是硅谷頂薪,博士畢業去給開了超過 30 萬美金的年薪(這還是前幾年的行情)。一般進去難,去了留下來也不容易,不勝任的被客客氣氣勸退的有。能留下來的一般也不跳,因爲再跳也沒有更高的待遇了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"怎麼樣,震驚不?雖然我們並不在 Netflix 工作,也沒法建立 Netflix 那樣的文化,但他山之石,可以攻玉,Netflix 的很多技術、架構、組織和文化思路值得我們學習和借鑑。"},{"type":"text","marks":[{"type":"strong"}],"text":"8 月 21 日,週六,早上 9 點 30 分,我會連麥他們的資深架構師來聊聊具體的細節,記得預約"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/cb\/cbe15065f9e46ecdfdf83f401c869757.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章