您的位置:首页 > 科技 > 能源 > cicd的基本概念

cicd的基本概念

2024/11/19 17:26:34 来源:https://blog.csdn.net/anguoan/article/details/139412005  浏览:    关键词:cicd的基本概念

一.gitlab-cicd技术点

DevOps CI/CD理念与主流工具

DevOps 运动的兴起给业界提供了一个参考答案。其中CI 和 CD两个理念就是解决开发者和运维协同工作的一剂良方。

CI 是 Continuous Integration 的缩写,表示持续集成。CD 是 Continuous Delivery 的缩写,表示持续交付,有时CD也表示持续部署(Continuous Deployment)。

持续集成的要求是代码提交后,管理工具在检测到代码变更后,会自动拉取分支代码进行构建,包括编译与单元测试。有更高要求的,还要完成模块测试与集成测试。

持续交付则是在持续集成的基础上,提交可用于生产环境部署的正式程序、代码与配置文件。在持续交付阶段,也要进行程序的自动化测试,并实现自动化发布。

持续部署是在持续交付的基础上,将代码变更应用到生产环境中。它可以借助多种自动化的部署手段,实现程序的平滑升级/回滚。

市场上已经有多款工具可供选择,包括GitLab CI/CD、Jenkins、Circle CI、Pipelines等。我们对最主流的两款工具进行介绍。

Jenkins发布于2011年,因其丰富的插件生态、并行执行能力和活跃的社区,赢得了广泛的支持。但Jenkins也有不足,那就是其与代码托管仓库之间的数据交换。

2015年,GitLab CI/CD发布,除了出色的CI/CD功能,还能够轻松管理git源码库,逐渐成为非常受欢迎的DevOps CI/CD工具。

1.代码托管工具

  1. 可协同:在功能层面要包含仓库管理、分支管理、权限管理、提交管理、代码评审等代码存储和版本管理等功能,让开发者更好的协同工作;
  2. 可集成:好的代码托管服务应该具备灵活和简易的三方工具集成能力,降低 DevOps 的实施落地成本 ;
  3. 安全可靠:这是最重要的一点,对于个人开发者可能无感,但是对于企业而言,代码的安全性、服务的稳定性、数据是否存在丢失的风险,是会最被优先考量的点。

常用代码托管工具见下表:

组件

gitlab

Gitee

GitHub

云托管

企业级

支持企业级,收费

企业级,免费

企业级,免费

企业级,收费

搭建环境

不需要搭建

不需要搭建

需要搭建

不需要搭建

存储环境

不受企业控制

不受企业控制

企业控制

不受企业控制

2.集成流水线工具

集成流水线就像传统的工业流水线一样,在经历构建、测试、交付之后,生产出一代一代更新迭代的软件版本。实现了软件产品小步迭代、高频发布、适时集成、稳定的系统演进线路图。在选择集成流水线工具的时候,我们需要关注:

  1. 版本控制工具的支持;
  2. 每个构建是否可以支持指定多个代码源 URLS;
  3. 是否支持构建产物管理库,如公有云对象存储等;
  4. 是否支持部署流水线,类似于一个或多个构建完成后触发另一个构建;
  5. 是否支持并行构建;
  6. 是否支持构建网格,以及对网格内机器管理的能力。如能否将多个构建同时分配到多个构建机器上执行,以提高执行速度;
  7. 是否有良好的开放 API,比如触发构建 API、结果查询 API、标准的 Report 接口等;
  8. 账户体系,是否支持第三方账户接入,如企业 LDAP 等;
  9. 是否有良好的 Dashboard;
  10. 多语言支持;
  11. 与构建工具(如 Maven,Make,Rake,Nant、Node 等)和测试工具的集成。

组件

Jenkins

gitlab-cicd

Walle

Zading

开源/商业性

开源

开源

开源

开源/商用

产品类型

自托管/本地部署

自托管/本地部署

自托管/本地部署

自托管/本地部署

内置cicd

自定义cicd部署

内置cicd

内置cicd

内置cicd

独特功能

插件

统一集成代码管理

易操作的webui

测试环境一键部署

安装配置

简单

简单

简单

简单

构建piplines

支持插件1k+

支持

支持

支持

cicd部署面板

部分支持

最近状态,单页面支持

完美部署面板

完美部署面板

代码质量

sonarqube插件

内置

sonarqube插件

sonarqube插件

3.服务注册发现工具

服务发现为 Deploy 的最后环节,缺一不可。无论是四七层负载均衡,还是微服务、RPC 服务框架,服务发现都是产品投产的临门一脚。服务注册发现工具选型需要从生态发展、便利性、语言无关性等角度来综合考量。

常用的组件工具如下表:

4.持续监控

服务的稳定性离不开监控系统的保驾护航。监控系统为服务稳定运行提供数据可视化、异常报警、异常定位、故障追踪等能力;同时监控系统还为服务持续优化升级提供依据和考量标准。

监控系统有三大基石:指标、日志、分布式追踪。

指标体系:聚焦于故障发现环节,服务以数字形式评估出服务 QPS、成功率、延迟、容量等关键指标,搭配报警系统可以保证当核心指标异常时及时通知开发 / 运维人员。除了核心指标外,服务还可以将各模块 / 阶段的瓶颈点、外部依赖指标量化,建立更加完善服务状态概览,以便服务开发 / 运维人员快速定位异常,完成根因分析。指标系统优势是聚合能力,用较少的存储资源和计算资源表达系统内部状态。

常用工具及功能对照如下:

二.cici工作流程 

用过 GitLab 的同学肯定也对 GitLab CI/CD 不陌生,GitLab CI/CD 是一个内置在 GitLab 中的工具,它可以帮助我们在每次代码推送时运行一系列脚本来构建、测试和验证代码的更改以及部署。

GitLab CI 的基本流程如下:

1. 开发人员推送代码

2. 触发 GitLab CI 启动

3. runner 执行预定义脚本

项目部署流程

1. 开发人员提交代码到GitLab仓库。

2. 触发GitLab 流水线创建,Runner 执行 .gitlab-ci.yml 定义的 stages。

3. 将制作好的镜像推送到已有的镜像仓库,供后续的Deploy流程使用。

4. 通过Rainbond自定义API的方法,触发平台组件的自动构建,进入Deploy阶段。

 

 平台化+原子化设计,平台提供基础服务,能力可以通过原子化形式无限扩展,既兼顾了平台的稳定性,又大大减低了现有工具平台的接入成本

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com