CN111143029B - 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 - Google Patents

基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 Download PDF

Info

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
Application number
CN201911314517.7A
Other languages
English (en)
Other versions
CN111143029A (zh
Inventor
王锟
王建华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Inspur Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201911314517.7A priority Critical patent/CN111143029B/zh
Publication of CN111143029A publication Critical patent/CN111143029A/zh
Application granted granted Critical
Publication of CN111143029B publication Critical patent/CN111143029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

本发明公开了一种基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,属于虚拟机技术领域。本发明基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法基于Gitlab代码版本管理应用程序,利用其提供的回调集成功能,结合Keeper中间件服务,联动触发初始化、重置虚拟机运行时动作,实现虚拟机一致化、可伸缩的持续构建环境。该发明基于Gitlab‑CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法,具有很好的推广应用价值。

Description

基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构 建环境的方法
技术领域
本发明涉及虚拟机技术领域,具体提供一种基于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中,通过轮询方式,检测当前任务执行状态,待当前任务执行完成时,从队列中取出队列任务,重新启动之前暂停状态的持续集成任务。
CN201911314517.7A 2019-12-19 2019-12-19 基于Gitlab-CI回调集成实现虚拟机一致、自动伸缩的持续构建环境的方法 Active CN111143029B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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