【知识产权代理】【专利服务】Tel:18215660330

一种持续交付方法与流程

专利2023-09-22  9



1.本发明涉及devops技术领域,特别是涉及一种持续交付方法。


背景技术:

2.持续交付理念源于devops领域的四个持续的过程之一,它的主要目标是打破开发、测试、运维活动之间的壁垒。提升整体开发生命周期的效率、以及提升开发过程中透明化、尽早的挖掘出产品代码的质量问题、安全问题。为客户做决策分析提供客观的数据作为评估的依据。在业界来源持续交付产品很多,在公有云产商都会基础自身的云环境来提供持续交付的产品,帮助上云的用户实现产品的快速交付。例如:阿里的云效平台、华为的devcloud、腾讯的蓝鲸平台、码云等,以及专门为企业客户提供服务的优维客户的easyops、u云的持续交付平台等等。所有的平台的目标是帮助客户能够实现代码的快速交付,并且能够使得代码质量可视化等维度尽可能的提供有效的服务。
3.持续交付是一种软件工程的方法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。依托的这种方法论,不同的产品研发该类产品的目标和维度是不一样的,在持续交付产品研发主要有如下类型的产商。例如:阿里、华为、腾讯、码云等。他们提供了一套适合自己的公有云模式的持续交付产品。它的核心是为根据自身提供的公有云平台之上为客户提供最佳实践。但是这个实践存在最大的缺陷是要求可以要遵循它提供的最佳实现模型,而不是根据客户诉求来定义的持续交付的标准。它的目的性从而导致难以适配企业型的客户业务特性。以及如何与线下的客户交付模型融合将成为最大的缺陷。
4.传统大型软件服务企业。例如:ibm、hp、mf、dell、redhat、微软等。作为传统的软件服务产商。它自身存在大量持续交付的链路中的产品。从而在构建链路线的时候,它们首先构建的一套基础他们自身产品的持续交付线。因为大型软件服务企业在多年积累后,每个持续交付的环节(编译、合规检测、单元验证、安全检测等等)都拥有的自己独立产品,再在之上构建的持续交付线成为了一套大量工具叠加的产品线。它们存在着一个很大的缺陷,与外部的持续交付的工具的集成性很弱。其次是产品非常庞大,企业难以快速适配,从而导致客户难以快速使用。再者,在持续交付中无法实时反馈执行状态和详细信息。
5.每类产商在设计持续交付产品过程中,因为根据自身的定位以及发展不同。来决定了持续交付过程的优缺点的不同。企业客户的特征是在持续交付过程中的使用的产品各有不同、交付的管理模式不同、环境特征也有不同,同时需求多变性等等。如何设计出一套适配不同行业的持续交付流水线是一个挑战的难题,也是现在大多在企业客户适配的持续交付流水线存在的一个很大的技术问题,即无法适配企业特殊的业务诉求,从而导致客户难以使用。


技术实现要素:

