ci/cd体系是什么

CI/CD是持续集成(Continuous Integration)和持续部署(Continuous Deployment)的缩写,有时也包含持续交付(Continuous Delivery)的概念。这是一种软件开发方法,目的是使开发人员能够更频繁、更可靠地交付更新和改进给用户。

一、ci是什么

CI的英文名称是Continuous Integration,中文翻译为:持续集成。

CI中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。 持续集成(CI)是在源代码变更后自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程。持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。CI的流程执行和理论实践让我们可以确定新代码和原有代码能否正确地集成在一起。

通俗点讲就是:通过持续集成, 开发人员能够在任何时候多次向仓库提交作品,而不是独立地开发每个功能模块并在开发周期结束时一一提交。这里的一个重要思想就是让开发人员更快更、频繁地做到这一点,从而降低集成的开销。 实际情况中,开发人员在集成时经常会发现新代码和已有代码存在冲突。 如果集成较早并更加频繁,那么冲突将更容易解决且执行成本更低。当然,这里也有一些权衡,这个流程不提供额外的质量保障。 事实上,许多组织发现这样的集成方式开销更大,因为它们依赖人工确保新代码不会引起新的 bug 或者破坏现有代码。 为了减少集成期间的摩擦,持续集成依赖于测试套件和自动化测试。 然而,要认识到自动化测试和持续测试是完全不同的这一点很重要。

CI 的目标是将集成简化成一个简单、易于重复的日常开发任务, 这样有助于降低总体的构建成本并在开发周期的早期发现缺陷。 要想有效地使用 CI 必须转变开发团队的习惯,要鼓励频繁迭代构建, 并且在发现 bug 的早期积极解决。

二、cd是什么

CD可对应多个英文名称,持续交付Continuous Delivery和持续部署Continuous Deployment。

1、持续交付(CD)

持续交付(CD)实际上是 CI 的扩展,其中软件交付流程进一步自动化,以便随时轻松地部署到生成环境中。 成熟的持续交付方案也展示了一个始终可部署的代码库。使用 CD 后,软件发布将成为一个没有任何紧张感的例行事件。 开发团队可以在日常开发的任何时间进行产品级的发布,而不需要详细的发布方案或者特殊的后期测试。

完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。

在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化。在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中或发布给最终使用的用户。

CD 集中依赖于部署流水线,团队通过流水线自动化测试和部署过程。此流水线是一个自动化系统, 可以针对构建执行一组渐进的测试套件。CD 具有高度的自动化,并且在一些云计算环境中也易于配置。在流水线的每个阶段,如果构建无法通过关键测试会向团队发出警报。否则,将继续进入下一个测试, 并在连续通过测试后自动进入下一个阶段。流水线的最后一个部分会将构建部署到和生产环境等效的环境中。 这是一个整体的过程,因为构建、部署和环境都是一起执行和测试的,它能让构建在实际的生产环境可部署和可验证。

2、持续部署(CD)

持续部署扩展了持续交付,以便软件构建在通过所有测试时自动部署。在这样的流程中, 不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。 此类自动部署可以配置为快速向客户分发组件、功能模块或修复补丁,并准确说明当前提供的内容。采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。 用户对无用或者误解需求的功能的快速反馈有助于团队规划投入,避免将精力集中于不容易产生回报的地方。

随着 DevOps 的发展,新的用来实现 CI/CD 流水线的自动化工具也在不断涌现。这些工具通常能与各种开发工具配合, 包括像 GitHub 这样的代码仓库和 Jira 这样的 bug 跟踪工具。此外,随着 SaaS 这种交付方式变得更受欢迎, 许多工具都可以在现代开发人员运行应用程序的云环境中运行,例如 GCP 和 AWS。但是对于一个成熟的CI/CD管道(Pipeline)来说,最后的阶段是持续部署。作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。目前最受欢迎的自动化工具是 Jenkins,后面我们也将详细介绍关于 Jenkins 的相关内容。

持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。持续交付表示的是一种能力,而持续部署表示的则一种方式;持续部署是持续交付的最高阶段。

CI/CD体系为软件开发带来了许多好处,包括更快的迭代周期、更高的代码质量、更少的部署风险以及更快的对市场变化的响应。这是现代DevOps文化的重要组成部分。


延伸阅读

CI设计规划过程

CI设计规划与实施导入是一种循序渐进的计划性作业,整个计划的进行与推展,综合国内外企业导入CI的经验。其作业流程大约可分为下列四个阶段:

1、企业实态调查阶段

把握公司的现况、外界认知和设计现况,并从中确认企业实际给人的形象认知状况。

2、形象概念确立阶段

以调查结果为基础,分析企业内部、外界认知、市场环境于各种设计系统的问题,来拟定公司的定位与应有形象的基本概念,作为CI设计规划的原则依据。

3、设计作业展开阶段

根据企业的基本形象概念,转变成具体可见的信息符号。并经过精致作业于测试调查,确定完整并符合企业的识别系统。

