2016年,网易杭州研究院(以下简称“杭研”)成立十周年之际,我们推出系列访谈文章,针对亲历杭研核心技术体系变迁的数位技术大牛发问,揭秘网易云背后的技术脉络、研发思想和技术人成长的故事。本期的受访嘉宾,是网易杭州研究院执行院长汪源。本篇介绍了杭研成立的背景和初衷,杭研技术体系的演进,当前的应用进展,和未来的一些重点工作。除了云计算的实践经验,汪源还解析了网易大数据实践的思路和成果,并分享了企业实施大数据的关键步骤。
![\](http://www.ctiforum.com/uploadfile/2016/1216/20161216043734121.jpg)
网易杭州研究院执行院长汪源
十年,杭研支撑了整个网易互联网业务
十年前在什么样的情况下成立的杭研,当时的初衷是什么?
汪源:网易的传统业务板块包括邮箱、门户、游戏等,到2005-2006年的时候,很多创新的互联网业务形态开始出现,包括博客(如MSN Space)、在线相册(如Flickr)等,丁总(网易CEO丁磊)认为互联网领域将出现很多值得探索、孵化的业务创新方向,网易需要在原有的业务板块之外,重新建立一个面向创新业务孵化、探索的独立组织,所以成立了网易杭州研究院。
成立之后,杭研做的第一个业务就是博客,博客能够让所有的网民都可以发表自己的观点,代表Web 2.0时代的诞生。另外,我们还做了在线相册。在这些探索中,我们发现新的Web 2.0业务形态对技术的要求相比Web 1.0有了质的飞越,需要如海量数据管理等基础软件的支撑,因为所有网民带来的数据量,相比之前门户网站至少有两个数量级以上的提升。所以,杭研的第二个职责,就是为网易接下来的互联网业务发展筹备基础软件技术,构建一个现代化的互联网知识体系和技术体系。
经过了十年的迭代,现在杭研技术体系的全貌是什么样子?
汪源:网易目前的技术体系可以总结为如下七个方面:
- 服务端技术和云计算体系;
- 整个大前端的技术体系,包含Web前端、PC客户端和移动端;
- 信息安全体系;
- QA(质量保障)体系;
- 运维体系;
- 大数据分析/挖掘体系;
- 感知与智能体系。
![\](http://www.ctiforum.com/uploadfile/2016/1216/20161216043830123.jpg)
形成这个体系,这十年来重大技术变革的时间节点和革新的契机有哪些?
汪源:杭研在不同时期的研发重心与整个互联网环境的变化基本是一致的,当然网易因为体量的缘故,比一般的互联网公司能够更早地感受到新的技术需求。
- 2006年,杭研研发核心是海量数据管理平台,包括分布式数据库和分布式文件系统等,也是现在网易对象存储的核心组件。外部因素是Web 1.0到Web 2.0的过渡,导致网易整个互联网产品对数据量的需求突然暴增。
- 2007年,我们开始做MapReduce这样的分布式计算平台,支持大规模分析。因为Web 2.0产品发展逐渐成熟,催生了基于大量数据统计的个性化推荐等数字化运营模式,也带来了大数据分析的需求。
- 2009-2010年,重点是内容安全。那个时候SNS风头正盛,UGC(用户生产内容)业态发展逐渐成熟,反垃圾需求也越来越强。
- 2011-2012年,我们从网易的业务规划,预感到有很多新业务要开发、运维和管理,需要一个很好的基于虚拟化技术的云计算平台来支撑,因为传统的基于物理机的资源管理模式变得非常低效,尤其是对运维而言,所以我们构建了云计算平台。
- 2012-2013年,我们开始做人工智能,这是人脸、语音等需求的促进。
基于这些技术,杭研今年推出了网易云,根据网易对产品品质的一贯要求,这表明了我们对技术积累较高的满意度,那么能否说我们目前的技术储备已经很完善了?
汪源:技术体系其实永远是不可能完善的,因为业务发展会不断提出新的需求,而且一个庞大的技术体系中也会存在很多可以优化的地方。但是,有两个事实表明我们整个技术体系是很成功的:
- 这套技术体系确实成为了一个统一的、标准化的平台,承载网易的各个互联网产品,无论是杭研还是非杭研的产品,所有的典型互联网业务,都在使用杭研构建的这套技术体系来支撑,网易内部不存在不同的技术体系。
- 2012-2013年,我们开始做教育、音乐、易信,2014-2015年,我们做了电商、金融、手游等业务。这三四年,网易业务呈现爆发性增长。但无论是业务范围还是业务规模,这个技术体系都很好地完成了本职使命——在业务爆发式增长的时候,它能够及时地提供有力的支撑,没有出现技术拖后腿的情况。
![\](http://www.ctiforum.com/uploadfile/2016/1216/20161216043938419.jpg)
现在,我们将这个技术体系逐步产品化、商业化,对外提供网易云服务,而我们的云服务也很好地支撑了很多外部客户的业务。
这套体系之所以能够支撑整个网易互联网业务,您的主要经验是什么?
汪源:这其中有两个方面的原因。
- 技术原因:技术体系的能力可以支持各个业务的需要。例如,针对业务的高可用需求,云计算提供了基于虚拟化的集群调度能力,和很好的资源隔离机制,即多AZ(Availability Zone)机制,包括普通云主机和RDS之间相互隔离的机制,这些机制都是成规模的、可用性要求高的互联网应用所需要的。不同AZ云主机一定在不同的交换机、不同的物理机下面,做到可用性隔离。我们在IaaS层设计上提供了很好的保障手段,云计算平台可以支撑这种placement的需求。在性能方面,我们也针对网络虚拟化做了很多优化,能够在万兆网络条件下较好地榨干硬件的性能。所以,无论性能指标还是非功能性指标,我们都能很好地满足业务的需求。
- 团队原因:网易云计算平台是杭研构建的,网易互联网业务的运维也是杭研运维团队承担的。云计算团队和运维团队会联合制定一些运维规范,除了某些特定的场景使用物理机之外,其他场景都使用标准化的网易云架构来部署应用。如果要把老业务从物理环境迁移到云环境,迁移工作也是杭研运维团队来执行。所以,80%的工作只要运维团队和云计算团队合作就能推动,不需要和所有业务团队去沟通,难度降低了很多。
大数据,敏捷BI非常重要
业界认为云计算为大数据的处理提供了基础,对于杭研来说,云计算很好地支撑了网易的互联网业务,那么我们的大数据体系如何发挥作用?
汪源:我们的技术通常都是帮助应用,在网易这样的互联网公司里面,大数据的应用层最主要的是两种模式:
一是服务的智能化,让大数据实时参与业务流程,通过大数据,让用户体验更好。个性化推荐是一个典型的案例,通过个性化推荐提供不同的服务内容给不同的用户;再如反垃圾技术,用来给邮件自动分类,准确分出是正常邮件、订阅邮件还是垃圾邮件。
二是决策的科学化。基于数据的决策、运营,如产品功能、模块是否存在问题,哪些模块比较受欢迎,哪些模块不太受欢迎,都根据数据结果做设计和调整;产品的用户群有什么典型的特征,也可以通过大数据来做分析,得出用户群的画像、用户群的行为分析结果,提供给产品经理、产品策划作为决策依据;在市场营销上,哪个渠道带来的效果更好,也是根据数据的情况来调整。目前,网易的金融、教育、电商、游戏等业务都有大数据的支撑。
![\](http://www.ctiforum.com/uploadfile/2016/1216/20161216044035467.jpg)
我们的技术如何支持这两种模式?
汪源:大数据应用需要优秀的大数据系统的支持。我们围绕Hadoop、Spark、Impala等大量开源大数据的框架构建自己的大数据平台,降低数据开发的门槛,集中管理我们的数据资产。要降低数据开发门槛,首先要做的是让数据集成变的容易,一个业务的数据通常是分布在业务MySQL、Oracle等数据库中、分散在成百上千台的服务器的日志中,或者是存在于文件中。如何批量或者实时地把数据收集起来,并同步到大数据系统里面,是大数据的第一步。所以杭研自己做了很多大数据平台子产品,比如有一个产品叫做Data Stream,负责把海量的线上日志数据和MySQL、Oracle等数据库的数据实时同步到大数据平台的中。 其次,我们通过可视化界面和SQL简化数据处理过程, 使得普通的服务端开发人员也能很快上手数据开发。网易有很多大型产品,每个大型产品都有大量数据表,所以没有一个人能完全知道每张数据表的作用,当然更不知道每个字段的含义,不知道数据表的计算过程。为管理这些数据资产,首先,我们的平台得提供好的数据组织方式,使得数据使用人员能够找到高质量的数据,促进数据在产品间共享,推动数据价值挖掘。其次,平台还要提供细粒度的权限控制和操作审计,确保数据使用安全。
企业利用大数据驱动业务发展,您还有哪些比较好的经验可以分享?
汪源:企业在实施大数据,第一步就是刚才说的,要考虑数据集成问题。第二步,应该要有很熟悉业务领域的人,梳理数据的模式,梳理数据仓库的ETL、建模等工作,才能使后续的大数据应用有一个比较好的数据仓库基础。比如一个产品,原始数据是日志、数据库的数据,通过数据集成技术集成到大数据平台里面来,都是可以访问的,假设这个产品要基于大数据做5件事情,这个时候不应该直接由5个人分头做这五件事情,应该先由1-2个人针对这个数据做一个很好的数据仓库的建模设计,把核心的主题、Feature梳理出来,为后面的5个人提供帮助,不然这5个人需要做很多重复性的工作和很多重复性的计算。
第三,敏捷BI是非常重要的。当前利用数据提升服务和决策能力的理念已经深入人心,整个组织的不同角色都要从不同角度关注数据,老板、高层、中层甚至基层都有可能需要用数据来做工作的分析和决策,整个大数据的使用场景在组织中是分布式存在的,所以需要企业大数据分析能力很好地赋能,让组织中的各个角色都能够比较方便地获得想要的大数据分析能力。大数据具有“3V”的特点,并且数据往往是分散在不同的业务系统,传统BI 使用门槛高,以IT人员为中心,业务人员要把需求提交给IT人员,IT人员排班、建立数据模型、制作报表,往往要几天甚至几周,无法做到实时指导决策;如果IT人员对需求理解错误,或者业务根据当前报表要做进一步的分析,这个过程还要循环,业务上错失良机的概率就更大了。
对于这样的挑战,网易已经有了解决方案,我们研发的敏捷BI工具网易有数,具有数据可视化、实时多维分析的能力,在网易内部已经有很多的应用。敏捷BI以业务人员为中心,更理解业务和需求的业务人员可以自助分析,结果是多赢的:IT部门可以在管控权限的基础上从大量枯燥的提数需求中解放出来;业务部门可以根据业务情况进行实时分析,根据分析结果调整业务,再根据数据来验证调整的结果;管理者可以随时随地了解经营数据状况。这种结果也是传统大中型企业数字化转型所需要的,我们将会输出这方面的能力,助力他们数字化转型。
未来,共创云上精彩世界
您如何看待杭研未来发展面临的挑战?
汪源:杭研面临的主要挑战是商业化层面。杭研的基础,主要在于工程技术方面,也有一些产品方面的技术,但面向企业级市场的商业化能力是我们的弱项,这是我们面临的一个很大的挑战。应对这个挑战有两条路,一是仔细选择特定的行业、领域,有针对性地构建比较强的面向企业的商业化团队和能力,包括销售、售前咨询、交付实施、售后服务等方面的能力,但是我们不会铺开来做,只选择一些网易比较擅长的领域,或者自认为能够聚焦、专注做的领域。其次,就是我们的产品要和第三方合作伙伴进行开放合作,共创云上精彩世界。
![\](http://www.ctiforum.com/uploadfile/2016/1216/20161216044226807.jpg)
网易技术商业化最典型的是网易云,丁总说网易云要解放程序员,您认为我们现在距离这个目标还有多远?
汪源:解放程序员,就是让程序员从那些低级、繁琐的工作中解脱出来,做一些有价值、有创造力的工作。通过技术的手段,把底层基础的重复性工作封装成现成可用的解决方案,就达到解放程序员的目的。其实网易技术体系一直都在解放程序员,我们非常关注这件事情。比如我们在做一个大数据的Benchmark,传统的Benchmark是比拼性能的,但我们是用来比较哪种大数据编程模型的编程效率最高,而不是运行效率最高,这就是典型的重视解放程序员的思路。
至于说解放到多大的程度,我们确实有一些统计数据。比如整个前端开发,使用网易大前端的技术框架,工作效率可以提高1倍;如果程序员不仅仅指开发,还包括运维,我们也针对云计算对运维效率的提升做过统计,包括创建主机、部署数据库、发布上线等20多个常见工作,使用云计算平台,相比之前使用物理环境,通常可以节约80%的工作量。这些侧面不是主观感知,是我们花了比较多的精力,从具体数据统计得到的结论,是可以说明问题的。但是解决了这些问题之后,还有很多解放程序员的事情可以继续做,而程序员会越来越走向更高附加值的工作,可以直接和业务挂钩。
从另一个角度来看,机器运行效率可以通过硬件升级、软件优化等方式解决,而硬件成本越来越低,但人力成本会越来越高,所以重点关注提高人的劳动效率,而不是机器运算效率,也符合商业规律。所以我们不仅解放网易的程序员,也要通过网易云解放别人家的程序员。
谈到“共创云上精彩世界”,未来还要做哪些事情?
汪源:网易云不同于一些典型的IaaS云,是有很多场景化的能力的。要把网易云做好,让这些场景化的能力落到实处,更加需要和合作伙伴一起开拓市场。这些典型的场景化能力,可以集成到合作伙伴面向某个业务的解决方案中去。通过场景化的能力跟合作伙伴之间有一个集成的关系,形成网易云的一个生态构建,最终获得市场成功。生态不是我们独家的想法,但我们更加强调生态中我们不寻求主导地位。我们的产品线和网易找业务场景、找应用的风格一脉相承,自然而然形成一种格局,未来会越来越强调这种格局,通过比较擅长的场景化能力输出,来实现网易云业务的成长。
大数据方面也可以做类似的事情。比如敏捷BI工具网易有数,我们正在致力于让它能够和不同行业的集成商、软件提供商做一个很好的集成,让数据可视化能力可以集成到各个面向业务的解决方案中去,因为网易不可能把所有行业解决方案都做出来,也没有必要做,关键是把核心敏捷BI平台做好,之后就跟很多生态合作伙伴来合作。