6.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种持续交付方法,用于解决现有技术中无法适配不同行业业务以及法实时反馈执行状态信息的问题。
7.为解决上述技术问题,本发明是按如下方式实现的:一种持续交付方法,所述方法包括以下步骤:
8.步骤1,根据业务场景建立持续交付流水线部署模型;
9.步骤2,配置所述持续交付流水线部署模型,生成部署清单;
10.步骤3,调用持续集成服务对所述持续交付流水线节点进行配置;
11.步骤4,对配置后的所述持续交付流水线节点进行审核,如果审核通过,根据所述部署清单对所述持续交付流水线节点执行部署任务,并且实时反馈执行信息。
12.进一步地,所述步骤1中,建立持续交付流水线部署模型包括以下步骤:
13.步骤1.1,备份对应业务场景的软件包;
14.步骤1.2,拷贝新的部署介质替换老的部署介质;
15.步骤1.3,执行部署脚本。
16.进一步地,所述步骤2中,配置所述持续交付流水线部署模型包括以下步骤:
17.步骤2.1,选择部署介质的服务器;
18.步骤2.2,配置部署脚本的动态参数。
19.进一步地,所述步骤3中,调用持续集成服务对所述持续交付流水线节点进行配置包括以下步骤:
20.步骤3.1,所述持续交付流水线节点调用持续集成服务的编译构建执行接口、合规检查执行接口和安全检查执行接口,向消息队列分别发送执行任务消息;
21.步骤3.2,驱动程序接收到执行任务消息后,收集执行日志通过消息队列回传给持续集成服务;
22.步骤3.3,持续集成服务把执行日志信息持久化到数据库中,并且推送给所述持续交付流水线节点。
23.进一步地,所述步骤4中,对所述持续交付流水线节点的审核包括编译构建审核、合规检查审核和安全检查审核。
24.进一步地,还包括看板模块,用于提供所述持续交付流水线节点的配置执行信息。
25.如上所述,本发明的一种持续交付方法,通过巧妙的设计,从原始业务需求到最终产品部署到各个环境这个过程中,需求以小批量形式在团队的各个角色间顺畅流动,能够以较短地周期完成需求的小粒度频繁交付,同时带来实时执行状态信息的反馈,相比于传统的瀑布式软件团队,更少浪费。
附图说明
26.图1显示为本发明实施例中一种持续交付方法的流程图。
具体实施方式
27.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实
施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
28.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
29.请参阅图1,本发明提供一种持续交付方法,方法包括以下步骤:
30.步骤1,根据业务场景建立持续交付流水线部署模型,本发明不受行业的限制,只要该领域有研发、运维活动均可适配,例如:银行、证券、保险、汽车、制造、快消、酒店等等大型企业,如以下步骤进行:
31.步骤1.1,备份对应业务场景的软件包;
32.步骤1.2,拷贝新的部署介质替换老的部署介质;
33.步骤1.3,执行部署脚本,部署脚本包括启停脚本和巡检脚本。
34.步骤2,配置持续交付流水线部署模型,如以下步骤进行:
35.步骤2.1,调用cmdb服务选择部署介质的服务器。配置管理数据库(configuration management database,cmdb)是一个逻辑数据库,包含了配置项全生命周期的信息以及配置项之间的关系(包括物理关系、实时通信关系、非实时通信关系和依赖关系)。cmdb存储与管理企业it架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。
36.步骤2.2,配置部署脚本的动态参数。
37.当配制好持续交付流水线部署模型后,通过webdeploy服务生成部署清单持久化到数据库。webdeploy为一个采用全面的发布和部署机制的免费服务器技术。webdeploy不仅仅让你发布文件,还可以部署数据库结构,运行变更的数据库脚本,设置安全访问控制列表等等。所有这些部署步骤都可以用visualstudio自动完成。web部署工具可简化iisweb服务器、web应用程序和网站的迁移、管理和部署工作。管理员可以通过命令行脚本运行web部署工具。
38.步骤3,调用持续集成服务对持续交付流水线节点进行配置,如以下步骤进行:
39.步骤3.1,持续交付流水线节点调用持续集成服务的编译构建执行接口、合规检查执行接口和安全检查执行接口,向消息队列分别发送执行任务消息。
40.步骤3.2,驱动程序接收到执行任务消息后,收集执行日志通过消息队列回传给持续集成服务。
41.步骤3.3,持续集成服务把执行日志信息持久化到数据库中,并且推送给持续交付流水线节点。
42.持续交付流水线节点调用持续集成服务的编译构建执行接口,持续集成服务通过kafka消息队列发送一条执行编译构建任务的消息。jenkins驱动程序接收到消息通过sonarqube检测并且开始执行任务,并收集执行日志通过kafka消息队列回传给持续集成服务。持续集成服务接收到日志信息持久化到数据库并通过websocket推送给持续交付流水线节点。
43.持续交付流水线节点调用持续集成服务的合规检查执行接口,持续集成服务通过kafka消息队列发送一条执行编译构建任务的消息。jenkins驱动程序接收到消息通过sonarqube检测并且开始执行任务,并收集执行日志通过kafka消息队列回传给持续集成服务。持续集成服务接收到日志信息持久化到数据库并通过websocket推送给持续交付流水线节点。
44.持续交付流水线节点调用持续集成服务的安全检查执行接口,持续集成服务通过kafka消息队列发送一条执行编译构建任务的消息。jenkins驱动程序接收到消息通过sonarqube检测并且开始执行任务,并收集执行日志通过kafka消息队列回传给持续集成服务。持续集成服务接收到日志信息持久化到数据库并通过websocket推送给持续交付流水线节点。
45.sonarqube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误.
46.jenkins是开源自动化运维驱动工具,方便用户安装和配置软件开发项目,提高软件开发效率,保证软件开发质量,方便用户持续部署项目和测试项目。
47.websocket是html5开始提供的一种在单个tcp连接上进行全双工通讯的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocket api中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
48.步骤4,对配置后的持续交付流水线节点进行审核,该审核包括编译构建审核、合规检查审核和安全检查审核。如果审核通过,根据部署清单对持续交付流水线节点执行部署任务,并且实时反馈执行信息。如果没有通过审核,则弹出意见表单页,填写后持续交付流水线发送邮件通知执行人。
49.持续交付流水线节点调用webdeploy服务部署任务执行接口,随后向kafka消息队列中发送一条执行部署任务的消息,ansible驱动程序接收到执行命令开始下发脚本到部署服务器,下发部署介质包到服务器。随后,执行备份脚本,执行部署介质替换脚本,执行启动脚本,执行应用巡检脚本。收集执行日志通过kafka消息队列回传给webdeploy服务,webdeploy接收到日志信息持久化到数据库并通过websocket推送给持续交付流水线节点。
50.ansible提供一种最简单的方式用于发布、管理和编排计算机系统的工具。ansible是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用ssh进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展执行应用巡检脚本。
51.本方法还包括看板模块,用于提供持续交付流水线节点的配置执行信息。例如质量管理员关心的是代码合规、安全问题,开发人员关心编译构建成功或者失败,测试人员关心应用系统测试报告,运维人员关心基础架构相关信息。用户可以通过该看板模块查看相关信息。
52.综上所述,本发明的一种持续交付方法,通过巧妙的设计,从原始业务需求到最终产品部署到各个环境这个过程中,需求以小批量形式在团队的各个角色间顺畅流动,能够以较短地周期完成需求的小粒度频繁交付,同时带来实时执行状态信息的反馈,相比于传统的瀑布式软件团队,更少浪费。所以,本发明有效克服了现有技术中的种种缺点而具有高
度产业利用价值。
53.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

