[发明专利]一种基于异步机制的分布式的CI/CD的实现方法有效
| 申请号: | 201910764024.7 | 申请日: | 2019-08-19 |
| 公开(公告)号: | CN110471648A | 公开(公告)日: | 2019-11-19 |
| 发明(设计)人: | 孙鹏 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/38;G06F8/41;G06F11/36 |
| 代理公司: | 37100 济南信达专利事务所有限公司 | 代理人: | 阚恭勇<国际申请>=<国际公布>=<进入 |
| 地址: | 250100 山东省*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 异步通信机制 分布式架构 计算机软件 系统健壮性 扩展性 产品交付 进程阻塞 软件开发 通信机制 异步机制 用户请求 用户体验 资源占用 迭代 部署 架构 标准化 响应 发布 改造 决策 | ||
1.一种基于异步机制的分布式的CI/CD的实现方法,其特征在于,
包括如下步骤:
S1:与Github、Gitlab集成,建立webhook,在代码变更时或直接触发重新构建时,master创建构建任务;
S2:master直接根据代码分支所处的阶段及服务器负载情况,选择对应的worker发送构建任务;
S3:worker接收到任务,根据代码分支选择镜像、创建容器、更新代码,进行代码编译、单元测试的持续集成操作,并直接返回任务创建状态以响应master的构建请求;
S4:持续集成依赖容器化技术,每个构建创建一个容器,并将构建过程按规则输出到日志文件中,然后对日志文件进行读取和更新,并更新构建状态及状态信息到数据库;
S5:通过定时任务,将构建的状态及状态信息返回到master并进行存储,借助即时提醒更新功能,实时、动态更新界面UI的构建状态及状态信息;
S6:构建成功后,根据代码分支所处阶段,借助容器化技术,直接在不同的环境进行部署并发布为可用服务。
2.根据权利要求1所述的方法,其特征在于,
在S1之前包含:创建或选择Github、Gitlab代码仓库,并与PaaS平台项目之间创建webhook,确保在Github、Gitlab代码仓库变化时及时、自动更新PaaS平台项目分支的状态,进而自动触发构建流程;另外,在S1中,用户可以根据自身需求,手动触发构建流程;
所述构建流程,包含master选择worker、发送构建任务,worker选择镜像、创建容器、更新代码、单元测试的流程。
3.根据权利要求2所述的方法,其特征在于,
触发构建流程后,master根据任务类型创建构建任务,与其他的待构建或构建中的任务形成任务队列,构建过程中会根据任务的编号(job_id)进行异步回调,更新任务的状态,直至构建结束后删除构建任务;
所述任务类型,是指对代码分支对应的容器的不同操作,包含:新建、更新、数据导入、数据回滚、停止、删除;
所述任务状态,包含:新建、构建中、异常三种状态,任务出现异常状态时,任务异常信息亦会同时更新。
4.根据权利要求1所述的方法,其特征在于,
master根据分支所处阶段、负载情况等计算、选择合适的worker进行任务分流,并向选定的worker发送构建任务请求:
master根据所选worker的不同url地址,对发送请求进行抽象化处理,发送到对应的worker,由对应worker的统一接口进行接收,并根据不同的任务类型进行不同的操作;
worker接收到任务后,会根据PaaS平台项目选择对应的镜像开始构建,并将任务创建结果立即返回响应给master,结束master的请求,此时master开始更新构建状态。
5.根据权利要求4所述的方法,其特征在于,
worker上开始构建,拉取镜像、创建数据库及数据库用户,创建容器时根据构建信息更新环境配置,并将更新后的代码映射到容器中,容器与其对应的数据库之间建立连接,编译、运行代码,并根据不同的任务类型生成对应的日志文件,将构建过程中产生的日志输出到日志文件中;
所述构建,是指:代码更新之后对其进行编译,并进行单元测试;对于用户的线上环境,平台会自动忽略单元测试,只对测试环境和开发环境进行单元测试,且单元测试的覆盖程度与容器内代码有关;
所述日志文件会在根据每个容器构建信息生成的文件目录中统一进行管理,及每个容器都会有一个单独的文件存放日志文件,构建过程中,用户可以直接在master web UI中根据需要查看全部的日志并根据条件过滤日志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910764024.7/1.html,转载请声明来源钻瓜专利网。





