技術頂牛的公司為啥沒有CTO?">技術頂牛的公司為啥沒有CTO?

分類:IT技術 時間:2017-09-28

作者|楊波

編輯|小智

Netflix 是美國在線影片租賃商,曾利用超過 100 億次的用戶觀看紀錄分析觀眾喜好,制作出熱播劇集《紙牌屋》。Netflix 的工程文化,被很多國內一線互聯網公司研究借鑒,但實際上,這家技術實力超群的公司,卻是沒有 CTO 的。

1 寫在前面

某天晚上和下屬一起吃晚飯,期間聊到 Netflix 技術那些大膽的創新,事後覺得有必要總結一下,給團隊分享,讓大家了解世界頂級的技術組織在技術、架構、組織和文化方面的創新。讓大家在埋頭幹活的時候,偶爾也可以擡頭看看天(大處著眼,小處著手)。於是就有了這篇文章。

2 大規模生產級微服務架構實踐

微服務很多公司 (eBay, Amazon, BAT) 都有,甚至比 Netflix 做得更早,但 Netflix 大概是大規模生產級微服務做得最傑出的。

100s 範圍的微服務,1000s 範圍的每日生產變更,10,000s 範圍的實例,1,000,000s 範圍的活躍客戶數,1,000,000,000s 範圍的度量。但是只有 10s 範圍的運維工程師,沒有自己的數據中心 NOC,應該算微服務 DevOps 的最高境界了。

Netflix 微服務可視化

3 開源整個微服務技術棧

Netflix 微服務技術棧的核心組件基本上都是開源的。Pivotal 在 2~3 年前把 Netflix 開源的這攤東西封裝一下改頭換面,再拼湊一些其它東西(配置中心,調用鏈監控等)就變成了 Spring Cloud。現在大家耳熟能詳的 Zuul 網關,Eureka 服務發現註冊中心,Hystrix 熔斷限流,Archaius 配置等組件,Netflix 在 2012 年左右就都開源出來了。

開放開源是 Netflix 的一種競爭戰略。

Netflix 為啥熱衷於要搞開源?

  1. 將自己的解決方案建立為行業標準和最佳實踐

  2. 建立 Netflix 技術品牌

  3. 雇傭、留住和吸引頂級工程師

  4. 從共享生態中獲得反饋輸入並受益

4 系統全部遷移 AWS 公有雲

大致在 09/10 年左右, Netflix 就開始啟動上公有雲戰略(當然背後也是吃了自建數據中心的苦頭),應用逐步向 AWS 遷移,這個過程一共持續了將近 5 年,到 15 年的時候,遷移完畢,全部應用上到 AWS。09/10 年左右的 AWS 還不太成熟,別說當時,即使現在也沒有幾個大公司不掂量一下敢提全部遷移公有雲的戰略。另外 AWS 能有今天,Netflix 也是功不可沒,幫 Amazon 躺了無數的坑。

5 在 AWS 基礎上打造 PaaS 平臺

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)

業內最近開始提出雲原生 (Cloud Native) 架構的理念,Pivotal 是這個理念的主要推動者(背後主要是要推它的 Cloud Foundry 產品)。其實 Netflix 在 2013 年就提出了 Cloud Native 理念,而且它的整個平臺 (AWS IAAS + PaaS) 就是雲原生的。

6 兩地三中心高可用

Netflix 的高可用架構也是做得大氣磅礴,同城部署 3 個對等的可用區 (AWS Availability Zone),1 個甚至 2 個掛不影響可用性。

異地 (Regions) 再做對等部署,一個 Region 裏頭的 AZ 全掛,另外一個 Region 接著可用。

7 采用 Cassandra NoSql 作為主數據庫

Netflix 原來用 Oracle 等傳統 Sql 數據庫,但是受到擴展性挑戰。公司架構管理層大膽顛覆性提出使用 Cassandra Nosql 作為主要的持久化存儲機制,Netflix 在 2012 年就做到大部分數據存放 Cassandra 和 S3 等非關系數據庫上。這個架構決策也是非常大膽有魄力,一般沒有幾個公司敢這麽幹的。Cassandra 本質上是一種 KV 數據庫,更像 sorted map 存儲,不支持事務,不支持 join。在 CAP 理論中,Cassandra 是展現 AP 特性,無中心分散式高可用,天然支持跨數據中心數據同步,這大概是 Netflix 最看重的特性。Cassandra 是讀慢寫快的特性(一般數據庫是讀快寫慢),Netflix 大量使用 Memcached 做緩存補償。

Cassandra 在同城多個 Zone 之間同步數據,在異地 (Inter-Region) 之間再同步,流量到 9Gbits/s,延遲 83ms,18TB 的數據備份 (2013 年的數據)。

8 鏡像部署和發布自動剎車

近年 docker 容器技術大火,大家都在談不可變基礎設施 (immutable infrastructure) 的理念,本質就是鏡像部署。Netflix 在 2012 年前就已經實現鏡像部署,發布的單位是 AMI(Amazon Machine Image) 鏡像,通過持續交付工具 Asgard(現在升級版叫 Spinnaker)直接將鏡像推到 AWS 雲中部署,支持藍綠(需要至少兩倍虛機),灰度和金絲雀等部署模式。

Netflix 的發布管道叫 Paved Road,就是平臺團隊鋪好的路,由提交,構建,AMI 鏡像烘焙 (Image Baking) 和發布四個階段組成。

金絲雀發布之後,系統會自動生成金絲雀健康報告和分數(背後需要統計上千個 metrics + 復雜智能算法),達到一定的分數 (比如 80 分),才能繼續 roll out。這個也稱發布自動剎車。

9 反脆弱架構

