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

相关推荐
xcjbqd011 分钟前
Python中Pandas如何将DataFrame写入MySQL_使用to_sql函数
jvm·数据库·python
ZOOOOOOU12 分钟前
智慧社区云对讲门禁系统架构设计:中优云联免布线、全免费核心功能技术解析
数据库·人工智能·架构·边缘计算
Francek Chen14 分钟前
【大数据存储与管理】NoSQL数据库:02 NoSQL兴起的原因
大数据·数据库·分布式·nosql
斌味代码19 分钟前
RAG API 接入:从注册到生产级应用的10分钟上手指南
数据库·oracle
送秋三十五20 分钟前
Spring 源码---------Spring Core
java·数据库·spring
Cat_Rocky25 分钟前
redis数据库基础学习
数据库·redis·学习
正在走向自律27 分钟前
多源异构数据融合技术实践:GIS、时序、文档与缓存数据整合方案
数据库
武超杰1 小时前
MySQL调优(一)
数据库·mysql
电商API&Tina1 小时前
淘宝 / 京东关键词搜索 API 接入与实战用途教程|从 0 到 1 搭建电商选品 / 比价 / 爬虫替代系统
java·开发语言·数据库·c++·python·spring
YMatrix 官方技术社区1 小时前
批流一体,从 Lambda 到 Domino|YMatrix 亮相 PGConf.Russia 2026,重构 PostgreSQL 极简实时架构
数据库·postgresql·重构·架构·ymatrix