百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

为什么CI和CD需要分道扬镳?(cd为什么叫cd)

ccwgpt 2024-09-26 08:08 28 浏览 0 评论

探索持续提升(Continuous Promotion)如何解决传统 CI/CD 流水线的局限性。

译自 Why CI and CD Need to Go Their Separate Ways,作者 Christian Hernandez。

在不断发展的软件开发领域,持续集成 (CI) 和持续交付 (CD) 一直是高效可靠的应用程序部署的基本方法。

尽管它们已经存在了很长时间,但像 Kubernetes 和 GitOps 这样的现代技术带来了传统 CI/CD 流程 无法解决的复杂性。 随着 Kubernetes 提供异步部署机制,GitOps 提供管理应用程序状态的声明式方法,两者之间出现了差距。

持续推广和相关工具旨在弥合这些差距,在以 GitOps 为中心的 环境中简化 CI/CD 流水线。

CI 和 CD 是软件开发中的基本实践,旨在提高部署应用程序的速度和可靠性。最初,CI/CD 是一个线性过程:构建代码、测试代码,然后将其部署到目标环境。这种方法适用于传统的虚拟机或物理服务器,因为在这些服务器中,部署环境相对静态。

然而,容器和 Kubernetes 的引入极大地改变了这一格局。Kubernetes 提供了一种更加动态的异步部署机制,这与传统 CI/CD 流程的同步性质不匹配。因此,团队开始采用 GitOps 来更好地适应这种新范式,并试图减轻与传统 CI/CD 流程的脱节。

尽管取得了这些进步,但 CI/CD 流程在很大程度上保持不变,导致跨不同环境管理部署的效率低下和复杂性。这种持续的演变凸显了对持续推广等更加集成化的解决方案的需求,以有效地弥合这些差距。

当前模型的挑战

当前的 CI/CD 模型面临着若干挑战,尤其是在 采用 Kubernetes 和 GitOps 的情况下。

问题的症结在于传统 CI/CD 流程的同步性质与 Kubernetes 部署的异步性质之间存在固有的脱节。这种不匹配通常会导致效率低下,因为部署流水线中充斥着自定义脚本和变通方法,以弥合 CI 和 CD 之间的差距。

此外,GitOps 虽然可以有效地管理部署的最后一英里,但无法处理复杂的多环境编排。它只关注最终的部署状态,在跨不同阶段或环境协调部署方面留下了巨大的运营空白。

这导致 CI 流水线过度扩展,并承担了它们从未设计过的角色,例如管理无限期部署和处理复杂的依赖关系。这些挑战凸显了对一种更具凝聚力的方法的需求,这种方法可以与现代技术无缝集成,从而提供更加灵活高效的部署流程。

CI/CD 中的复杂性

线性与复杂现实

将 CI/CD 视为一个简单的线性过程的传统观点掩盖了现代软件开发中面临的复杂现实。虽然最初被概念化为一系列步骤——构建、测试和部署——但实际的部署流水线要复杂得多。现代应用程序通常涉及许多相互关联的服务,每个服务都有自己的依赖关系和生命周期。

线性模型难以适应这些复杂性,导致必须管理相互依赖关系和异步流程的网络。此外,微服务架构 的兴起进一步加剧了这种复杂性,因为每个服务都可能有自己的 CI/CD 流水线,并具有不同的需求和触发器。

这种复杂性会导致部署瓶颈、人工干预增加以及难以在不同环境中保持一致性等问题。此外,对持续监控的需求以及处理动态云环境中快速变化的能力,都需要比传统线性方法所能提供的模型更加灵活和自适应的模型。适应这种复杂的现实对于有效的 CI/CD 实施至关重要。

过度使用 CI 执行 CD 任务

在许多组织中,CI 流水线的功能超出了其预期功能,承担了传统上属于 CD 领域的任务。

CI 的设计目的是自动化构建和测试代码,专注于创建可靠的工件。然而,随着部署环境复杂性的增加,CI 流程通常背负着环境配置、配置管理和部署编排等任务。

这种过度扩展会导致繁琐、低效的持续集成管道,它难以管理现代化动态部署的需求。这种错误使用不仅增加了持续集成管道的复杂性和维护开销,还导致循环时间更长、灵活性降低。解决这个问题需要在持续集成和持续交付之间明确划分职责,利用适当的工具让每个流程专注于其核心目标,而无需不必要的重叠。

引入持续提升(Continuous Promotion)

