易往信息是中国领先的工业4.0智能工厂整体解决方案提供商。凭借十余年行业项目实施经验的沉淀,结合当前“中国制造2025”的核心思想,不断升级智能制造领域业务,涵盖汽车整车及零部件、电子、食品、制药、机加、家电、能源、物流等行业,是制造企业智能改造落地的最佳选择。
多年来,易往信息致力于中国工业软件的研发与创新。在工业软件产品的研发过程中,最常采用的是传统瀑布式开发模式。易往信息借鉴互联网开发的最佳实践,采用SCRUM敏捷开发模式弥补传统瀑布式开发模式的不足,以提高产品研发的效率。在敏捷开发模式中,将整个产品研发周期设置成为若干个冲刺周期(一般以2-4周为一个周期),每个周期都包含需求选择、设计、功能实现与测试等阶段,小步多赢的实现产品研发的目标。
随着产品开发复杂度的不断提高,团队成员不断增多,如何更好地协同工作,如何保持良好的沟通,如何按计划执行,如何保证产品质量已经成为开发过程中不可忽略的问题。因此团队引入持续集成方案(Continuous integration ,简称CI),希望能够有效解决上述问题。
究竟为什么我们要去做持续集成,持续集成究竟可以给我们带来什么好处?
持续集成有如下显而易见的优点:
1、
减少重复性的工作,快速频繁的发布代码,节省时间成本,提高效率;
2、
易于定位错误,及时反馈,减少风险,尽早排除环境参数影响,尽早发现缺陷,尽早评估质量;
3、
优化对研发进度的控制,便于研发流程各环节的衔接;
4、
便于更充分的测试,开展daily build和smoking test相结合;
5、
便于工具结合,持续代码质量改进。如代码检查、自动化测试、自动化部署、回滚、反馈报告等;
6、
更快的产出系统级成果,产品透明化,建立产品信心。
工欲善其事,必先利其器。选择一个好的工具很重要,而Jenkins就是持续集成的标志性工具。它是基于Java的纯Web UI操作的免费开源持续集成引擎,支持众多插件和开发语言等(参照图1-Jenkins界面)。
图1 -Jenkins界面
持续集成大致的工作流程分为以下几步(图2-Jenkins工作原理):
1、开发者将实现的代码模块或者修复的功能代码push到git server (Gitlab)上;
2、Jenkins构建触发器触发进行一次build请求(可配置触发构建方式);
3、Jenkins触发获取Gitlab上的代码,借助Maven构建插件进行编译,测试,反馈结果,打包等系列活动
4、构建结束后,触发Jenkins部署环境的配置(也可以是设置好的shell脚本)将程序包部署到对应的运行环境(测试环境或生产环境)中完成整个持续集成过程自动化。
图2-Jenkins工作原理
通过引入持续集成工具Jenkins,我们达到了如下目标:
l 持续 (Continuous):不断的获取问题反馈,响应修改问题;
l 集成 (Integration):编译、测试、构建、打包;
l 部署 (Deployment):应用组件或配置变更在部署环境中生效;
l 发布 (Release):具有完整业务逻辑的功能实现;
l 交付 (Delivery):可以理解为从 Deployment 到 Release 之间的阶段,更多的强调是一种持续化能力。
通过采用敏捷开发模式,使得我们的产品研发不必等待全部功能设计完成,即可快速启动开发,通过多轮迭代,逐步完善产品功能。在这个过程中,持续集成CI工具以及其他一些辅助工具的使用,确保了代码开发质量,并使得产品随时可编译、可交付,为产品研发带来了很大的灵活性与便利性,显著提高了产品研发的效率。