喜馬拉雅FM CTO:從停站20小時到如今的2億用戶,這是我們的技術故事

喜馬拉雅FM CTO:從停站20小時到如今的2億用戶,這是我們的技術故事

作者|陸棟棟

編輯|Echo

今天的喜馬拉雅FM是國內最大音頻分享平臺,深受用戶喜愛,截止目前用戶數已經達到2億。但你一定不知道喜馬拉雅曾經因為技術團隊經驗不足停站20小時,曾經有一款產品因為決策失誤,上線一週就被完全推翻。今天我們約訪了喜馬拉雅的CTO陸棟棟,一個能把重大過錯敞開來談的技術領導者。看他來分享創業路上的挫敗和成長。

1 既然一無所知,就從零開始創業

2007年畢業後我去了一家外企—東方海外,主要負責公司內部框架的開發,但是慢慢發現外企裡面的坑都是填滿的,個人發展空間非常有限。於是工作一年之後,我決定去做Java架構師,當時還去了阿里面試,但被阿里潑了一盆冷水,說我沒有互聯網經驗,不能勝任架構師這個職位,然而也正是這盆冷水堅定了我要去做互聯網的願望。

2010年我離開了外企,我認為要想在一個方面快速成長,最佳的方式就是加入創業公司,從零到一的做事,在創業公司裡成長也會更全面,能夠經歷一個公司從發展到壯大的全部過程,於是我下定決心加入一個創業公司,最終選擇的是“那裡世界”,也就是喜馬拉雅的前身。

2 對新鮮事物把握不準,那裡世界創業失敗

那裡世界主要做主播秀場和社群,我主要負責服務端架構。很不幸,那裡世界在2012年4月宣告失敗。但失敗了也並非一無所獲,我們回過頭總結了經驗和教訓。

  • 首先,在團隊方面,當時包括老闆在內的所有人都是剛接觸互聯網,對於這一塊新鮮事物的方向把握不夠準確。

  • 另外,做秀場這個產品,很多人喜歡做擦邊球,比如美女秀場等,我們堅持不做。

  • 再來,運營方面也出現了問題,之前跟上海一個企業合作,他們給我們導流,後續這個導流也斷掉了,所以多方面的原因導致那裡世界失敗。

失敗之後,我們決定去做更有意義的事情,於是開始做喜馬拉雅FM,之所以做音頻這個方向,是因為音樂當時做得非常火,但是我們認為除了音樂以外,還有很多東西是能聽的,得有人做一個電臺類的產品。當時恰好這個領域還沒有人切入,我們就決定做這個事情,喜馬拉雅FM一開始上線反映就很不錯,畢竟是移動互聯網剛起來的時候。但是發展也並不是一帆風順,喜馬拉雅也曾遭遇挫折和坎坷。

3 停站20小時,從零到一的慘痛教訓

人都會犯錯,但如果能夠換來成長就錯的值得。在喜馬拉雅發展過程中有兩次印象深刻的挫敗和過錯。

第一次是挫敗,發生在我們做服務治理,我們的專輯、聲音、用戶都服務化,當時我們已有大概兩百萬DAU用戶,卻因為服務化上線不順利停站了20個小時。因為我們做服務化,數據跟服務是串在一起的,所以做了一些合併、拆分,但當時也沒有很好的數據無縫遷移工具(後來開發了xmen,數據遷移平臺),導致當時只能停站服務,在上線過程當中也出現了很多問題,當時的狀態非常不好。

這20個小時大家不停修正數字,去做各種服務。因為服務化是一個從0到1的過程,需要探索試錯,服務化上線以後再沒遇到過同樣的問題,因為我們可以做到灰度發佈、灰度部署,再沒遇到這種尷尬的問題,這是0到1的過程中遇到的一次很大的挫敗。

4 脫離用戶的創新一文不值

另外一個是決策錯誤,也就是2016年上線的付費內容,最初我們設計了一個知識產權保護方案,把整個音頻做了強保護,用戶只能通過喜馬拉雅聽這個付費內容,只能下載到本地聽,不能夠在線聽。不但不能在線聽,在H5、微信、Web網站網頁上都不能聽,只能在手機上下載下來聽。就是為了這個創新,更多的保護知識版權,我們花了很大的精力做了這個自認為很創新的產品,但用戶並不買單,殘酷地講,從用戶角度來看它什麼都不是。

這個方案在上線一個星期就被整個推翻,第二個星期出了新方案,我們只保護這個音頻的地址而不保護音頻內容本身,這個地址只有購買這個人才會看到。為什麼要做這麼大的轉變?一個很簡單的道理,聲音是有內錄的,用戶可以通過內錄的方式直接把這個聲音錄製出來,而且音質跟之前一模一樣,你根本沒必要去保護這個音頻內容,所以這個創新根本就是失敗的。我們當時是知道有內錄的,還是堅持做了最強的DRM保護方案,這個方案是一個決策失誤。

5 用戶從1個到2億背後的架構演進

現在喜馬拉雅的用戶已經從1個增加到2億,架構也做過比較大的調整。我們一開始就是一個整個的單體的服務,接著做了垂直的拆分,後面做了服務治理,現在做到多IDC。另外,我們的內部通訊協議從hessian到thrift,現在我們通過netty走私有協議。數據庫我們一開始做得時候只考慮單庫的分表,然後做好主從,現在做了垂直的拆分,也做了DAL整個數據訪問層的開發。

