CN110427192A - 一种it***持续集成和持续发布方法 - Google Patents
一种it***持续集成和持续发布方法 Download PDFInfo
- Publication number
- CN110427192A CN110427192A CN201910708196.2A CN201910708196A CN110427192A CN 110427192 A CN110427192 A CN 110427192A CN 201910708196 A CN201910708196 A CN 201910708196A CN 110427192 A CN110427192 A CN 110427192A
- Authority
- CN
- China
- Prior art keywords
- continuous integrating
- server
- jenkins
- published
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种IT***持续集成和持续发布方法,所述方法包括:提交代码至Gitlab代码仓库;每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;Jenkins持续集成引擎接收所述Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。本发明利用Gitlab的Webhook网络调用Jenkins服务的pipeline脚本实现了IT***的自动化持续集成和持续发布。
Description
技术领域
本发明涉及软件集成及发布技术领域,尤其涉及一种IT***持续集成和持续发布方法。
背景技术
在实际业务中,IT公司常常需要对线上***进行不定期的更新和发布,发布的内容包括代码和数据库信息等,但是大部分公司在发布***的时候,通常是人工登陆到需要发布的服务器,手动拉取代码、停止服务和启动服务,这样的人工发布方式通常会消耗大量的时间和人力;另外,如果一个***由多台服务器提供服务,人工发布不能在短时间保证所有的服务器都发布完毕,将可能造成线上***服务不统一、用户体验不足、脏数据等问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一,特别创新地提出了一种IT***持续集成和持续发布方法,利用Gitlab的Webhook网络调用Jenkins服务的pipeline脚本实现了IT***的自动化持续集成和持续发布。
为了实现本发明的上述目的,根据本发明的一个方面,本发明提供了一种IT***持续集成和持续发布方法,所述方法包括如下步骤:
提交代码至Gitlab代码仓库;
每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;
Jenkins持续集成引擎接收所述Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。
优选地,所述方法还包括:所述被发布服务器将***的发布日志回写给Jenkins持续集成引擎。
优选地,所述方法还包括:
配置至少三台服务器,包括一台代码存储服务器、一台持续集成服务器以及至少一台被发布服务器,所述代码存储服务器与所述持续集成服务器网络连接,所述持续集成服务器与所述被发布服务器网络连接,其中,所述代码存储服务器部署有Gitlab代码仓库,所述持续集成服务器部署有Jenkins持续集成引擎,所述被发布服务器用于执行代码部署。
优选地,所述通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布包括:
通过Jenkins持续集成引擎的Pipeline脚本依据预配置的SSH凭证远程调用被发布服务器执行发布。
优选地,所述方法还包括:
将所述SSH凭证写入所述被发布服务器。
由以上方案可知,本发明提供了一种IT***持续集成和持续发布方法,所述方法包括提交代码至Gitlab代码仓库;每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;Jenkins持续集成引擎接收所述Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。本发明利用Gitlab的Webhook网络调用Jenkins服务的pipeline脚本实现了IT***的自动化持续集成和持续发布,有效解决了现有技术中通过人工发布方式消耗大量的时间和人力的问题,以及当一个***由多台服务器提供服务,人工发布不能在短时间保证所有的服务器都发布完毕,将可能造成线上***服务不统一、用户体验不足、脏数据等问题。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明提供的一种优选实施方式中IT***持续集成和持续发布方法的流程示意图;
图2是本发明提供的一种优选实施方式中IT***持续集成和持续发布***的结构示意图;
图3是本发明提供的又一种优选实施方式中IT***持续集成和持续发布***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
根据本发明的一个方面,本发明提供了一种IT***持续集成和持续发布方法,如图1所示,方法包括如下步骤:
S101,提交代码至Gitlab代码仓库;
S102,每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;
S103,Jenkins持续集成引擎接收Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。
在本发明的一种优选实施方式中,所述方法还包括:被发布服务器将***的发布日志回写给Jenkins持续集成引擎。通过被发布服务器回写的日志观察发布的过程和评估发布的结果。
在本发明的一种优选实施方式中,所述方法还包括:
配置至少三台服务器,包括一台代码存储服务器、一台持续集成服务器以及至少一台被发布服务器,代码存储服务器与持续集成服务器网络连接,持续集成服务器与被发布服务器网络连接,其中,代码存储服务器部署有Gitlab代码仓库,持续集成服务器部署有Jenkins持续集成引擎,被发布服务器用于执行代码部署。
在本发明的一种优选实施方式中,所述通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布包括:
通过Jenkins持续集成引擎的Pipeline脚本依据预配置的SSH凭证远程调用被发布服务器执行发布。
在本发明的一种优选实施方式中,所述方法还包括:
将SSH凭证写入被发布服务器。
由以上方案可知,本实施例提供了一种IT***持续集成和持续发布方法,通过提交代码至Gitlab代码仓库;然后每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;最后Jenkins持续集成引擎接收Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。本实施例利用Gitlab的Webhook网络调用Jenkins服务的pipeline脚本实现了IT***的自动化持续集成和持续发布,有效解决了现有技术中通过人工发布方式消耗大量的时间和人力的问题,以及当一个***由多台服务器提供服务,人工发布不能在短时间保证所有的服务器都发布完毕,将可能造成线上***服务不统一、用户体验不足、脏数据等问题。
根据本发明的一个方面,本发明提供了一种IT***持续集成和持续发布***,如图2、图3所示,所述***包括:
一台代码存储服务器、一台持续集成服务器以及至少一台被发布服务器,代码存储服务器与持续集成服务器网络连接,持续集成服务器与被发布服务器网络连接,
其中,代码存储服务器部署有Gitlab代码仓库,持续集成服务器部署有Jenkins持续集成引擎,被发布服务器用于执行代码部署。
在本发明的一种优选实施方式中,Gitlab代码仓库提供有Webhook应用,可以在每次代码提交时对Jenkins持续集成引擎发起一次网络调用;
Jenkins持续集成引擎接收到Gitlab代码仓库发起的网络调用后,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。
在本发明的一种优选实施方式中,***还包括:
被发布服务器将***的发布日志回写给Jenkins持续集成引擎。
具体地,如图2所示,通过本***实现IT***持续集成和持续发布至一台被发布服务器的流程如下:
1、准备三台Linux服务器分别称为A服务器,B服务器和C服务器,ABC台服务器之间可以网络互通;
2、A服务器部署Gitlab服务用于存储代码,B服务器部署Jenkins服务用于提供持续集成和持续部署服务,C服务器用于代码部署;
3、Gitlab服务提供有Webhook功能,可以在每次代码提交的时候对Jenkins发起一次网络调用;
4、Jenkins服务接收Gitlab的网络调用,并通过Jenkins提供的pipeline脚本功能,实现远程ssh到C服务器执行发布。
5、C服务器将***发布的日志回写给Jenkins服务,以此来观察发布的过程和评估发布的结果。
通过上述流程可以实现将代码持续集成和持续发布至一台被发布服务器。
具体地,如图3所示,通过本***实现IT***持续集成和持续发布至若干台被发布服务器的流程如下:
1、准备若干台Linux服务器分别称为A服务器,B服务器和若干服务器,A服务器和B服务器以及B服务器和若干服务器之间可以网络互通;
2、A服务器部署Gitlab服务用于存储代码,B服务器部署Jenkins服务用于提供持续集成和持续部署服务,其它的若干服务器用于代码部署;
3、Gitlab服务提供有Webhook功能,可以在每次代码提交的时候对Jenkins发起一次网络调用;
4、Jenkins服务接收Gitlab的网络调用,并通过Jenkins提供的pipeline脚本功能,实现远程ssh到其它的若干服务器执行发布。
5、若干用于发布的服务器将***发布的日志回写给Jenkins服务,以此来观察发布的过程和评估发布的结果。
通过上述流程可以实现将代码持续集成和持续发布至多台被发布服务器。
由以上方案可知,本实施例提供了一种IT***持续集成和持续发布***,该***包括一台代码存储服务器、一台持续集成服务器以及至少一台被发布服务器,代码存储服务器与持续集成服务器网络连接,持续集成服务器与被发布服务器网络连接,其中,代码存储服务器部署有Gitlab代码仓库,持续集成服务器部署有Jenkins持续集成引擎,被发布服务器用于执行代码部署。该***在执行持续集成和持续发布工作流程时,首先提交代码至Gitlab代码仓库;然后每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;最后Jenkins持续集成引擎接收Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。本实施例利用Gitlab的Webhook网络调用Jenkins服务的pipeline脚本实现了IT***的自动化持续集成和持续发布,有效解决了现有技术中通过人工发布方式消耗大量的时间和人力的问题,以及当一个***由多台服务器提供服务,人工发布不能在短时间保证所有的服务器都发布完毕,将可能造成线上***服务不统一、用户体验不足、脏数据等问题。
根据本发明的一个方面,本发明提供了一种IT***持续集成和持续发布装置,所述装置包括:
存储器,用于存放程序;
处理器,用于执行程序,程序使得处理器执行上述方法实施例中的IT***持续集成和持续发布方法。
根据本发明的一个方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述方法实施例中的IT***持续集成和持续发布方法所包含的步骤。
本实施例中,所述IT***持续集成和持续发布***集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种IT***持续集成和持续发布方法,其特征在于,所述方法包括:
提交代码至Gitlab代码仓库;
每次代码提交时触发Gitlab代码仓库的Webhook应用对Jenkins持续集成引擎发起一次网络调用;
Jenkins持续集成引擎接收所述Gitlab代码仓库发起的网络调用,通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布。
2.根据权利要求1所述的IT***持续集成和持续发布方法,其特征在于,所述方法还包括:所述被发布服务器将***的发布日志回写给Jenkins持续集成引擎。
3.根据权利要求1所述的IT***持续集成和持续发布方法,其特征在于,还包括:
配置至少三台服务器,包括一台代码存储服务器、一台持续集成服务器以及至少一台被发布服务器,所述代码存储服务器与所述持续集成服务器网络连接,所述持续集成服务器与所述被发布服务器网络连接,其中,所述代码存储服务器部署有Gitlab代码仓库,所述持续集成服务器部署有Jenkins持续集成引擎,所述被发布服务器用于执行代码部署。
4.根据权利要求1-3任意一项所述的IT***持续集成和持续发布方法,其特征在于,所述通过Jenkins持续集成引擎的Pipeline脚本远程调用被发布服务器执行发布包括:
通过Jenkins持续集成引擎的Pipeline脚本依据预配置的SSH凭证远程调用被发布服务器执行发布。
5.根据权利要求4所述的IT***持续集成和持续发布方法,其特征在于,还包括:
将所述SSH凭证写入所述被发布服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910708196.2A CN110427192A (zh) | 2019-08-01 | 2019-08-01 | 一种it***持续集成和持续发布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910708196.2A CN110427192A (zh) | 2019-08-01 | 2019-08-01 | 一种it***持续集成和持续发布方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110427192A true CN110427192A (zh) | 2019-11-08 |
Family
ID=68413731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910708196.2A Pending CN110427192A (zh) | 2019-08-01 | 2019-08-01 | 一种it***持续集成和持续发布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427192A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908670A (zh) * | 2019-11-20 | 2020-03-24 | 天津华云软件有限公司 | 一种自动发布服务的方法及装置 |
CN111090458A (zh) * | 2019-12-18 | 2020-05-01 | 广州唯品会信息科技有限公司 | 灰度发布***和基于灰度发布***的应用发布方法 |
CN112835642A (zh) * | 2021-02-02 | 2021-05-25 | 上海易校信息科技有限公司 | 一种向外部***推送数据的方法 |
GB2611799A (en) * | 2021-10-15 | 2023-04-19 | Ruken Tech Ltd | A computer-implemented method and apparatus for performing continuous integration of a software change |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775912A (zh) * | 2016-12-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 软件发布方法及*** |
CN108268308A (zh) * | 2018-01-22 | 2018-07-10 | 广州欧赛斯信息科技有限公司 | 一种基于容器平台的持续集成方法、***及装置 |
US20180210822A1 (en) * | 2017-01-23 | 2018-07-26 | Accenture Global Solutions Limited | Cloud connected automated testing in multiple operating environments using multiple parallel test threads |
CN109189680A (zh) * | 2018-08-24 | 2019-01-11 | 苏州玩友时代科技股份有限公司 | 一种应用发布和配置的***及方法 |
CN109814879A (zh) * | 2019-01-16 | 2019-05-28 | 福建省天奕网络科技有限公司 | 自动化ci/cd项目部署方法、存储介质 |
US20190180006A1 (en) * | 2017-12-07 | 2019-06-13 | International Business Machines Corporation | Facilitating build and deploy runtime memory encrypted cloud applications and containers |
-
2019
- 2019-08-01 CN CN201910708196.2A patent/CN110427192A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775912A (zh) * | 2016-12-15 | 2017-05-31 | 广州视源电子科技股份有限公司 | 软件发布方法及*** |
US20180210822A1 (en) * | 2017-01-23 | 2018-07-26 | Accenture Global Solutions Limited | Cloud connected automated testing in multiple operating environments using multiple parallel test threads |
US20190180006A1 (en) * | 2017-12-07 | 2019-06-13 | International Business Machines Corporation | Facilitating build and deploy runtime memory encrypted cloud applications and containers |
CN108268308A (zh) * | 2018-01-22 | 2018-07-10 | 广州欧赛斯信息科技有限公司 | 一种基于容器平台的持续集成方法、***及装置 |
CN109189680A (zh) * | 2018-08-24 | 2019-01-11 | 苏州玩友时代科技股份有限公司 | 一种应用发布和配置的***及方法 |
CN109814879A (zh) * | 2019-01-16 | 2019-05-28 | 福建省天奕网络科技有限公司 | 自动化ci/cd项目部署方法、存储介质 |
Non-Patent Citations (2)
Title |
---|
孙琼;罗光峰;: "新一代运营***中持续交付平台的实现" * |
徐星;李银桥;刘学锋;毛建华;: "企业开发、测试环境快速部署方案的设计与实现" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908670A (zh) * | 2019-11-20 | 2020-03-24 | 天津华云软件有限公司 | 一种自动发布服务的方法及装置 |
CN111090458A (zh) * | 2019-12-18 | 2020-05-01 | 广州唯品会信息科技有限公司 | 灰度发布***和基于灰度发布***的应用发布方法 |
CN111090458B (zh) * | 2019-12-18 | 2023-08-18 | 广州唯品会信息科技有限公司 | 灰度发布***和基于灰度发布***的应用发布方法 |
CN112835642A (zh) * | 2021-02-02 | 2021-05-25 | 上海易校信息科技有限公司 | 一种向外部***推送数据的方法 |
GB2611799A (en) * | 2021-10-15 | 2023-04-19 | Ruken Tech Ltd | A computer-implemented method and apparatus for performing continuous integration of a software change |
GB2611799B (en) * | 2021-10-15 | 2024-01-17 | Ruken Tech Ltd | A computer-implemented method and apparatus for performing continuous integration of a software change |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427192A (zh) | 一种it***持续集成和持续发布方法 | |
US9697042B2 (en) | Extensibility of business process and application logic | |
CN107133788B (zh) | 一种退款处理方法及装置 | |
CN110910230A (zh) | 一种记账方法、记账***及存储介质 | |
CN112785334A (zh) | 电子资源的分配方法及装置 | |
CN110750780B (zh) | 基于多业务***的用户角色权限融合方法、装置以及设备 | |
CN110111112A (zh) | 数据处理方法及装置 | |
CN105827563B (zh) | 信息验证方法、中间平台和业务支撑*** | |
CN110427193A (zh) | 一种互联网***持续集成和发布*** | |
CN110111188B (zh) | 业务办理方法及设备 | |
CN110148019A (zh) | 信息流运营模板创建方法和信息流运营模板创建*** | |
US20240176605A1 (en) | Method and apparatus for application deployment in software-as-a-service platform and storage medium | |
CN111476478B (zh) | 美术计划任务的处理方法和装置 | |
CN111061573A (zh) | 资源转移方法、装置、电子设备及存储介质 | |
CN111429125B (zh) | 账户管理方法、装置、存储介质及电子设备 | |
CN114493756A (zh) | 一种资源管理方法、装置、设备及存储介质 | |
US20030135353A1 (en) | User-executable method for complex model data analysis and associated system, computer device, and computer software program product | |
CN103914514A (zh) | 控制业务凭证输出方式的方法及*** | |
CN111382187B (zh) | 数据提取方法及装置 | |
CN115729946B (zh) | 一种处理分布式事务的方法、装置、设备及存储介质 | |
CN110782297B (zh) | 电子***的开票方法及装置 | |
WO2016201977A1 (zh) | 一种话单处理方法及装置 | |
CN110196895B (zh) | 用户数据信息自助查询方法、装置、计算机设备及存储介质 | |
CN113467788A (zh) | 一种服务上线方法、装置、电子设备以及存储介质 | |
CN116188190A (zh) | 一种高并发支付***多批次半实时对账方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |