十年•杭研大咖说 | 邱似峰:从应届生到网易视频云CTO的蜕变

社区编辑2018-05-15 14:52

2016年,网易杭州研究院(以下简称“杭研”)成立十周年之际,我们推出“十年·杭研大咖说”系列访谈文章,针对亲历杭研核心技术体系变迁的数位技术大牛发问,揭秘网易云背后的技术脉络、技术人和研发故事。本期的受访嘉宾,是网易视频云 CTO 邱似峰。

 

邱似峰介绍了他与杭研结缘的故事,以及他在杭研积累的技术、管理经验,着重解读了他目前负责的网易视频云的研发,并对视频云的未来技术方向进行了阐释。他认为,浓厚的技术导向氛围使得杭研成为技术人的福地,同时杭研的用户导向价值观保证了研发获得的认可度。

 

邱似峰,2007 年加入网易,期间先后主持了分布式数据库、分布式文件系统、数据库云服务、对象存储云服务的研发工作。在大规模分布式系统和海量数据处理系统方面有丰富实战经验,拥有超过 10 项核心技术专利,是网易服务端技术专家。之后带领团队研发了视频云产品,目前担任网易视频云 CTO 职务,专注于音视频直播、点播、CDN 相关技术研发工作。

 

 

加盟杭研:为技术导向氛围吸引

 

 问:请先介绍您在杭研的工作经历,参与过哪些系统的研发,目前主要负责哪些技术、产品线?

 

 邱似峰:我2007年毕业后就加入杭研,最开始的四五年是做分布式数据库的研发(分布式数据库和分布式文件系统是杭研早期用来解决互联网海量数据处理和存储问题的两个系统)。我从底层开始,先做一些周边的工具,再慢慢地做一些核心的模块,然后负责整个分布式数据库产品。

 

之后杭研成立了一个存储平台部门,我负责分布式数据库和分布式文件系统。这两个产品做了一年之后,杭研转向企业私有云的研发,我们团队做几个云化的产品,包括对象存储、数据库的云服务。去年,我又负责组建团队做网易视频云的研发。

 

图:早期的网易分布式数据库系统架构

 

问:当初选择加入杭研,并在杭研工作这么长时间,最吸引您的因素是什么?

 

邱似峰:如前面介绍,我在杭研的大部分时间是做技术研发,我喜欢这样的工作。杭研的研发氛围非常好,每一个研发人员、每一个团队都有足够的空间,能够决定自己的研发方向,在确定技术路线并和高层沟通好之后,就可以着手研发。也就是说,技术导向的氛围比较浓,技术人员发挥的空间比较大。

 

问:技术导向的情况下,技术人如何确定研发的产品是否符合市场需求?

 

邱似峰:这是一个关键的问题。做私有云的时候,一定要满足用户的预期需求,其实我们团队所有的小伙伴都会奉行的一个价值观,就是用户导向。一定要做某件事情的时候,要先和相关产品各类可能的用户都去沟通,了解如何才能给他们带来最大的帮助。在研发的过程中保证不走偏,不能只是关注研发。例如我们做存储服务(有6-7位研发,外加半个运维),需求会先经过市场人员,再传递到研发部门,研发会先碰到用户,因为私有云用户量不会特别大,我们平时多和这些用户在一起,知道用户是怎么想的,就能保证产品是用户所需要的。

 

同样的道理,做公有云的研发,也是要先做好用户调研。

 

 

见证技术变迁:从单个系统到公有云

 

问:从您的角度,这十年来杭研技术体系有哪些的重要变迁,到目前为止解决了哪些难题?最新的核心技术有什么与众不同的地方?

 

邱似峰:从最开始的分布式数据库系统,到做一些云化,解决问题的思维是不一样的。以前做分布式数据库、分布式文件系统时,可能专注于解决某互联网产品的某一个核心问题,如结构化数据处理查询、海量数据存储的问题;做私有云的时候,思维有了转变,从解决单个点的问题,变成解决一个面的问题,就是解决存储一类问题需要用哪种解决方案。解决点的问题,可能有一些地方思维不够发散。另外做云的时候,可以把通用的需求,和周边附带的数据之上的一些处理,也融入到这个云里面,如汪源院长在网易云发布会上说的,杭研能够在很短的时候孵化出很多的互联网产品,底层的云的支撑很重要,通过云服务模式,我们能够解决很多产品的通用需求。这就是从点到面的两代技术变迁。


图:网易分布式KV存储系统架构

 

现在公有云是第三阶段。公有云会专注打造一些场景化的服务,把解决网易互联网产品开发者遇到的问题的能力开放出来。杭研是比较特殊的一点,是既做产品,又做技术,并且这两块在同一个组织架构下融合得特别好,所以我们非常了解开发需求的痛点,这和其他的公有云团队相比是一个比较大的优势。


图:网易公有云产品矩阵(2016年)

 

 

视频云研发:技术难题与团队协作

 

问:在您现在负责的网易视频云产品方面,我们攻克了哪些难关?

 

邱似峰:我们从开始做内部视频云到现在,已经有三年多。从海量视频数据的服务端处理和核心诉求开始,最早是音乐和教育这两个产品线提出的需求,要做一个分布式系统,处理海量视频数据,满足视频上传、存储、处理等功能的需求。各种视频文件有很多细微的差别,如何能够处理好,也有很多方面的技术在里面。

 

我们首先做一个视频转码服务NTS,以云的形式暴露给他们,让他们不用在乎技术上的难题。解决的几个难点,一是如何快速处理海量数据;二是编码、转码的效率和更高的质量。

 

第二个产品是做跨平台的SDK,针对Web、Android、iOS端的播放器,SDK会把通用的功能封装成统一的库,再根据不同的平台采用Java、Object-C、C++进行API封装,解决异构环境对用户的开发影响;另外是推流,相当于从手机端把视频采集过来编码发送,这在网易Bobo等公司内部产品已经提供上线。

 

之后从去年下半年开始,我们就开始做公有云服务,公有云的第一件事情,就是把上述功能,包括安全能力等等打包成一个整体,让用户看到的是一个通用的网易视频云解决方案。另外,我们现在很大一部分的精力放在解决视频数据在互联网上的传输问题,因为视频现在以直播为主,传输网络对用户体验非常重要,我们先从源头开始,从上行,把整个传输网络在全球搭建出来,保证用户就近获取视频数据。我们最近成功推出了互动直播,延时控制在200ms以内。

 

问:分布式数据库、对象存储的经验对网易视频云研发有什么好处?

 

邱似峰:这其中确实是有很大的差别,研发方向是完全不一样的。但是人都是要有一个学习的过程的。其实我之前在学生时代研究的方向也不是分布式数据库。所以软件开发者在职业生涯中不一定要局限于某一个领域,要看到以后的方向、趋势,跟着热门技术趋势去做研发,沉淀一些自己的东西。我以前的一些分布式、服务端的开发经验,也是现在的视频技术研发所需要的。比如网易视频云核心的转码服务,我们采用多节点分布式转码集群对音视频进行转码处理,并行支持10000路多码流多倍速转码,对并发能力和转码效率都是很重要的;通过支持容错和动态扩容机制,则可以保证转码集群99.9%的高可用性。

 

当然,因为方向完全不一样,我也不可能完全精通所有的技术,整体解决方案的研发,就要依赖团队的力量来做。但是很庆幸,网易在音视频研发方面有15年的技术积淀。


图:网易视频云分布式视频处理平台通过租约的方式实现元数据同步和高可用

(如果A宕机,configserver更新B的租约,将A负责的调度任务交由相邻节点B继续执行)

 

问:谈到团队,您对于视频技术团队的背景、技能,以及解决问题的能力,有什么样的要求?

 

邱似峰:技术团队最主要的是两点:

 

一是专业性,视频是一个专业领域,研究生的方向就不是计算机基础,而是信号处理,整个技术栈和一般程序员掌握的计算机技术是不太一样的,所以视频研发肯定要保持专业性,团队成员最好能够有足够的工作积累。

 

另外,刚才谈到的用户导向也很重要。有很多技术很好的程序员,单思维可能和互联网产品研发的要求有一些差距。我们觉得还是要统一用户导向的价值观来指导研发。

 

问:除了这两个方面,做成网易视频云产品,还有那些关键因素?

 

邱似峰:还有很多。包括产品团队、市场团队、运营团队、销售团队,对于通用能力来说,除了用户导向,整个团队的执行力也是一个关键点,认准一个目标,要在约定的时间把问题解决。

 

问:网易视频云产品也实现了和网易易盾、网易云信的无缝集成,实现广告过滤、智能鉴黄等功能,能否介绍多个团队是如何协作的?

 

邱似峰:这个协作是比较自然的,是用户决定的。比如娱乐行业的用户用了直播之后,会有做反垃圾的强烈需求,几个能力要一起采购,所以我们需要合作,一起做好解决方案,服务同一个用户。这对几个产品团队都是有好处的,因为目标一致,所以整个合作起来比较顺畅。

 

问:当不同的团队有一些分歧的时候,我们是如何处理的?

 

邱似峰:目标一致的时候,程序员和程序员之间的沟通,并不存在特别严重的问题。如果有问题,我们就是对事不对人。一个正常的项目组,不可能一点争论都没有,围绕事情争论是很合理的。

 

问:作为网易产品研发云的一部分,目前网易视频云上的开发者主要来自哪些领域,他们最喜欢用视频云的SDK来做哪类应用?

 

邱似峰:目前,网易视频云已成功接入了宝宝树、东家手艺人、猎聘网等知名用户。同时,网易新闻客户端、网易Bobo、网易云课堂等网易系产品也接入了网易视频云。从去年开始,爆发的是娱乐秀场,现在教育是一个比较大的需求。从今年开始,各行各业都会有一些视频方面的需求,比如电商(直播购物)、金融(股评讲座)、广电(电视节目上云)、企业协作软件(视频沟通),这些方面都有视频云的需求。所以我们团队也为不同的应用场景定制了不同的技术方案。


图:网易视频云在线教育解决方案

 

问:开发者采用网易视频云遇到最多的问题是什么,我们如何帮助他们解决这些问题的?

 

邱似峰:开发者对网易视频云最大的需求就是快速接入视频的能力,由于开发者的水平不一样,在接入、调试、使用过程中,确实可能有一些问题,最好的解决办法,就是一对一的技术支持,比如开发者对开发文档、示例代码不理解,在QQ技术群里提问,技术支持工程师可以第一时间帮助他解决问题。

 

另外一个典型的问题,直播有时候因为一些网络问题比较卡,用户体验会不好,这时候就需要我们和开发者一起定位问题,帮助用户找到原因。这对APP开发者是很大的好处的,他们会接到用户的投诉,但是不知道具体的原因到底是什么,我们需要帮助他们找出问题的原因,到底是传输网络的问题,还是用户网络的问题,如果是后者,可以协调用户,比如让主播到一个比较好的网络环境。

 

问:从产品研发的角度,网易视频云下一个需要解决的问题是什么?

 

邱似峰:还是帮用户解决卡顿的问题,帮用户找到原因是很重要的一点,同时我们也希望通过技术手段把网络做得更好,在网络不太好的情况下,要让视频数据传输效率更高、视频质量更好,当用户网络真的出现不可避免的卡顿时(因为主播有可能拿着手机进行移动直播,很难保证网络质量),要能够让用户体验不要下降太多。另一方面,我们也会在全国和海外部署更多的CDN节点去加速网络传输。

 

我们现在通过客户端独有的网络QoS流控算法、自研传输协议,在网络不好情况下,自动增加缓存,保障网络传输的流畅性和低带宽条件下更流畅的音视频体验。另外还有全链路优化,推拉流时把基于DNS调度,改为采用IP中心调度策略,选择最优的网络节点,拉流时采用自动HTTP-302策略。同时,我们结合自建源站,融合多家CDN,优化服务端网络传输。

图:网易视频云自研传输协议实测效果

 

 

研发管理:技术、团队、产品都要懂

 

问:对于如何带领一个研发团队,您有哪些经验可以分享?

 

邱似峰:首先,内部沟通满足团队成员需求是很关键的,大家的想法需要一致,一方面要了解团队成员的期望和长处,把他对网易的认可与个人的发展相结合,团队的稳定性会更好。例如,一个员工做好一件事情之后,有机会向整个团队分享他的心得,他能收获更大的成就感。将这种分享机制贯彻下去,团队做事情就会比较顺畅。

 

其次,对外还是要多关注业界的动态,预测哪些技术会爆发。如果是作为真正的CTO,还需要有一定的产品的意识,看自己的产品和竞品有什么差异化,能否满足市场需求。

 

另外,哪一类2C产品会在接下来的一年爆发,这也是有价值的事情,因为这类产品往往会带来后端服务的很多新需求。

 

所以,带领研发团队,团队内部、技术方向、产品洞察都是需要考虑的事情,虽然不能像产品经理一样有细致的了解,但也需要对产品趋势有一个基本的判断。

 

问:您如何评价您自己近十年来在杭研的主要收获?

 

邱似峰:我2007年进入杭研的时候是一个应届毕业生,最初的几年主要是掌握了接触到的各种技术知识,尤其是现在云计算时代非常重要的分布式架构的设计。后来随着工作的变化,我的个人能力获得了更全面的提升,包括管理能力,以及更开放的思维、更广阔的眼界,这些都可以帮助我个人更好地成长。

 

问:您如何认识杭研未来的变化,以及面临的挑战?

 

邱似峰:从私有云到公有云,杭研的变化是很明显的。支撑网易内部业务的时候,只要专注做事情,有足够的恒心、毅力,就能把事情做得很好。现在做公有云,固然需要先做好技术研发的事情,另一方面,也要找到和竞品有区别的发展方面,比如网易云现在要结合自己内部的互联网产品研发经验,做面向互联网+的场景化云服务。定好方向之后,就要加快研发,加快产品落地的速度。

 

对于挑战,我认为还是要考虑好未来的定位,抓住期望的市场,打造符合市场预期的产品。我现在带领研发团队,会更从内部关注产品的打磨,包括用户体验、稳定性和性能等方面。

 

写在最后

 

从初级程序员到CTO,在杭研宽松的研发环境下,邱似峰似乎这九年来走得比较顺利。但正如邱似峰所说,从分布式数据库、存储到视频,从私有云到公有云,其研发目的从未偏离用户需求,相反,他和他的团队勇于不断挑战不同的技术方向,为网易解决了一个又一个问题。邱似峰的成长,正是杭研人十年不断“趟坑踩雷”的缩影。同样,杭研现在开放的网易云,也是杭研人不断解决网易互联网产品研发问题的经验结晶,是瓜熟蒂落的方法论。

 

最后剧透,下一期的访谈嘉宾,是网易云基础服务网易蜂巢的掌门人,网易杭州研究院云计算平台产品部总监陈谔。