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的过程完全可以实现自动化,开发人员只需要将代码推送到远程仓库,后期的所有阶段都可以靠自动化完成。

相关推荐
Dxy123931021612 分钟前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light15 分钟前
MySQL相关问题
数据库·mysql
蜡笔小炘1 小时前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长1 小时前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Re.不晚1 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
老邓计算机毕设2 小时前
SSM智慧社区信息化服务平台4v5hv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·智慧社区、·信息化平台
麦聪聊数据2 小时前
为何通用堡垒机无法在数据库运维中实现精准风控?
数据库·sql·安全·低代码·架构
2301_790300962 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919102 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
亓才孓2 小时前
[JDBC]PreparedStatement替代Statement
java·数据库