持续集成、持续交付和持续部署
Continuous Integration:持续集成,简称CI,是软件开发周期的一种实践,把代码仓库(Gitlab或者Github)、构建工具(如Jenkins)和测试工具(SonarQube)集成在一起,频繁的将代码合并到主干然后自动进行构建和测试。简单来说持续集成就是一个监控版本控制系统中代码变化的工具,当发生变化是可以自动编译和测试以及执行后续自定义动作。
其实这里最关键的是自动化测试,这个是最难的,因为测试涉及内容很多。
Continuous Delivery:持续交付,简称CD,是在CI的基础进行了扩展,在CI环节完成了软件构建和测试工作并形成了新的版本,那么接下来就要进行交付,而这里的交付并不是交付到生产环境,而是类生产环境(STAGING),我们可以理解为灰度环境或者预发环境,进而接受部分真实流量的测试。如果没有问题的话则通过手动的方式部署到生产环境。如下图所示:
Continuous Deployment:持续部署,简称CD,它是在持续交付的基础上打通最后一公里的工作,就是把手动部署到生产环境的方式升级为自动部署。看下图和上图在最后部署到生产环境中的区别。
持续集成、持续交付和持续部署其目的是减少代码改动到投入生产的所需时间,提早发现风险、减少QA的测试时长、减少运维的人工干预。整体上是一个提效的过程。当然它也不是万能的。
CI
:Continuous Integration (
持续
集成
),
集成
什么?为什么要
持续
?
Martin Fowler一篇博客中定义了
持续
集成
:它是一种软件开发实践,团队成员频繁地将他们的工作成果
集成
到一起(通常每人每天至少提交一次,这样每天就会有多次
集成
),并且在每次提交后,自动触发运行一次包含自动化验证集的构建任务,以便尽早地发现
集成
问题。
2、核心理念
持续
集成
的核心理念是:越是痛苦的事情,就要越频繁地做。
持续
集成
越靠后做风险越大,不确定性越大。把
集成
的频率提高,让每次
集成
的内容减少,这
要开学啦第二十七期 Kubernetes CKA实战班于9月18-21日上海举办,本次课程共计20章节,围绕K8s架构、阿里云实践
部署
,Kubectl配置,API与Resources,Namespaces,Pod,Services,存储,污点与宽容,水平自动伸缩,资源管理,安全,Helm与Chart,生产相关架构,CKA考试等内容,3天时间理论和实践结合,带你遨游K8s海洋!点击查看更...
DevOpsDevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作...
Continuous integration,简称
CI
是一种软件开发实践,即团队开发成员经常
集成
他们的工作,通常每个成员每天至少
集成
一次,也就意味着每天可能会发生多次
集成
。每次
集成
都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现
集成
错误。
(简单理解为你们公司每天都收集一次你们公司开发部门全部成员的代码,然后放到
CI
Server上自动化给你们跑一遍,如果代码有问题就会原路打回来,这样做的目的就是为了能够尽早发现错误,从而能即时在最短的时间内定位你的错误并且改正,这样
CI
/
CD
是一种通过在应用开发阶段引入自动化来频繁向客户
交付
应用的方法。
CI
/
CD
的核心概念是
持续
集成
、
持续
交付
和
持续
部署
。指在开发过程中自动执行一系列从开发到
部署
的过程中,尽量减少人工的介入。具体来说,
CI
/
CD
可让
持续
自动化和
持续
监控贯穿于应用的整个生命周期(从
集成
和测试阶段,到
交付
和
部署
)。这些关联的事务统称为“
CI
/
CD
管道”,由开发和运维团队协同支持。
CI
指的是
持续
集成
,
CD
指的是
持续
交付
和
持续
部署
。......
CI
/
CD
工具介绍
从上图对比可以看到 各自有优缺点,Jenkins有点是免费且跨平台,而Travis
CI
和
Ci
rcle
CI
是收费的,且不支持windows,但会为开源的项目免费提供一些服务,私有的就需要收费了。
Ci
rcle
CI
使用
官网:https://
ci
rcle
ci
.com/
1. 注册
点击右上角Sign Up按钮,点击Sign up with Github:
进入授权界面:
点击Authorize
ci
rcle
ci
按钮,然后需要输入密码:
输入密码成功后,点选一下自己的组织即可:
当今,开发运维自动化平台/系统如雨后春笋,但其功能、设计、完整性等参差不齐,导致用户体验也各有不同,本文将列出到2022年8月为止DevOps目前比较优秀的四个平台/系统(Buddy、Jenkins、GitLab
CI
/
CD
和
Ci
rcle
CI
)。链接:https://juejin.cn/post/7130158885230346271。商业转载请联系作者获得授权,非商业转载请注明出处。注:虚线:不支持或目前不可用,局限/插件:受限或第三方开发无技支。作者:Buddyred。...
1. Jenkins
Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现
持续
集成
的软件工具。官方网站:http://jenkins-
ci
.org/。
Jenkins 能实时监控
集成
中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
Jenkins特点:
易安装:Jen
现在做测试,经常听到一个概念
持续
集成
CI
Continuous Integration。那什么是
持续
集成
呢?相信大家看了不少文章之后依然是一脸懵逼。这里呢,用我自己的理解谈一下,不正确的地方还请指正。要说
持续
集成
,首先要明白什么是
集成
。很多测试同学说到
集成
,就想到
集成
测试。这里的
集成
主要是指代码的
集成
:举例来说,比如当前迭代,开发时间为两周。项目开始后,开发人员会从代码管理工具(SVN 或 G...
CI
(Continuous Integration),即
持续
集成
,指频繁地(一天多次)将代码
集成
到主干的行为。这里既包含
持续
将代码
集成
到主干的含义,也包含
持续
将源码生成可供实际使用的制品的过程。在
CI
阶段的实现至少应该有:
静态代码检查:ESLINT/TSLINT 静态语法检查,验证 git co