全站首页设为首页收藏本站

西虹市网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

社区广播台

    查看: 38|回复: 6
    打印 上一主题 下一主题

    cicd的理解

    [复制链接]
    跳转到指定楼层
    楼主
    发表于 2022-4-30 17:18:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    西虹网 西虹网  CI / CD的采用改变了开发人员和测试人员如何发布软件。持续集成(CI:Continuous           Integration)与持续交付(CD:Continuous Delivery)是软件开发和交付中的实践。制品库的其他知识和内容也可以到网站具体了解一下,我们是领域内专业的企业平台,欢迎您的关注和了解!
    西虹网 西虹网

    西虹网 西虹网
    西虹网 西虹网  最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。随着DevOps的兴起,出现了持续集成(Continuous Integration)、持续交付(Continuous Delivery)、持续部署(Continuous Deployment)的新方法。传统的软件开发和交付方法正在迅速变得过时。从历史上看,在敏捷时代,大多数公司会每月,每季度,每两年甚至每年发布部署/发布软件。然而,现在,在DevOps时代,每周,每天,甚至每天多次是常态。当SaaS正在占领世界时,尤其如此,您可以轻松地动态更新应用程序,而无需强迫客户下载新组件。很多时候,他们甚至都不会意识到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大多数团队都有自动化流程来检查代码并部署到新环境。
    西虹网 西虹网
    西虹网 西虹网  什么是持续集成?
    西虹网 西虹网
    西虹网 西虹网  软件开发中,集成是一个很可能发生未知错误的过程。持续集成是一种软件开发实践,希望团队中的成员频繁提交代码到代码仓库,且每次提交都能通过自动化测试进行验证,从而使问题尽早暴露和解决。
    西虹网 西虹网
    西虹网 西虹网  持续集成的好处是什么?
    西虹网 西虹网
    西虹网 西虹网  持续集成可以使问题尽早暴露,从而也降低了解决问题的难度,正如老马所说,持续集成无法消除bug,但却能大大降低修复的难度和时间
    西虹网 西虹网
    西虹网 西虹网  持续集成的重点是将各个开发人员的工作集合到一个代码仓库中。通常,每天都要进行几次,主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。
    西虹网 西虹网
    西虹网 西虹网  持续交付
    西虹网 西虹网
    西虹网 西虹网  什么是持续交付?
    西虹网 西虹网
    西虹网 西虹网  持续交付是持续集成的扩展,指的是将通过自动化测试的软件部署到产品环境。持续交付的本质是把每个构建成功的应用更新交付给用户使用。在持续交付的世界里,我们对完成的定义不是测试完成,而是交付到客户手中。这里需要注意的是,CD代表持续交付(Continuous Delivery)而不是持续部署(Continuous Deploy),因为部署也包括部署到测试环境,而持续交付代表的是功能的上线,交付给用户使用。
    西虹网 西虹网
    西虹网 西虹网  持续交付的目的是最小化部署或释放过程中固有的摩擦。它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。
    西虹网 西虹网
    西虹网 西虹网  持续交付的好处是什么?
    西虹网 西虹网
    西虹网 西虹网  持续交付的好处在于快速获取用户反馈;适应市场变化和商业策略的变化。开发团队保证每次提交的修改都是可上线的修改,那么决定何时上线,上线哪部分功能则完全由产品业务团队决定。
    西虹网 西虹网
    西虹网 西虹网  虽然持续交付有显著的优点,但也有不成立的时候,比如对于嵌入式系统的开发,往往需要软硬件的配合。
    西虹网 西虹网
    西虹网 西虹网  如何做到持续交付?
    西虹网 西虹网
    西虹网 西虹网  1. 保证每次提交的修改都是可上线的修改。
    西虹网 西虹网
    西虹网 西虹网  2. 完善的测试(包括单元测试,组件测试,验收测试)来测试新功能和进行回归测试;
    西虹网 西虹网
    西虹网 西虹网  3. 持续交付的前提条件是自动化的集成和部署;需要开发/测试/运维人员一起完成。
    西虹网 西虹网
    西虹网 西虹网  扩展:持续交付(CD)
    西虹网 西虹网
    西虹网 西虹网  实际上是 CI 的扩展,其中软件交付流程进一步自动化,以便随时轻松地部署到生成环境中。CD 集中依赖于部署流水线,团队通过流水线自动化测试和部署过程。此流水线是一个自动化系统,可以针对构建执行一组渐进的测试套件。CD 具有高度的自动化,并且在一些云计算环境中也易于配置。在流水线的每个阶段,如果构建无法通过关键测试会向团队发出警报。否则,将继续进入下一个测试,并在连续通过测试后自动进入下一个阶段。流水线的最后一个部分会将构建部署到和生产环境等效的环境中。这是一个整体的过程,因为构建、部署和环境都是一起执行和测试的,它能让构建在实际的生产环境可部署和可验证。
    西虹网 西虹网
    西虹网 西虹网  AWS上提供了现代CI / CD管道的可靠展示。亚马逊是云计算提供商之一,提供令人印象深刻的CI / CD 管道环境,并提供一个演练过程,您可以从其中选择众多开发资源,并将它们链接在一个易于配置且易于监控的管道中。
    西虹网 西虹网
    西虹网 西虹网  许多人认为持续交付的吸引力主要在于,它自动化了从提交代码到仓库,再到测试和发布产品过程的所有步骤。这是构建和测试过程细致的自动化,但是如何发布以及发布什么仍然是需要人工操作,持续部署可以改变这一点。
    西虹网 西虹网
    西虹网 西虹网  持续部署扩展了持续交付,以便软件构建,在通过所有测试时自动部署。在这样的流程中,不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。此类自动部署可以配置为快速向客户分发组件、功能模块或修复补丁,并准确说明当前提供的内容。
    西虹网 西虹网
    西虹网 西虹网  采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。用户对无用或者误解需求的功能的快速反馈有助于团队规划投入,避免将精力集中于不容易产生回报的地方。随着 DevOps 的发展,新的用来实现 CI/CD 流水线的自动化工具也在不断涌现。这些工具通常能与各种开发工具配合,包括像 GitHub 这样的代码仓库和 Jira 这样的 bug 跟踪工具。此外,随着 SaaS 这种交付方式变得更受欢迎,许多工具都可以在现代开发人员运行应用程序的云环境中运行,例如 GCP 和 AWS。最受欢迎的自动化工具是 Jenkins(以前的 Hudson),这是一个由数百名贡献者和商业公司 Cloudbees 支持的开源项目。Cloudbees 甚至聘请了 Jenkins 的创始人,并提供了一些 Jenkins 培训项目和附加组件。除了开源项目之外,还有一些更现代化的商业产品例如 CircleCI,Codeship 和 Shippable。这些产品各有优缺点,我鼓励开发人员在开发流程中一一尝试它们,以了解它们在您的环境中的工作方式,以及它们如何与您的工具、云平台、容器系统等协作。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享分享
    回复

    使用道具 举报

    沙发
    发表于 2022-5-27 14:54:01 | 只看该作者
    不错不错,楼主您辛苦了。。。
    回复 支持 反对

    使用道具 举报

    板凳
    发表于 2022-7-2 17:33:23 | 只看该作者
    不错不错,楼主您辛苦了。。。
    回复 支持 反对

    使用道具 举报

    地板
    发表于 2022-8-15 11:22:56 | 只看该作者
    相当不错,感谢楼主无私分享精神!
    回复 支持 反对

    使用道具 举报

    5#
    发表于 2022-10-13 21:24:35 | 只看该作者
    学习了,谢谢分享、、、
    回复 支持 反对

    使用道具 举报

    6#
    发表于 2022-12-5 01:29:53 | 只看该作者
    路过,支持一下啦
    回复 支持 反对

    使用道具 举报

    7#
    发表于 2022-12-21 21:12:25 | 只看该作者
    好好 学习了 确实不错
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表