网易汪源:智启互联网软件生产新方式

社区编辑2018-05-15 16:07

在11月25日的GITC全球互联网技术大会的主会场上,来自华为、网易、乐视、京东、腾讯等互联网公司的技术专家们共聚一堂,就当下流行的互联网技术及行业趋势进行了积极探讨。

作为一家拥有19年历史的互联网公司,网易见证了中国互联网的发展历程,也见证了互联网软件开发方式的演进之路。网易杭州研究院执行院长汪源分享了网易在软件生产方式上踩过的坑,以及网易云将如何帮助开发者们开启互联网软件生产的新方式。

 

 

  • “唯快不破”的互联网时代,软件生产存在哪些挑战?

 

快鱼吃慢鱼,大鱼吃小鱼。“唯快不破”早已成为互联网时代的竞争法则,尤其在风口论持续不休的大环境下,软件上线和迭代的速度在一定程度上决定了一个项目甚至一家企业的成败。

 

当今互联网的软件生产方式仍会遭遇两个方面的挑战,一是团队的挑战,优秀的开发团队需要有一个从CTO到基层,从开发到运维,从代码到DBA等全方位的人才;二是业务方面的挑战,是否能够满足当前快速的上线速度,是否能够抗住大容量高并发的访问,是否能够带给客户美好的用户体验等等。对于中小企业和研发能力欠缺的互联网公司而言,这两个问题和唯快不破的理论俨然是背道而驰的。

 

最近两三年,网易的互联网业务开始出现井喷式的发展,并且收获了很好的用户口碑,比如大家所熟知的网易云音乐、网易考拉海购、网易云笔记等等,在解决这些互联网软件生产的问题上,我们积累了大量的实践和经验

 

 

从1997年以邮箱业务起家到2015年正式推出公有云平台,目前网易超过95%的互联网业务已经迁入网易云。基于这些实践和产品研发经验,网易提供了一整套面向互联网+的场景化云服务,包括网易蜂巢、云信、七鱼、易盾、云捕、易测、视频云等,每一个产品都是为解决产品研发场景或业务运营场景中的具体问题而设计的。

 

当然,在这些成就背后,网易在软件生产方面也踩过了一个又一个的坑。

 

  • 从“手工”到“车间”,互联网软件生产方式的变革

 

从2012年起,网易就构建了自己的私有云,网易考拉、网易云音乐等直接在私有云上开发和部署,借助网易私有云计算、网络、存储资源的弹性,辅助自动化脚本及配置工具,可以完成基本的资源的管理和控制以及应用的部署。从私有云到公有云的过渡,也是网易对软件生产方式的新理解和新定义。

 

最早的软件生产可以形容为“手工生产”阶段,也是在仅仅提供资源弹性的私有云时代的典型方式,往往是CTO带队裸奔,开发、提测、联调、上线等由不同的人来完成。这一阶段的问题在于,软件迭代缓慢、无法标准化且质量不可控。

 

第二个阶段可以称之为“自动化生产”,网易云也在这个时候引入了容器技术。与传统IaaS架构不同,容器提供的不仅仅是基础资源,而是将操作系统、应用运行环境以及代码打包成一个不可修改的镜像进行交付,容器的机制可以保证无论在哪里,什么时候运行,都能保持环境的一致性。

 

 

网易考拉海购就是运行在容器云上的产品,把代码里面的功能自动封装到容器当中,并且把容器做成镜像,再通过编排服务解决不同容器之间的依赖关系,自动完成软件的安装、部署和运行,然后把运行起来的软件放到网易考拉的测试环境、联调环境和现场环境。另外,借助网易蜂巢集成的代码管理和持续集成工具,在整个软件生产过程中,网易考拉的研发团队只需要完成编码和测试,不需要关心申请资源和部署环境,既便捷又减少出错概率。

 

不过,当业务进入爆发期,自动化生产存在无法解决的架构瓶颈,单体式架构在业务爆发性增长方面的表现令人遗憾,业务更新成功率低,延迟严重等极大地损害了用户体验。要解决这个问题,软件生产势必要过渡到“车间生产”的阶段。

 

事实上,网易已经进入软件生产的车间时代,目前车间式软件开发的更新频率达到了每天723次,远高于自动化生产的112次。网易考拉海购能够轻松应对618和双11期间的流量爆发,网易云音乐也支撑了超过2亿的用户量。而 “车间生产”的典型特征就是分布式架构,能够加速迭代,但也面临着技术门槛高、管理复杂的挑战。

 

而网易云又是如何解决这些短板的呢?

 

  • 网易蜂巢,助力企业开启互联网软件生产新方式

 

从自动化生产到“车间生产”,网易的秘密武器就是网易蜂巢,而如今网易蜂巢已经成为网易公有云产品体系里的基础服务。

 

 

网易蜂巢定义为新一代云计算,除了提供基础的IaaS服务,采用了流行的Docker容器作为整个软件部署和调度的基本单元,容器层面提供了镜像仓库的管理,镜像构建的服务,容器日志的统一管理,容器的健康,以及持续集成,并以结合Google生产集群管理的理念和业界的实践经验打造的Kubernetes作为容器管理和编排服务框架,进行了优化和改进。比如在容器编排方面支持多租户、多个优先级队列,在容器优化方面提供统一的日志收集、分析、搜索服务,利于分布式架构问题定位。

 

 

企业只需要关注自己业务的实现,逐步实现去状态化、容器化、微服务化,而外围的计算,网络,存储,编排都交给网易蜂巢。此外,虽然外围的编排,数据库,缓存都是网易蜂巢来搞定,但是不意味着平台的绑定。网易使用的技术,都是业内使用最广的流行的技术,已经成为了业内的事实标准。在基于这些技术的基础上,网易都利用自己的经验进行了稳定保障,同时提供标准的接口。

 

网易蜂巢支持微服务化,是对现代软件生产方式的支持,同时网易利用十多年的互联网产品研发经验,将开源技术和云计算很好的结合起来,在保证开放和稳定的同时,开启互联网软件生产的新方式。