如何快速实现一套完整的CI/CD流程

        在云原生的大时代背景下,CI/CD绝对能在整个大框架下占到一席之地,本文主要介绍了如何用当前流行的各种CI/CD的开源工具,将其串联起来形成一套完整的能应用于生产的CI/CD流程,话不多说咱们进入正题。

        在此流程中CI使用的是Jenkins,CD使用的是ArgoCD,代码管理使用了GitLab,镜像仓库使用的是Harbor,下面是整个流程的流程图介绍。

以上流程图分为9个步骤,完整的流程使用文字版的描述如下:

  1.  研发人员将代码变更提交到GitLab仓库中,在发布时间段提交发布任务。

  2. 运维人员触发对应发布任务对应的Jenkins项目,进行发布。

  3. Jenkins拉取最新的代码,执行打包的CI shell脚本(自行研发,下面称为脚本)。

  4. 脚本将代码拷贝到打包机(为了提升打包速度),将最新的代码打包成镜像

  5. 脚本将打包好的镜像推送到自建的Harbor仓库。

  6. 脚本将最新的镜像ID更新到k8s的配置仓库。

  7. ArgoCD会循环监听配置仓库里面的变化。

  8. ArgoCD将最新的配置文件应用到K8S中。

  9. K8S根据最新的配置拉取最新的配置进行更新应用。

        以上步骤比较繁琐,进行了比较详细的拆解。其中的 CI 脚本主要实现打包和更新配置仓库内容即可,其中主要影响整个流程速度的有以下几点:

  1. 最好都是在同一网络环境下,同一内网最好,打包机,镜像仓库以及K8S集群在同一内网环境。

  2. 打包机性能要求高一些,打包速度快。

  3. git项目尽可能小,不要包含大文件。

       以上是针对CI/CD的一个思路,其中的组件都可以替换成其他流行的开源软件或者是自行开发都可,欢迎各位评论留言讨论。

        本文章来自我自己的公众号 实用运维 ,会不定时更新我实践过的内容,欢迎大家关注讨论。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是DevOps?它的目的是什么? DevOps是一种软件开发和运营的方法论,旨在通过自动化和协作来加速软件交付和部署过程,提高软件质量和可靠性,同时降低成本和风险。 2. 什么是CI/CD?它们的区别是什么? CI/CD是DevOps中的两个重要概念,CI(Continuous Integration)指持续集成,CD(Continuous Delivery/Deployment)指持续交付/部署。CI是指在代码提交到版本控制系统后,自动进行编译、测试和打包等操作,以确保代码的质量和稳定性。CD则是指将经过CI测试的代码自动部署到生产环境中,以实现快速、可靠的软件交付。 3. 你如何实现CI/CD实现CI/CD需要使用一系列工具和技术,包括版本控制系统、自动化构建工具、自动化测试工具、容器化技术、持续集成/交付/部署工具等。具体实现方式因公司和项目而异,但一般需要遵循一些最佳实践,如代码规范、自动化测试、持续集成、持续交付等。 4. 你如何处理CI/CD中的错误和故障? 处理CI/CD中的错误和故障需要遵循一些最佳实践,如记录错误日志、自动化告警、自动化回滚等。同时,需要建立一套完善的监控和报警系统,及时发现和解决问题,确保系统的稳定性和可靠性。 5. 你如何评估CI/CD的效果? 评估CI/CD的效果需要考虑多个指标,如软件交付速度、软件质量、部署频率、故障率、用户满意度等。可以通过监控和分析这些指标来评估CI/CD的效果,并不断优化和改进CI/CD流程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值