移动互联网产品要能够满足快速增长的用户需求,高效的快速迭代必不可少,Yeahmobi移动广告体系亦是如此。Yeahmobi拥有全球领先的智能化原生广告平台,包含两大产品线和四大技术引擎支撑,面对时刻发生改变的移动互联网及业务增长需求,搭建高效的技术产品研发过程势在必行。那如何才能使技术研发过程更加高效呢?

工欲善其事,必先利其器

移动互联网广告平台搭建的背后其实是一个繁琐而复杂、耗时、又常常伴有风险的过程,对快速迭代和及时交付的要求非常严格。但常言说,欲善其事,先利其器,Yeahmobi技术产品研发过程如此高效的秘诀就是构建了一套符合业务发展的持续交付系统,通过建立一些工具、过程和构建架构使Yeahmobi的软件产品交付更加高效。

持续交付系统对于研发过程有哪些帮助呢?可以这样说,无论一个项目有多么庞大,其代码库有多么复杂,只要将构建过程、部署过程和测试过程等环节进行自动化处理,进而提高开发、测试和运维工程师之间的相互协作,就可以将频繁的软件更新在数小时、甚至数分钟内部署到产品环境。

什么是持续交付?

持续交付的过程通常分为下面几个步骤:

a) 工程师完成功能开发并提交到代码管理库;
b) 由自动化构建工具进行构建,包括源代码自动构建、运行单元测试、代码质量报告分析、将生成的软件包进行版本化、发布软件包到指定的文件系统进行归档,最后生成相应的文档;
c) 将软件包依次部署到不同的环境:Dev / Test / Stage / Production,任何一个环境的部署或测试失败,都会终止本次发布,需要修改问题后重新启动发布流程;
d) 在Production (产品环境)部署中,如果发现所部署的有缺陷或者部署失败,应该有Rollback机制,将Production中的更新Revert到部署前的版本。

Yeahmobi持续交付 -1

大多数企业都希望持续交付能够做到“一键部署”,从工程师提交源代码开始,到自动运行软件构建、软件包发布、代码分析、单元测试、集成测试、自动部署等环节全部自动化,这就需要有一套非常完备的设计方案和运行管理机制,将以上每个模块全部整合在一起,做到各个环节的“无缝”衔接。

事实上,软件产品的交付过程是一个“闭环”的过程,每一个环节都是一个迭代过程。

持续交付流程示意图 -2

持续交付流程示意图

Yeahmobi技术产品的持续交付实践

通过分析产品项目的现状,审查阻碍软件高效发布的环节,找出发布过程中制约效率的瓶颈。然后对公司产品交付过程的标准化、构建过程和发布过程的版本化、软件构建、打包、测试、部署等环节的自动化,建立公司统一的构建服务器、文件管理系统、依赖管理系统和代码质量分析管理系统等,将各个环节通过持续交付系统进行自动化运行。采用相同的构建过程,用相同的部署脚本将相同的软件包部署在不同的环境中。通过环境变量的配置来识别目标环境,极大地提高的自动化程度以及资源、流程的共享。

Yeahmobi持续交付系统框架 -3

Yeahmobi持续交付系统框架

通过搭建持续交付系统,并为各个环节提供可视性、自动反馈和线上推送等功能,很大程度改善了产品研发对用户反馈、市场变化和商业战略的响应速度,提高了产品的生产率和效率,改善了产品质量,节约了整个软件产品的交付时间。至此,Yeahmobi的一个项目已经达到日均20余次在开发环境、测试环境和生产环境中部署,单次部署时长从原来的4小时减少到现在的15-20分钟,并且建立了该项目的周期性发布计划。通过规律性增量发布,大大减少了单次发布风险。

代码周期发布示意图 -4

代码周期发布示意图

实现持续交付,不仅实现了快速迭代交付,而且将软件生命周期中的各个“干系人”都纳入持续交付的整个过程。很大程度上节约了开发、测试、运维工程师的时间,减轻了大家在发布软件过程中的繁琐劳动,降低了软件发布的风险。另外,它使产品研发更快地验证新功能的效果,并根据真实的用户反馈进行调整。尤其是当业务方案有根本性缺陷时,能尽早地被发现。而且,快速迭代的增量发布能提供一种大幅降低交付风险的交付流程,而且成本的投入也更加具有可预见性。

2016年初,Yeahmobi成功亮相资本市场(股票名称:易点天下,股票代码:430270),这将为Yeahmobi在移动广告技术方面的持续发力提供更加灵活的资本保障。同时,对产品研发的规范化要求也更高,Yeahmobi持续交付系统在未来的研发体系中必将发挥更大的作用。