简单认识 ci/cd

什么是ci/cd

首先要说的ci/cd 是分成三部分 持续集成,持续交付,持续部署;为了快速、自动化、可重复的方式 处理工程;当然有两部分的说法,都可以自己定

开发阶段: 编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署

需要注意的是ci中的test阶段不是 交给测试人员的测试环境,而是自动化测试; cd中的Delivery才是包含测试环境,stg环境,灰度环境等;

1. 持续集成(CI)

持续集成就是把多个码农写的代码集成到同一个分支,然后经过编译、测试、打包之后将程序保存到 仓库中。

CI 需要具备这些:
1. 全面的自动化测试。这是实践持续集成&持续部署的基础,同时,选择合适的自动化测试工具也极其重要;
2. 灵活的基础设施。容器,虚拟机的存在让开发人员和 QA 人员不必再大费周折;
3. 版本控制工具。如 Git,CVS,SVN 等;
4. 自动化的构建和软件发布流程的工具,如 Jenkins,flow.ci;
5. 反馈机制。如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本。
复制代码
私有部署和托管型持续集成系统:
- Self Hosted CI 指的是将软件部署在公司的机房或内网中,需要提供多台服务器来完成 CI 系统的
运转,同时需要对不同机器之间进行环境配置。比如 Jenkins ;
- Hosted CI 指的是由 SaaS 型的 CI 服务,全程在线进行构建配置,不需要考虑装机器,装软件,
环境搭建等成本。比如 TravisCI 
复制代码
对比两种 CI 服务:
- Self Hosted CI 对构建环境有完全的控制权,能够实现完全定制。但需要搭建环境和配置、
维护成本高,需要买专门的机器,花费人力物力且更新迁移风险高;
- Hosted CI 无需额外机器,几分钟就可以用起来。可以根据你的需要动态调度资源。
省时,省心,省力。
复制代码

2. 持续交付(CD / Continuous Delivery)

持续交付就是定时地、自动地从 仓库中 将最新的程序部署到测试环境里。

3. 持续部署(CD / Continuous Deployment)

持续部署就是定时地、自动地将过去一个稳定的发布版本部署到生产环境里。

一个基本的ci/cd pipeline

容器镜像

代码管理后,需要一个核心控制器(Deployment Manager),生成容器(container) 和打包镜像,最后放到容器中。当然生成容器的过程中可能需要容器集群管理(比如:k8s);

总结

ci/cd的理解像是一种方法,条条大路通罗马,需要根据自己团队和业务,选择通往罗马的路和行驶工具;

补充

自动化测试

看看图就能知道,最基础的单元测试,是开发最快,成本最低的。越往上时间成本就越来越高;我的理解 更是越是基础的单元测试 越简单,到了ui层面首先业务广,更新快等原因导致ui层面的自动化测试难做~

摘自- www.jianshu.com/p/52aca1313…

github 市场

如果用git可以搜一下 github市场有很多推荐,ci,deployment

github.com/marketplace…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值