Netflix 大膽提出反脆弱架構的理念(架構師受到尼古拉斯·塔勒布《反脆弱》一書的啟發,並將其應用到架構領域):為了讓你的系統更加健壯,不是將它們嚴格保護起來,而是主動隨機性地增加一些破壞性測試,逼迫研發人員做好高可用。

Netflix 從周一至周五,上午 9 點到下午 3 點,混亂猴子軍團會隨機殺生產實例,這個叫 Chaos Monkey,還有增加延遲的 Latency Monkey。

還有 Chaos Gorilla 可以殺整個可用區 (Availability Zone),Chaos Kong 殺整個 Region。據說 Netflix 曾主動關閉一個可用區,客戶沒有任何影響。

國內一些互聯網公司也有演習和自攻一說,但基本都是提前打招呼的,規模一般也不大,Netflix 是隨機不打招呼玩真的。

10 幾乎沒有流程,沒有員工手冊

Netflix 是一家高度重視人才密度,重自由和責任文化,輕流程的公司。公司沒有正式的員工手冊,只有一條簡單的指導原則:

Act in Netflix’s best interest,以 Netflix 的最佳利益行事。

11 No CTO, No Ops

Netflix 的技術這麽牛逼,但它是沒有技術 CTO 職位的,只有首席產品 CPO,工程團隊和產品團隊的 VP 都向 CPO 匯報。這樣做更多是為了產品導向,便於技術和產品溝通合作,避免兩邊扯,避免業務驅動還是技術驅動的悖論,大家都是產品驅動。Netflix 把它稱為 BusDevOps 組織架構。

Netflix 也沒有獨立的運維團隊 (NoOps),架構 + 中間件 + 運維 + 大數據閉環統稱為雲平臺工程 (Cloud and Platform Engineering) 團隊,一個 VP 總負責,更好地對接 DevOps 文化。Netflix 的產品導向文化非常濃厚,連平臺工程團隊開源出來的產品都是整整齊齊的 (見 https://netflix.github.io/),PaaS 雲平臺是整個雲平臺工程團隊最大的產品輸出。

Netflix 的 CTO 其實是 Chief Talent Officer,負責人才招聘的,公司對人才的重視可見一斑。

12 無論公司興衰,始終支付市場最高工資

不用多解釋,這大概是 Netflix 最霸氣和牛逼的一點。據我在米國的同學講,去 Netflix 基本是矽谷頂薪,博士畢業去給開了超過 30 萬美金的年薪(這還是前幾年的行情)。一般進去難,去了留下來也不容易,不勝任的被客客氣氣勸退的有。能留下來的一般也不跳,因為再跳也沒有更高的待遇了。

顯然,沒有頂級的人才密度,就無法支撐其高大上的技術架構和鶴立雞群的文化。頂級的人才聚集在一起,容易碰撞迸發創新火花,搗騰出顛覆性的東西和理念。

13 寫在最後

我在這邊總結 Netflix 技術做的牛逼的事情,一方面是因為欽佩,但這不是重點,畢竟目前國內基礎環境和人才密度是支撐不起這種類型文化的公司;但是,他山之石,可以攻玉,Netflix 的很多技術、架構、組織和文化思路值得我們學習和借鑒。

我本人沒有在 Netflix 工作過,上面的信息主要通過互聯網共享資料 (特別是 slideshare) 學習解讀 (有些解讀可能還是偏頗的),所謂強者無秘密,Netflix 的強大也體現在它無私分享精神,它在公司內部是信息公開透明分享的,對外部也一樣,幾乎所有 Netflix 微服務技術棧 (也稱 NetflixOSS) 你可以從 github.com/netflix 免費獲得,其內部架構和技術相關資料基本上都可以通過 slideshare 或者 Netflix techblog 免費獲得。在公開透明一塊即使 Google、Amazon 和 Apple 這些互聯網巨頭都應該是自嘆不如的。Netflix 公司大概是地球上開出的一朵特別奇葩耀眼的花。

向 Netflix 致敬!

作者介紹

楊波 ,拍拍貸基礎框架研發總監。具有超過 10 年的互聯網分布式系統研發和架構經驗,曾先後就職於:eBay 中國研發中心(eBay CDC),任資深研發工程師,參與億貝開放 API 平臺研發,攜程旅遊網(Ctrip),任技術研發總監,主導攜程大規模 SOA 體系建設,唯品會(VIPShop),任資深雲平臺架構師,負責容器 PaaS 平臺的調研和架構。

2009-2010 年左右 AWS 還不太成熟時,Netflix 就將業務遷移上公有雲了,Netflix 高瞻遠矚的策略讓他們發展成為風格獨樹一幟的知名企業,時至今日,“Microservice”,“Serverless“ 仍是近期軟件開發領域最熱門的話題,而這次 QCon 上海站就設置了《智能運維:架構與技術》話題。

Amazon 中國研發中心首席架構師蔡超準備了《披薩的故事:Microservice & Severless》

Twitter 基礎架構工程師陳簫準備了《大規模分布式存儲系統的架構與實踐》等等。

點擊 閱讀原文 立即獲取智能運維的實踐與思考。

今日薦文

點擊下方圖片即可閱讀

為什麽 Netflix 的企業文化會備受整個矽谷的推崇?

[廣告]贊助鏈接: 輿情監測,互聯網輿情首選查輿情:http://www.chayuqing.com/ 四季很好,只要有你,文娛排行榜:http://www.yaopaiming.com/
  • 網絡尖刀

    公眾號:mcbang_com

    數據、技術、運營

  • 知安

    公眾號:knowsafe

    黑客、技術、安全

  • 查輿情

    公眾號:chayuqing_com

    輿情、文娛、品牌


Tags: Netflix 服務 開源 技術 範圍 頂牛

文章來源:


ads
ads

相關文章
ads

相關文章

ad