微信号:infoqchina

介绍:有内容的技术社区媒体

喜马拉雅FM CTO:从停站20小时到如今的2亿用户,这是我们的技术故事

2017-04-03 09:15 陆栋栋
作者|陆栋栋
编辑|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年喜马拉雅创业,对移动互联网产品和架构,人工智能,技术管理等都比较感兴趣。

今日荐文

点击下方图片即可阅读

微软开源软件列表


 
InfoQ 更多文章 稳定和性能如何兼顾?58大数据平台的技术演进与实践 Q新闻丨谷歌上线全新开源网站;苹果发布Swift 3.1;全球最大成人网站将全面采用 HTTPS 「号称」所有人都在使用的微服务架构概念,应该怎样理解? GitHub 贡献第一的是这家「因循守旧」的公司?微软开源软件列表 从技术、平台、工具、语言&框架等四大方面,详解技术未来的趋势
猜您喜欢 阿里移动11.11| 揭秘阿里虚拟互动实验室 NVIDIA研发无人驾驶技术和深度学习 Go 语言的分布式读写互斥 代码诊所的第二次诊断 [视频] Ceph创始人Sage Weil公开课