在緩存方面,我們剛上線的時候沒有緩存,後來做了個極端,全部用靜態緩存,但全部用靜態緩存之後,失效等問題開始困擾我們,於是又加了業務的多級緩存,再配合動靜分離做了一些融合的靜態緩存。

監控方面,一開始我們只用cacti,nagios,後來自己寫了一個黑盒監控,叫momoda,它會定時監控我們所有的服務,看我們服務的狀態OK不OK,現在我們自己寫了一個XDCS的,整個白盒子能監控我們所有的服務和調用鏈。

運維方面,一開始我們是手動發佈的,後來我們加了Salt的自動化。現在我們自己開發了自己的CMDB,做灰度、自動化的部署發佈,

大數據這塊,我們剛上線時只有三個節點,是 Hadoop集群最低配, 3臺hadoop,三個結點,一個Mast,兩個Slap。後續我們增加到十幾臺,現在我們建了整個數據中心,有兩三百臺全部跑在sparkonyarn上,已經把Hadoop去掉了。一開始我們用Hbase比較多,踩了很多坑,後來我們把服務於線上用戶的Hbase跟做離線分析的Hbase做了隔離,就是online offline做了隔離。現在的On Line,我們還做了讀寫分離,就是把庫寫定時再dump到讀庫裡面,保證讀的性能穩健性。

除了架構,我們在團隊方面也做了調整,最初是純職能團隊,劃分為客戶端團隊、服務端團隊等。後來我們按照業務拆分服務端團隊,但是不久後發現光有業務團隊不行,又提出做專業職能,像平臺架構團隊,系統架構團隊等等,又把專業職能團隊再提取出來。

6 招合適的人做合適的事

創業公司比不了BAT,我們招不到最優秀的人才,在喜馬拉雅還不像現在這樣有名氣時候,最優秀的人才不願意到這個平臺來。另外,他們要求的待遇我們也滿足不了,所以我們招最合適的,或者潛力比較好的人。

當時我們iOS的負責人只有三年工作經驗,但是他Python、Java什麼都會,做過做百度音樂,百度輸入法的iOS開發,最早還做過塞班,是一個潛力非常好的人。雖然經驗略欠缺,但我們願意給他很好的發展平臺,讓他負責整個那裡團隊的管理,他也可以有一個轉型的機會,這時候他是一個非常匹配的人才。所以要找到這種潛力比較好,又願意過來的一波人。

喜馬拉雅剛在招聘的時候還有一些技巧,比如說跟面試人多探討一些技術,讓他感受到我們都是熱愛技術的,我們是在營造一個追求技術的環境,然後多描繪一些發展前景,甚至我們會跟他們一起吃飯聊天,和他們打成一片。

喜馬拉雅有了名氣之後,陸續有很多人過來,但是BAT的人價格還是很高,因為BAT近幾年炒的是越來越高,我們的想法是把握好人才結構,我們注重內部培養人才,所以我們校招開始的比較早。另外,也從外部引進一些有經驗的人才,這樣把人才結構做好。

7 允許犯錯,但不該錯的地方絕對不能錯

技術管理方面,首先希望我們整個團隊對技術感興趣。另外,我們都要尊重他人,或許他有些方面確實做得不夠好,但每個人都有長處,我們要更多的表揚他的長處,再去引導他改正不好的地方,當然很難融入團隊的人肯定要第一時間處理掉。

我們在團隊管理方面宣傳一個基本的價值理念“我們有哪些方面能錯,哪些方面不能錯”,比如我允許你上線出Bug,但是你不能把錢算錯了。

還有目標和結果導向,要給每個團隊定好目標,然後讓團隊自己去實現,我們不過多的干預。另外職責要清晰,每個人要為自己的職責負責,如果職責不清晰,他就不知道自己做的事是否有回報。我們也會鼓勵創新,但是創新的過程要嚴格把控,因為畢竟是新生的事物,要投入多少,效率如何,或者結果怎樣都是要嚴格把控的。

提倡主動性和溝通的重要性,我寧願你技術差一點,但是主動性要強,要多注重跟其自己團隊、其他團隊之間的溝通。另外,要以表揚和激勵為主,我們更強調做得好的東西,而不是去批評做得壞的東西。最後就是每個團隊要能夠自我快速的迭代,不停優化。

8 與人工智能結合,深度耕耘音頻領域

音頻領域遠沒到瓶頸期,還有很多東西沒有做好,喜馬拉雅的下一步計劃仍然是在音頻領域裡深耕。當然,喜馬拉雅和其他互聯網公司一樣,也會面臨的很多挑戰,比如人工智能。音頻內容分發跟音樂不一樣,音頻的內容非常多樣化,很多內容都可以聽,而音樂只是一個品類,所以如何根據用戶的興趣製作智能的內容分發是我們要面臨的挑戰之一。另外,音頻跟頭條等文字平臺不同,頭條有大量的文本內容,音頻只有音頻本身,在語音識別方面還是要深入研究。

作者介紹

陸棟棟,喜馬拉雅FM CTO。中科技大學計算機01級本科,05級信息安全碩士,3年外企,7年喜馬拉雅創業,對移動互聯網產品和架構,人工智能,技術管理等都比較感興趣。

今日薦文

點擊下方圖片即可閱讀

喜馬拉雅FM CTO:從停站20小時到如今的2億用戶,這是我們的技術故事

微軟開源軟件列表

相關推薦

推薦中...