4、完成于导入阶段

重点在于排定导入实施项目的优先顺序、策划企业的广告活动以及筹组CI

文章标题:ci/cd体系是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/51162

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年4月30日
下一篇 2023年4月30日

相关推荐

  • 好的oa软件

    标题:优质的OA软件特征与选择 OA软件有效提升企业运作效率、促进信息流动、简化管理流程。一、它们通常包括数据管理、项目跟踪、自动化流程和沟通协作的功能。一家企业在选择时,考虑软件的可定制性、用户体验、集成能力和成本效益至关重要。以数据管理为例,优秀的OA系统能对企业的文档、报表、记录等执行有效管理…

    2024年1月11日
    11800
  • 那家oa办公系统好

    标题:探求最佳OA办公系统 探究*最佳的OA办公系统*时,需考量几个关键因素:1、用户体验;2、功能性;3、安全性;4、成本效益;5、支持与服务。 其中,功能性是决定OA系统好坏的核心,它应包括高效的信息管理、流程自动化、协同工作支持以及无缝的集成能力。高效的信息管理使组织内部信息流转更加顺畅,快速…

    2024年1月15日
    10700
  • 私域流量与会员制营销策略有何关联

    在数字营销领域,私域流量与会员制营销策略之间存在紧密的联系,共同构成了现代企业获取和维护顾客资源的关键途径。私域流量指的是企业通过自有的媒体平台如官方网站、社交媒体账号、会员数据库等渠道积累的、相对封闭的用户群体。这些用户在企业的营销体系中占据重要位置,因为企业可通过直接交流获取其更精确的行为数据和…

    2023年11月20日
    16800
  • web前端和Java后端有什么区别

    web前端和Java后端的区别有:1、定义不同;2、所用技术不同;3、展示方式不同。Web前端指在Web应用中,用户能够看到的触摸到的东西,其中包括网页的结构、Web的外观、以及在Web级别上的交互实现。后端更多地与数据库交互,以处理相应的业务逻辑。 1、定义不同 前端:顾名思义,就是来做Web的前…

    2023年2月7日
    41600
  • plm研发管理系统总体设计

    PLM研发管理系统总体设计应着重于三大组成部分:1、体系结构设计;2、功能模块划分;3、数据安全与流程管理。其中,体系结构设计是基础,需要支持模块化、灵活性和扩展性。 在描述体系结构设计时,重点放在模块化设计这一部分。这种方法确保了各个组件能够相互独立,又能紧密集成,以便在不同的研发阶段或针对不同项…

    2024年1月9日
    10500
  • 一个软件是如何开发出来的

    软件开发包含以下阶段:一、软件开发的可行性和规划阶段;二、分析客户需求阶段;三、软件的设计阶段;四、实现阶段;五、测试阶段;六、操作以及维护阶段。软件开发方案第一要做的工作就是对其可行性进行落实,要弄清楚开发这套软件的目标以及整体的要求。 一、软件开发的可行性和规划阶段 软件开发方案第一要做的工作就…

    2023年4月30日
    20900
  • oa系统oa系统

    标题:OA系统的实施与优势 OA系统在企业管理领域具有显著优势:1、效率提升,通过流程自动化减少任务处理时间;2、成本节约,减少纸张使用和传统办公耗材;3、协作增强,促进部门间信息共享和交流;4、管理透明,活动记录方便监控和审计;5、灵活性强,支持远程办公和多设备访问。效率提升是OA系统最直观的优势…

    2024年1月15日
    11100
  • 工程项目进度管理的措施有哪些

    工程项目进度管理的措施涵盖严格的计划制定、资源有效配置、跟踪和监控、灵活性与风险管理。此中,严格的计划制定是确保项目按时完成的基石,涉及明确的时间轴、工作分解结构和关键路径法等技术。详细而说,严格的计划需要对项目目标进行透彻理解,按照逻辑顺序拆分任务,并准确地估算所需时间。 一、严格的计划制定 制定…

    2024年1月8日
    12700
  • iOS企业签名有哪些重要知识

    iOS企业签名重要知识有:1、ios 企业签名的由来;2、APP没有下载数量的限制;3、为什么ios 企业签名容易掉签名;4、如何解决ios企业签名的掉签名问题等。一般情况下,APP都是上架到应用商店让用户下载,苹果官方为了方便大企业的内部员工测试APP使用,就发布了企业开发者账号。 一、ios 企…

    2023年5月10日
    36200
  • 团队协同能力不足的表现有哪些

    团队协同能力不足的表现有:1、执行力差;2、不能协调;3、团队协作能力不足、行动缓慢;4、领导决策过于激进,或缺乏科学决策原则,结果导致浪费资源、浪费资源或造成不必要的损失(比如造成很大的经济损失)。 团队协同能力不足的表现有哪些 我们经常听到团队协作,但是对于团队协作能力如何理解却知之甚少。实际上…

    2022年11月14日
    7.0K01

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部