[发明专利]一种智能化持续集成与持续部署流水线方法及系统有效
申请号: | 201810744917.0 | 申请日: | 2018-07-09 |
公开(公告)号: | CN108958721B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 朱家鑫;陈伟;高楚舒;魏峻;杨丰 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 安丽;成金玉 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能化 持续 集成 部署 流水线 方法 系统 | ||
本发明提供一种智能化持续集成与持续部署流水线方法及系统,收集开放协作平台上可被访问的项目的持续集成与持续部署配置文件及使用的开发语言、开发框架信息,构建持续集成与持续部署流水线任务库及配置模板库,根据项目使用的开发语言、开发框架推荐流水线配置,对持续集成与持续部署过程中任务的执行进行综合监控、度量分析和记录,根据规则、历史数据、任务间关系、任务输入文件的变更对流水线中任务的执行进行动态调节。本发明能够提高持续集成的效果,降低持续集成的开销。
技术领域
本发明涉及持续集成与持续部署的技术领域,尤其涉及一种智能化持续集成与持续部署流水线方法及系统。
背景技术
持续集成是软件开发中的一项重要实践。Grady Booch于1994年最先提出持续集成的理念,随后,Kent Beck与Ron Jeffrie在他们提出的极限编程方法(ExtremeProgramming)中推广了持续集成。
持续集成的基本的思想是软件开发团队中所有开发者的工作要持续地集成到一条共享的开发主线上,集成过程包括了代码的合并、编译、构建、测试等任务,该方法的持续性表现为每天进行若干次这样的集成过程。
持续集成通过不断地合并和检查各个开发者的代码变更来及早发现他们之间的冲突和质量问题。
对于互联网应用等需要部署的软件系统,持续集成从开发阶段延伸到部署阶段便产生了持续部署。
持续部署可以加快软件产品的更新迭代速度,及时将软件的变更推送给用户,有效提升用户体验。
Jenkins、TrvaisCI等持续集成工具(服务)通过流水线技术实现了持续集成的过程的高度自动化。
持续集成与持续部署流水线包括了持续集成与持续部署任务及其配置、任务间的依赖关系以及任务的自动执行机构。
用户编写流水线配置文件,持续集成工具(服务)根据配置文件执行流水线中的任务。
持续集成与持续部署的频率、时机以及任务的选择对其效率具有很大的影响,过高的频率和不必要的任务会造成计算资源的过度开销、集成与部署周期的延长,并给开发者带来过多的干扰,过低的频率以及不完备的任务则无法达到提高开发效率与软件质量的目标。
现有工具虽然能够自动化持续集成和持续部署的过程,但是开发者需要根据经验配置持续集成和持续部署流水线,并且一个项目开发的上下文是在持续变化的,开发者难以手工地针对这些变化对配置进行实时的、有效的调整。
因此,软件项目及软件开发者迫切需要一种智能推荐、自动调节的持续集成与持续部署流水线,用以提高持续集成与持续部署的效果并降低开销。
发明内容
本发明所要解决的技术问题是:克服现有技术的不足,提供一种能够感知开发活动及其上下文、评估持续集成与持续部署任务执行效果并进行推荐和自动调优的持续集成与持续部署流水线方法及系统,以提高持续集成和持续部署的效果并降低开销。
本发明技术解决方案:本发明的一种智能化持续集成与持续部署流水线方法,包括:
(1)收集开放协作平台上可被访问的项目的持续集成与持续部署配置文件及项目使用的开发语言、开发框架信息,构建持续集成与持续部署流水线任务库及配置模板库;
(2)针对(1)中所述的持续集成与持续部署流水线任务库中的每一项任务构建一套可选、可配置的任务执行规则;
(3)获取本方法服务的用户项目使用的开发语言、开发框架,根据其使用的开发语言、开发框架从(1)中所述的持续集成与持续部署流水线任务库及配置模板库中推荐流水线配置模板与流水线任务,用户在推荐下完成流水线的配置,最终形成用户项目的持续集成与持续部署流水线;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810744917.0/2.html,转载请声明来源钻瓜专利网。