CICD&DevOps概述

1.DevOps概述

DevOps:Development和Operations的组合词,它是一种重视 软件开发人员(Dev) 和 IT运维技术人员(Ops) 之间沟通合作的文化、运动或惯例。

在最开始的编程工作中,开发人员就是运维人员。随着软件开发复杂度不断增加,技术团队角色逐渐 增多(如开发工程师、运维工程师、测试工程师等),这种情况就导致组织里充斥着「部门墙」,大家都自行其是,形成了一种天然壁垒。在非DevOps开发运维中,开发员创建代码,在他们自己的系统上对其进行测试,通过QA【质量保证部门】运行并将其推送到运行维护操作中。由于运维(Ops)团队无法承受对其系统进行频繁更改,因此新代码通常并不兼容。因此运维将代码发回给开发员而他们必须又得从头开发,然后循环往复给两个团队带来了相互隔离的现象,为此,没有太多关于是什么原因导致代码不兼容的交流而带来各司其职不负责任的结果。

DevOps专注于消除开发与运维团队之间的这种隔阂,从而在不影响质量的情况下促进更快的交付。 DevOps消除了将开发和运维团队限制在孤岛中的情况。DevOps也是一种开发哲学理念,它使整个团队和组织的工作变得更轻松。DevOps还需要协作才能成功而不仅是开发和运维,QA和安全团队通常也需要将自己集成到其中,以实现快速交付完美的软件产品。

2.CI/CD概述

CI/CD是DevOps把理论变为现实的核心有效方法与方案。是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。

CI/CD 的核心概念:

持续集成(CI,Continuous Integration):对应开发生命周期的后期阶段,保证代码质量、降低测试成本。

开发人员将会频繁地向主干提交代码。这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。

持续部署(CD,Continuous Deployment):每一处提交都会自动触发发布流,所有的变更都会被自动部署到生产环境中。

在CD环境中,通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,任何修改通过了所有已有的工作流就会直接和客户见面,只有当一个修改在工作流中构建失败才能阻止它部署到产品线。

加速了与客户的反馈循环,但是会给团队带来压力,因为不再有"发布日"了。开发人员的修改在提交的几分钟后就上线了。

持续交付(CD,Continuous Delivery):让软件的构建、测试与释出变得更快以及更频繁。

它可以让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。

整个CI/CD的过程完全可以实现自动化,开发人员只需要将代码推送到远程仓库,后期的所有阶段都可以靠自动化完成。

相关推荐
蓝速科技4 分钟前
口岸政务窗口双屏翻译机落地应用指南
运维·数据结构·数据库·人工智能·科技·政务
风哥2号7 分钟前
数据库教程FGMT20‑Oracle容灾体系架构与数据库升级迁移方案
数据库·oracle·架构
wudongfang66628 分钟前
mysql全量同步数据改增量
数据库·mysql
志栋智能40 分钟前
超自动化安全的变更与配置安全管理
数据库·安全·自动化
toooooop840 分钟前
thinkphp查询数据表最后的自增id
前端·javascript·数据库
风哥2号44 分钟前
数据库教程FGMT19‑Oracle多租户容器架构与新特性总结
数据库·oracle·架构
garmin Chen1 小时前
MySQL精简面试题
数据库·后端·mysql·面试
anxiao_m1 小时前
局域网文件传输工具有哪些?4款主流工具实测对比测评
大数据·网络·数据库
墨香幽梦客1 小时前
API集成中的高可用(HA)设计:如何避免单点故障拖垮业务?
数据库
拓人间精准客1 小时前
全维度大数据:助贷机构破冰数据合规与触达难的5个支点
大数据·数据库·sass·tob