持续提升这一概念旨在弥合 CI 和 CD 之间的差距,解决在使用 Kubernetes 和 GitOps 等现代技术时传统 CI/CD 流水线的局限性。

其理念是插入一个中间步骤,专注于根据预定义的规则和条件提升工件。这种方法允许对部署过程进行更精细的控制,确保工件仅在满足特定条件(例如通过某些测试或获得必要的批准)时才会被提升。

通过这样做,持续提升将 CI 和 CD 流程分离,使每个流程都可以专注于其核心职责,而不会过度扩展。这不仅简化了部署流水线,还提高了整个流程的可靠性和效率。持续提升的需求源于现代部署日益增长的复杂性,在这些部署中,传统的 CI/CD 方法难以有效地管理云原生环境的异步和动态特性。

持续提升的优势

持续提升具有多种优势,可以提高部署流水线的效率和可靠性。

在 CI 和 CD 之间引入系统性步骤可确保只有合格的工件才能通过流水线,从而降低错误部署的风险。这种方法允许实施详细的规则集,其中可以包含成功完成测试、手动批准或合规性检查等条件。因此,持续提升可以更好地控制部署过程,使团队能够自动执行原本需要手动干预的复杂决策过程。

此外,它还减轻了 CI 流水线的负担,这些流水线通常因处理非其设计用途的部署任务而超载。这种关注点分离允许更专注、更高效的 CI 流程,而 CD 可以专注于应用程序的部署和管理。

总的来说,持续提升更符合现代云原生环境的动态特性,有助于实现更顺畅、更可靠的应用程序推出。

Kargo:一种新方法

Kargo 是一款开源工具,旨在 CI/CD 流水线中实施持续提升的概念。它通过提供结构化的变更提升机制,解决了在 Kubernetes 和 GitOps 环境中部署应用程序相关的复杂性。

Kargo 通过监控工件(例如应用程序映像或配置文件)的变更并应用预定义的提升规则来确定这些工件是否应进入部署的下一阶段来运作。该工具通过引入用于管理提升的声明式框架,有效地弥合了 CI 和 CD 之间的差距,确保只部署经过审查的变更。

Kargo 不会取代现有的 CI 或 CD 工具,而是通过添加一个专注于协调工件提升的中间层来增强它们。通过这样做,它有助于促进更可靠、更高效的部署流程,减少管理复杂部署所需的手动工作量,并更好地适应云原生生态系统的异步特性。

使用 Kargo 进行持续提升

Kargo 通过充当协调 CI/CD 流水线中工件提升的中间层来促进持续提升。它通过持续监控存储库中的变更(例如代码、配置或 Docker 映像的更新)来运作。

根据预定义的规则和条件,Kargo 会评估这些变更是否满足提升条件。此评估会考虑成功测试结果、合规性检查和必要的批准等因素。一旦满足条件,Kargo 就会自动执行提升过程,更新 GitOps 存储库以反映新状态,并通过 Argo CD 等 GitOps 控制器触发部署。

这种方法最大限度地降低了部署未经验证的变更的风险,确保了更高水平的部署可靠性和效率。通过使用 Kargo,团队可以减少手动干预并简化其部署流程,从而使 CI 工具能够专注于构建工件,而 CD 工具则可以管理推出。这种集成使 Kargo 成为现代动态部署环境中的重要组成部分。

开始使用 Kargo 进行持续提升之旅

您是准备尝试 Kargo 的 GitOps 从业者吗?请访问 Kargo GitHub 页面,开始您的持续提升之旅。已经是 Kargo 用户并希望将其提升到一个新的水平?注册我们的 Kargo Enterprise 早期访问。

相关推荐

用Deepseek扩写土木工程毕业论文实操指南

用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...

985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图

在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...

AI写论文刷屏?大学生正在丢掉的思考力

一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...

Grok在辅助论文写作上能不能既“聪明”又“可怕”?!

AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...

大四论文沟通场景!音频转文字难题听脑AI来化解

大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...

论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)

技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...

25年信息系统项目管理师考试第2批论文题目写作建议思路框架

25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师

微信购物应尽快纳入法律框架(微信购物管辖)

符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...

泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》

新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...

离线使用、植入微信-看乐心Mambo手环如何打破框架

从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...

微信私域电商运营策略与框架(微信私域怎么做)

...

华专网络:如何零基础制作一个网站出来?

#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...

WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架

大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...

约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错

直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...

视频号带货为什么一个流量都没有?顶级分析框架送给你

视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...

取消回复欢迎 发表评论: