Post Detail

喜马拉雅CTO经验总结

Hugiss  

在搜狐看到了一篇喜马拉雅CTO陆栋栋的经验总结。背景类似,资历类似,格局却大大超过了本人。也许有人说命好,然而路是自己选的,怎么选路就是格局。

喜马拉雅CTO陆栋栋背景

2007年,毕业后我去了一家外企“东方海外”。
2010年,加入创业公司“那里世界”(喜马拉雅前身)
那里世界失败,喜马拉雅成功。陆先生七年中逐步脱颖而出。

喜马拉雅CTO几点经验小结

1. 服务治理大改动带来的停站20小时

当时有200万DAU。没有无缝迁移数据的工具,上线要停机,上线过程又出问题。后来灰度发布,灰度部署好了很多。后来也做了xmen数据迁移平台。

2. 2016上线的付费内容,失败的DRM内容保护

设计了一个只能下载后用喜马拉雅本地听的DRM方案。保护了下载地址,没办法处理转录。用户不买单。

3. 用户从1个到2亿背后的架构演进

  • 一开始是一个单体服务,接着做了垂直拆分,后来做了服务治理,现在做到多IDC。
  • 内部通讯协议从hessian到thrift,现在通过netty走私有协议。
  • 数据库我们一开始只考虑单库的分表,然后做好主从,现在做了垂直的拆分,也做了DAL整个数据访问层的开发。
  • 缓存方面,刚上线的时候没有缓存,后来做了个极端,全部用静态缓存,但全部用静态缓存之后,失效等问题开始困扰我们,于是又加了业务的多级缓存,再配合动静分离做了一些融合的静态缓存。
  • 监控方面,一开始我们只用cacti,nagios,后来自己写了一个黑盒监控,叫momoda,它会定时监控我们所有的服务,看我们服务的状态OK不OK,现在我们自己写了一个XDCS的,整个白盒子能监控我们所有的服务和调用链。
  • 运维方面,一开始我们是手动发布的,后来我们加了Salt的自动化。现在我们自己开发了自己的CMDB,做灰度、自动化的部署发布。
  • 大数据这块,我们刚上线时只有三个节点,是Hadoop集群最低配,3台hadoop,三个结点,一个Master,两个Slave。后续我们增加到十几台,现在我们建了整个数据中心,有两三百台全部跑在Spark on Yarn上,已经把Hadoop去掉了。一开始我们用Hbase比较多,踩了很多坑,后来我们把服务于线上用户的Hbase跟做离线分析的Hbase做了隔离,就是online offline做了隔离。现在的On Line,我们还做了读写分离,就是把库写定时再dump到读库里面,保证读的性能稳健性。
  • 除了架构,我们在团队方面也做了调整,最初是纯职能团队,划分为客户端团队、服务端团队等。后来我们按照业务拆分服务端团队,但是不久后发现光有业务团队不行,又提出做专业职能,像平台架构团队,系统架构团队等等,又把专业职能团队再提取出来。

4. 招合适的人做合适的事

给有潜力的人机会。

5. 允许犯错,但不该错的地方绝对不能错

  • 算钱的地方绝对不能错。
  • 目标导向管理。
  • 提倡主动性和沟通的重要性。

6. 与人工智能结合,深度耕耘音频领域

尚有大的作为。

Show Disqus Comments