首页 > 编程知识 正文

cicd发挥的作用,Cd

时间:2023-05-05 21:24:32 阅读:161134 作者:4023

CICD一、cxdxwz、连续集成(ci )三、CD )四、CD )五、下一步是什么?

一.个人资料

CI/CD的采用改变了开发人员和测试人员发布软件的方式。

最初为瀑布模型,之后为敏捷开发,现在为DevOps,这是现代开发者构建优秀产品的技术路线。 随着DevOps的兴起,出现了持续集成(Continuous Integration)持续交付(Continuous Delivery)持续部署(Continuous Deployment)的新方法。 传统的软件开发和交付方法迅速过时。 从历史上看,在敏捷时代,许多公司每月、每季度、每两年甚至每年都要发布软件部署/发布。 但是现在,在DevOps时代,每周、每天、甚至每天都是好几次是常态。 如果SaaS占领了世界,它可以轻松、动态地更新APP应用程序,而无需下载新组件,特别是。 在很多情况下,他们甚至没有注意到变化。 开发团队在软件交付流水线(Pipeline )中实现了自动化以缩短交付周期,大多数团队都有检查代码并将其部署到新环境中的自动化过程。 今天,我们将讨论什么是CI/CD/CD,以及现代软件公司如何使用工具自动化部署代码的过程。

持续集成的重点是将每个开发人员的工作集中到一个代码库中。 通常每天举行几次。 主要目的是尽早发现整合错误,使团队更紧密地合作,更好地合作。

持续交付的目的是将部署或发行过程中固有的摩擦降至最低。 此实现通常允许自动执行构建部署的每个步骤,以便随时安全地完成代码发布。

持续部署是一种更高级的自动化,每次对代码进行重大更改时都会自动构建/部署。

这些阶段中的每一个阶段都是输送管道的一部分。 在Humble和Farley的书《持续交付:可靠的软件版本中,通过构建,测试和部署自动化》中,“每次对软件进行更改时,发行过程都会发生复杂的过程。 这个过程包括软件的构建,这些构建在测试和部署的多个阶段进行。 相反,这需要多方的合作,可能需要几个团队的合作。 部署管道建模并通过连续集成和发布管理工具实施此流程,以便从版本控制过渡到各种测试和部署,以便在向用户发布时查看和控制每个更改的进度。 ”

软件提供流水线

二、持续集成(CI )持续集成使开发者能够频繁地将其代码集成到通用代码仓库的主分支中。 开发人员可以独立开发每个功能模块,并随时多次向仓库提交作品,而不是在开发周期结束时逐个提交。

这里的一个重要想法是开发人员可以更快、更频繁地这样做,从而降低集成成本。 事实上,开发人员在集成时经常会发现新代码和现有代码之间存在不一致。 如果整合更快、更频繁,冲突更容易解决,执行成本也更低。 当然,也有权衡。 这个过程的变更不提供额外的质量保证。 事实上,许多组织发现这种集成更昂贵,因为它依赖手动过程来防止新代码引入新错误或破坏现有代码。 为了减少集成任务中的摩擦,持续集成依赖于测试套件和自动化的测试运行。 但是,重要的是认识到自动化测试和持续测试是完全不同的,我会在文章的结尾详细说明。

CI的目标是将集成简化为简单的lcddyg日常开发任务。 这有助于降低总体构建成本,并在周期早期发现缺陷。 有效使用CI必须改变开发团队的习惯,鼓励频繁迭代构建,早期发现漏洞并积极解决。

三、连续交付(CD )实际上是CI的扩展,其中软件交付过程进一步自动化,随时可以轻松部署到构建环境中。 光盘集中依赖于部署管线,团队通过管线自动化测试和部署过程。 该流水线是一个自动化的系统,可以对内部版本执行一系列增量测试套件。 光盘是高度自动化的,在某些云计算环境中也可以轻松配置。 在管线的每个阶段,如果构建无法通过关键测试,将向团队发出警告。 否则,进入下一个测试,连续通过测试后,自动进入下一个阶段。 流水线的最后一部分在与生产环境相当的环境中部署生成。 这是一个整体的过程,因为构建、部署和环境将一起运行和测试,以便在实际生产环境中部署和验证构建。

AWS提供了现代CI/CD管道的可靠展示。 亚马逊是云计算提供商之一,它提供了令人印象深刻的CI/CD管道环境,并提供了练习过程,可以选择许多开发资源并将其链接到易于配置和监控的管道。

许多人认为,持续交付的吸引力在于自动化了从提交代码到仓库、产品测试和发布的每一个步骤。 这是构建和测试过程的精细自动化,但什么以及如何公开什么仍然需要人力,持续部署可以改变这一点。

四.连续部署(CD )通过连续部署,扩展了连续分发,以构建软件并在通过所有测试时自动部署。 这样的过程不需要人为地决定何时、如何投入生产环境。 当生成的组件/软件包退出管线时,将自动引入CI/CD系统中的最后一个步骤。 这些自动部署可以配置为快速向客户分发组件、功能模块或修复修补程序,并正确运行

确说明当前提供的内容。
采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。用户对无用或者误解需求的功能的快速反馈有助于团队规划投入,避免将精力集中于不容易产生回报的地方。随着 DevOps 的发展,新的用来实现 CI/CD 流水线的自动化工具也在不断涌现。这些工具通常能与各种开发工具配合,包括像 GitHub 这样的代码仓库和 Jira 这样的 bug 跟踪工具。此外,随着 SaaS 这种交付方式变得更受欢迎,许多工具都可以在现代开发人员运行应用程序的云环境中运行,例如 GCP 和 AWS。最受欢迎的自动化工具是 Jenkins(以前的 Hudson),这是一个由数百名贡献者和商业公司 Cloudbees 支持的开源项目。Cloudbees 甚至聘请了 Jenkins 的创始人,并提供了一些 Jenkins 培训项目和附加组件。除了开源项目之外,还有一些更现代化的商业产品例如 CircleCI,Codeship 和 Shippable。这些产品各有优缺点,我鼓励开发人员在开发流程中一一尝试它们,以了解它们在您的环境中的工作方式,以及它们如何与您的工具、云平台、容器系统等协作。

五、下一步是什么?

一旦部署了现代化的 CI/CD 流水线,您可能会意识到开发人员工作流程中的一些工具和流程也需要进行现代化改造。测试是一个要着重关注的领域,如果您的部署频率是每天或者一天多次,您的每次测试可能需要数小时甚至一晚上才能完成。mabl 正在使用机器学习解决这个问题。

原文来自:https://dzone.com/articles/what-is-cicd

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。