技术特征:
1.一种持续交付方法,其特征在于,所述方法包括以下步骤:步骤1,根据业务场景建立持续交付流水线部署模型;步骤2,配置所述持续交付流水线部署模型,生成部署清单;步骤3,调用持续集成服务对所述持续交付流水线节点进行配置;步骤4,对配置后的所述持续交付流水线节点进行审核,如果审核通过,根据所述部署清单对所述持续交付流水线节点执行部署任务,并且实时反馈执行信息。2.根据权利要求1所述的一种持续交付方法,其特征在于,所述步骤1中,建立持续交付流水线部署模型包括以下步骤:步骤1.1,备份对应业务场景的软件包;步骤1.2,拷贝新的部署介质替换老的部署介质;步骤1.3,执行部署脚本。3.根据权利要求1所述的一种持续交付方法,其特征在于,所述步骤2中,配置所述持续交付流水线部署模型包括以下步骤:步骤2.1,选择部署介质的服务器;步骤2.2,配置部署脚本的动态参数。4.根据权利要求1所述的一种持续交付方法,其特征在于,所述步骤3中,调用持续集成服务对所述持续交付流水线节点进行配置包括以下步骤:步骤3.1,所述持续交付流水线节点调用持续集成服务的编译构建执行接口、合规检查执行接口和安全检查执行接口,向消息队列分别发送执行任务消息;步骤3.2,驱动程序接收到执行任务消息后,收集执行日志通过消息队列回传给持续集成服务;步骤3.3,持续集成服务把执行日志信息持久化到数据库中,并且推送给所述持续交付流水线节点。5.根据权利要求1所述的一种持续交付方法,其特征在于,所述步骤4中,对所述持续交付流水线节点的审核包括编译构建审核、合规检查审核和安全检查审核。6.根据权利要求1所述的一种持续交付方法,其特征在于,还包括看板模块,用于提供所述持续交付流水线节点的配置执行信息。

技术总结
本发明提供一种持续交付方法,方法包括以下步骤:步骤1,根据业务场景建立持续交付流水线部署模型;步骤2,配置持续交付流水线部署模型,生成部署清单;步骤3,调用持续集成服务对持续交付流水线节点进行配置;步骤4,对配置后的持续交付流水线节点进行审核,如果审核通过,根据部署清单对持续交付流水线节点执行部署任务,并且实时反馈执行信息。本发明从原始业务需求到最终产品部署到各个环境这个过程中,需求以小批量形式在团队的各个角色间顺畅流动,能够以较短地周期完成需求的小粒度频繁交付,同时带来实时执行状态信息的反馈,相比于传统的瀑布式软件团队,更少浪费。更少浪费。更少浪费。


技术研发人员:张斌
受保护的技术使用者:上海敏智信息科技有限公司
技术研发日:2021.06.09
技术公布日:2022/12/8
转载请注明原文地址: https://bbs.8miu.com/read-400134.html

最新回复(0)