type
status
date
slug
summary
tags
category
icon
password
Property
Aug 19, 2022 06:47 AM

Java开发中的CI/CD学习总结

概述

CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。
CI/CD 的核心概念是持续集成、持续交付和持续部署。
作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。
具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。
这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。

一、关于CI 持续集成(Continuous Integration)

发音:Continuous Integration [kən’tɪnjʊəs] [ˌɪntɪ’ɡreɪʃn]
notion image
缩略词 CI / CD 具有几个不同的含义。
CI/CD 中的“CI”始终指:持续集成,英文全称:Continuous Integration,它属于开发人员的自动化流程。
成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。
该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。

二、关于CD 持续交付或持续部署(Continuous Delivery 、Continuous Deployment)

可以点击此处了解CD的具体实现
CI/CD 中的“CD”指的是持续交付或持续部署,这些相关概念有时会交叉使用。
两者都事与管道后续阶段的自动化相关,但它们有时也会单独使用,用于说明自动化程度。

关于持续交付

持续交付通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub 或容器注册表),
然后由运维团队将其部署到实时生产环境中。这旨在解决开发和运维团队之间可见性及沟通较差的问题。
因此,持续交付的目的就是确保尽可能减少部署新代码时所需的工作量。

关于持续部署

持续部署(另一种“CD”)指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用
它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题
持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。
notion image
CI/CD 既可能仅指持续集成和持续交付构成的关联环节,也可以指持续集成、持续交付和持续部署这三项构成的关联环节。更为复杂的是,有时“持续交付”也包含了持续部署流程。
归根结底,我们没必要纠结于这些语义,您只需记得 CI/CD 其实就是一个流程(通常形象地表述为管道),用于实现应用开发中的高度持续自动化和持续监控。
因案例而异,该术语的具体含义取决于 CI/CD 管道的自动化程度。
许多企业最开始先添加 CI,然后逐步实现交付和部署的自动化(例如作为云原生应用的一部分)。

小结

💡
CI/CD 流程持续自动化,以管道的视角来看待,就是一个能实现无缝衔接的高度自动化的可持续流程。
在面临责任分配制的集中式开发下,CI可以有效解决多分支代码合并带来的冲突问题,基于此解决方案,CD就是一个流程的演变,将一个工程开发的产出交付进行持续化的测试后推送到生产环境,降低部署工作量,再进而基于此,推动了持续自动化部署流程的演进,因此CI/CD整体可以视作一个自动化的流程。
Flowable(三):Liquibase模式管理Flowable(五):一个简单流程分析
fntp
fntp
多一点兴趣,少一点功利
公告
type
status
date
slug
summary
tags
category
icon
password
Property
Sep 5, 2023 06:04 AM
📝 博客只为了记录我的学习生涯
😎 我的学习目标是成为一名极客
🤖 我热爱开源当然我也拥抱开源
💌 我期待能收到你的Email留言
📧 我的邮箱:stickpoint@163.com
欢迎交流~