CN111143029B - 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 - Google Patents
基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 Download PDFInfo
- Publication number
- CN111143029B CN111143029B CN201911314517.7A CN201911314517A CN111143029B CN 111143029 B CN111143029 B CN 111143029B CN 201911314517 A CN201911314517 A CN 201911314517A CN 111143029 B CN111143029 B CN 111143029B
- Authority
- CN
- China
- Prior art keywords
- integration
- virtual machine
- callback
- service
- continuous
- 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.)
- Active
Links
- 230000010354 integration Effects 0.000 title claims abstract description 62
- 238000010276 construction Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 41
- 241001425718 Vagrans egista Species 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000013475 authorization Methods 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims 2
- 238000009434 installation Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Abstract
本发明公开了一种基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,属于虚拟机技术领域。本发明基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法基于Gitlab代码版本管理应用程序,利用其提供的回调集成功能,结合Keeper中间件服务,联动触发初始化、重置虚拟机运行时动作,实现虚拟机一致化、可伸缩的持续构建环境。该发明基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,具有很好的推广应用价值。
Description
技术领域
本发明涉及虚拟机技术领域,具体提供一种基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法。
背景技术
持续集成服务作为DevOps的本质特征,能否提供可一致性、可伸缩的持续构建环境是开发运维人员最为迫切的需求之一。一致的持续构建环境主要有两种存在形式:虚拟机和容器。本发明是基于虚拟机的形式。使用虚拟机形式的优点在于:
1、相较于容器共享系统内核,虚拟机有独立内核,具备更好的隔离性;
2、容器共享Docker后台服务,多任务同时进行时会造成排队。多台虚拟机独立运行,可实现多虚拟机同时运行多个Docker后台服务;
3、容器中构建镜像需要获得系统特权,有一定风险,虚拟机环境可以更安全构建Docker镜像。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种具有更好的隔离特性,用户无需考虑上次持续构建状态残留问题的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法。
为实现上述目的,本发明提供了如下技术方案:
基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,基于Gitlab代码版本管理应用程序,利用其提供的回调集成功能,结合Keeper中间件服务,联动触发初始化、重置虚拟机运行时动作,实现虚拟机一致化、可伸缩的持续构建环境。
Keeper中间件服务,集成Gitlab回调反馈,联动触发虚拟化管理工具,实现虚拟机管理服务。
作为优选,该基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法具体包括以下步骤:
S1、通过Keeper API注册用户授权访问令牌、仓库项目及注册令牌;
S2、在Gitlab回调集成服务注册Keeper API服务地址,选中管道事件内容类别;
S3、在Keeper中间件服务配置库中提供可用的IP资源;
S4、用户提交代码并提供.gitlab-ci.yml文件,触发管道方式持续构建流程;
S5、Keeper中间件服务监听回调集成获得持续构建信息,结合配置库注册信息生成构建虚拟机模板文件;
S6、Gitlab-CI服务使用虚拟机运行时一致性环境执行.gitlab-ci.yml定义的持续集成过程;
S7、持续集成过程执行成功或失败时,管道方式回调集成事件发送相应的状态事件;
S8、当同一仓库项目正在执行持续集成任务时,又产生其他管道方式回调集成事件,Keeper中间件服务将新到任务放入等待队列排队,同时将新启动的持续集成任务暂时置为取消状态。
由于Gitlab-CI持续集成服务定义文件(.gitlab-ci.yml)在不支持运行时修改目标执行环境标识,为保证执行环境一致性(避免同一环境执行另一次持续集成过程),Keeper中间件对同一代码仓库发起的多个并行持续构建任务,会将其他并行请求放队列排队处理。
作为优选,所述Gitlab提供回调集成外部服务的扩展能力,Gitlab-CI作为持续集成服务,提供基于管道方式的构建过程。
作为优选,在回调集成中产生管道构建各阶段的事件内容,Keeper中间件服务注册监听管道构建的事件内容,获得构建信息,结合配置数据,通过调用Gitlab API和Vagrant命令行触发后续管理、调度虚拟机过程。
Vagrant虚拟化管理工具,提供多种虚拟化应用平台一致调用接口。Vagrant虚拟化管理工具支持以模版文件(Vagrantfile)定制虚拟机安装配置内容,并按照此模版在VirtualBox虚拟化平台上构建生成虚拟机。Keeper中间件可以动态生成Vagrantfile,参照Gitlab-CI管道调度回调事件内容,通过Vagrant生成可被Gitlab Runner(为Gitlab-CI提供持续集成构建服务目的端调度服务)服务调度的虚拟机运行时环境并注册到Gitlab-CI服务。
作为优选,Keeper中间件服务提供API服务,负责调用Gitlab API及监听回调集成服务事件内容。在配置数据库存储Gitlab相应的用户、代码仓库和分配虚拟机资源的数据。结合用户授权访问令牌,代理租户方式访问Gitlab API,控制持续集成过程。
作为优选,步骤S3中,在Keeper中间件服务配置库中提供可用的IP资源,为创建持续集成服务的虚拟机通过网络注册给Gitlab-CI服务调度使用。
作为优选,步骤S5中,调用宿主机命令行接口创建虚拟机环境,虚拟机创建完成后,通过注册令牌注册给Gitlab-CI服务。
作为优选,步骤S7中,Keeper中间件服务根据收到的事件信息,销毁对应的虚拟机运行时环境,实现资源伸缩回收。
作为优选,步骤S8中,通过轮询方式,检测当前任务执行状态,待当前任务执行完成时,从队列中取出队列任务,重新启动之前暂停状态的持续集成任务。
本发明中,Gitlab代码版本库管理应用,提供Git形式的分布式代码协作流程服务。
与现有技术相比,本发明的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法具有以下突出的有益效果:所述基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法提供一致性持续构建环境,提供更好的隔离特性,用户无需考虑上次持续构建状态残留问题,根据管道方式回调事件创建、监测并销毁虚拟机环境,实现资源伸缩,具有良好的推广应用价值。
具体实施方式
下面将结合实施例,对本发明的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法作进一步详细说明。
实施例
本发明的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,基于Gitlab代码版本管理应用程序,利用其提供的回调集成功能,结合Keeper中间件服务,联动触发初始化、重置虚拟机运行时动作,实现虚拟机一致化、可伸缩的持续构建环境。其中Keeper中间件服务,集成Gitlab回调反馈,联动触发虚拟化管理工具,实现虚拟机管理服务。Gitlab代码版本库管理应用,提供Git形式的分布式代码协作流程服务。
该基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法具体包括以下步骤:
S1、通过Keeper API注册用户授权访问令牌、仓库项目及注册令牌。
S2、在Gitlab回调集成服务注册Keeper API服务地址,选中管道事件内容类别。
Gitlab提供回调集成外部服务的扩展能力,Gitlab-CI作为持续集成服务,提供基于管道方式的构建过程。在回调集成中产生管道构建各阶段的事件内容,Keeper中间件服务注册监听管道构建的事件内容,获得构建信息,结合配置数据,通过调用Gitlab API和Vagrant命令行触发后续管理、调度虚拟机过程。
Vagrant虚拟化管理工具,提供多种虚拟化应用平台一致调用接口。Vagrant虚拟化管理工具支持以模版文件(Vagrantfile)定制虚拟机安装配置内容,并按照此模版在VirtualBox虚拟化平台上构建生成虚拟机。Keeper中间件可以动态生成Vagrantfile,参照Gitlab-CI管道调度回调事件内容,通过Vagrant生成可被Gitlab Runner(为Gitlab-CI提供持续集成构建服务目的端调度服务)服务调度的虚拟机运行时环境并注册到Gitlab-CI服务。
S3、在Keeper中间件服务配置库中提供可用的IP资源。在Keeper中间件服务配置库中提供可用的IP资源,为创建持续集成服务的虚拟机通过网络注册给Gitlab-CI服务调度使用。
Keeper中间件服务提供API服务,负责调用Gitlab API及监听回调集成服务事件内容。在配置数据库存储Gitlab相应的用户、代码仓库和分配虚拟机资源的数据。结合用户授权访问令牌,代理租户方式访问Gitlab API,控制持续集成过程。
S4、用户提交代码并提供.gitlab-ci.yml文件,触发管道方式持续构建流程。
由于Gitlab-CI持续集成服务定义文件(.gitlab-ci.yml)在不支持运行时修改目标执行环境标识,为保证执行环境一致性(避免同一环境执行另一次持续集成过程),Keeper中间件对同一代码仓库发起的多个并行持续构建任务,会将其他并行请求放队列排队处理。
S5、Keeper中间件服务监听回调集成获得持续构建信息,结合配置库注册信息生成构建虚拟机模板文件。
调用宿主机命令行接口创建虚拟机环境,虚拟机创建完成后,通过注册令牌注册给Gitlab-CI服务。
S6、Gitlab-CI服务使用虚拟机运行时一致性环境执行.gitlab-ci.yml定义的持续集成过程。
S7、持续集成过程执行成功或失败时,管道方式回调集成事件发送相应的状态事件。
Keeper中间件服务根据收到的事件信息,销毁对应的虚拟机运行时环境,实现资源伸缩回收。
S8、当同一仓库项目正在执行持续集成任务时,又产生其他管道方式回调集成事件,Keeper中间件服务将新到任务放入等待队列排队,同时将新启动的持续集成任务暂时置为取消状态。通过轮询方式,检测当前任务执行状态,待当前任务执行完成时,从队列中取出队列任务,重新启动之前暂停状态的持续集成任务。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (6)
1.一种基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:该方法基于Gitlab代码版本管理应用程序,利用其提供的回调集成功能,结合Keeper中间件服务,联动触发初始化、重置虚拟机运行时动作,实现虚拟机一致化、可伸缩的持续构建环境,具体包括以下步骤:
S1、通过KeeperAPI注册用户授权访问令牌、仓库项目及注册令牌;
S2、在Gitlab回调集成服务注册KeeperAPI服务地址,选中管道事件内容类别,所述Gitlab提供回调集成外部服务的扩展能力,Gitlab-CI作为持续集成服务,提供基于管道方式的构建过程;
S3、在Keeper中间件服务配置库中提供可用的IP资源;
S4、用户提交代码并提供.gitlab-ci.yml文件,触发管道方式持续构建流程;
S5、Keeper中间件服务监听回调集成获得持续构建信息,结合配置库注册信息生成构建虚拟机模板文件,在回调集成中产生管道构建各阶段的事件内容,Keeper中间件服务注册监听管道构建的事件内容,获得构建信息,结合配置数据,通过调用GitlabAPI和Vagrant命令行触发后续管理、调度虚拟机过程;
S6、Gitlab-CI服务使用虚拟机运行时一致性环境执行.gitlab-ci.yml定义的持续集成过程;
S7、持续集成过程执行成功或失败时,管道方式回调集成事件发送相应的状态事件;
S8、当同一仓库项目正在执行持续集成任务时,又产生其他管道方式回调集成事件,
Keeper中间件服务将新到任务放入等待队列排队,同时将新启动的持续集成任务暂时置为取消状态。
2.根据权利要求1所述的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:Keeper中间件服务提供API服务,负责调用GitlabAPI及监听回调集成服务事件内容。
3.根据权利要求2所述的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:步骤S3中,在Keeper中间件服务配置库中提供可用的IP资源,为创建持续集成服务的虚拟机通过网络注册给Gitlab-CI服务调度使用。
4.根据权利要求3所述的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:步骤S5中,调用宿主机命令行接口创建虚拟机环境,虚拟机创建完成后,通过注册令牌注册给Gitlab-CI服务。
5.根据权利要求4所述的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:步骤S7中,Keeper中间件服务根据收到的事件信息,销毁对应的虚拟机运行时环境,实现资源伸缩回收。
6.根据权利要求5所述的基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,其特征在于:步骤S8中,通过轮询方式,检测当前任务执行状态,待当前任务执行完成时,从队列中取出队列任务,重新启动之前暂停状态的持续集成任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314517.7A CN111143029B (zh) | 2019-12-19 | 2019-12-19 | 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314517.7A CN111143029B (zh) | 2019-12-19 | 2019-12-19 | 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143029A CN111143029A (zh) | 2020-05-12 |
CN111143029B true CN111143029B (zh) | 2024-03-22 |
Family
ID=70518873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911314517.7A Active CN111143029B (zh) | 2019-12-19 | 2019-12-19 | 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143029B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363728B (zh) * | 2020-11-20 | 2023-07-18 | 浪潮软件科技有限公司 | 一种支持持续集成构建的跨平台编译方法及系统 |
CN114968344B (zh) * | 2022-07-28 | 2023-01-06 | 安元科技股份有限公司 | 一种基于Gitlab CI的微前端构建方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479100A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院软件研究所 | 一种普适计算环境虚拟机平台及其创建方法 |
CN102598017A (zh) * | 2009-11-13 | 2012-07-18 | 埃德图加拿大公司 | 保护Java字节码代码免受恶意运行环境中的静态和动态攻击的系统和方法 |
WO2012113336A1 (zh) * | 2011-02-23 | 2012-08-30 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
CN108037978A (zh) * | 2017-12-22 | 2018-05-15 | 天津津航计算技术研究所 | 一种基于虚拟化技术的计算资源管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9542222B2 (en) * | 2008-11-14 | 2017-01-10 | Oracle International Corporation | Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement |
-
2019
- 2019-12-19 CN CN201911314517.7A patent/CN111143029B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102598017A (zh) * | 2009-11-13 | 2012-07-18 | 埃德图加拿大公司 | 保护Java字节码代码免受恶意运行环境中的静态和动态攻击的系统和方法 |
CN102479100A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院软件研究所 | 一种普适计算环境虚拟机平台及其创建方法 |
WO2012113336A1 (zh) * | 2011-02-23 | 2012-08-30 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
CN108037978A (zh) * | 2017-12-22 | 2018-05-15 | 天津津航计算技术研究所 | 一种基于虚拟化技术的计算资源管理方法 |
Non-Patent Citations (2)
Title |
---|
周楠 ; 舒辉 ; 董卫宇 ; .基于虚拟机的网络测试环境搭建与调度自动化实现.信息工程大学学报.2008,(第01期),全文. * |
马征 ; 缪凯 ; 张广温 ; .浅析Kubernetes容器虚拟化技术.金融电子化.2018,(第06期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111143029A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190377604A1 (en) | Scalable function as a service platform | |
US8332479B2 (en) | Enterprise application server system and method | |
US6148323A (en) | System and method for managing the execution of system management | |
US10540499B2 (en) | Method for monitoring the security of a virtual machine in a cloud computing architecture | |
US11363117B2 (en) | Software-specific auto scaling | |
US8789058B2 (en) | System and method for supporting batch job management in a distributed transaction system | |
US20210389970A1 (en) | Vnf lifecycle management method and apparatus | |
US20120036252A1 (en) | Osgi-based heterogeneous service integrating system and method | |
US11630692B2 (en) | Efficient worker utilization | |
WO2011156922A1 (en) | Method and system for workload distributing and processing across a network of replicated virtual machines | |
JP2005196767A (ja) | ウェブ・サービス呼び出しをサポートするスケジューラ | |
EP3531280B1 (en) | Accelerator loading method and system, and accelerator loading apparatus | |
JPH06332870A (ja) | オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置 | |
US20100121904A1 (en) | Resource reservations in a multiprocessor computing environment | |
CN111143029B (zh) | 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 | |
US9342369B2 (en) | System and method for increasing throughput of a PaaS system | |
US20210185007A1 (en) | Integration of an orchestration services with a cloud automation services | |
CN113886089A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN115827183A (zh) | 一种基于组合优化的混合容器云环境下Serverless服务调度系统 | |
CN105100180A (zh) | 集群节点动态加载的方法、装置及系统 | |
KR19990087928A (ko) | 작업종료통지를제공하기위한방법및장치 | |
US20100122261A1 (en) | Application level placement scheduler in a multiprocessor computing environment | |
US8458716B2 (en) | Enterprise resource planning with asynchronous notifications of background processing events | |
JP2010218151A (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
JPH06348512A (ja) | 資源管理コンピュータ・システム |
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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 271000 Langchao science and Technology Park, 527 Dongyue street, Tai'an City, Shandong Province Applicant after: INSPUR SOFTWARE Co.,Ltd. Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant before: INSPUR SOFTWARE Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |