持续集成

菜单图标

持续集成

在本指南中,了解更多关于持续集成,软件开发和Devops实践,其中每个开发人员每天至少将其新代码集成到代码的主分支中。

什么是持续的一体化?

持续集成是一种软件开发过程,开发人员集成了他们在整个开发周期内更频繁地编写的新代码,每天至少将其添加到代码库。自动化测试是针对BIGL的每次迭代完成的,以识别在更容易修复时识别集成问题,这也有助于避免在释放的最终合并中的问题。总体而言,持续集成有助于简化构建过程,从而产生更高质量的软件和更可预测的交付时间表。

连续集成(CI)与连续交付(CD)与连续部署

通过持续集成,每个开发人员至少每天使用一次源代码的主分支(或优选地,每天多次)整合它们的工作。 连续交货另一个Devops实践,而是专注于将任何经过验证的更改提供对代码基本更新,错误修复,即使是新功能,也可以尽可能快速安全地到达用户。连续部署进一步简化了过程,使用自动化测试来验证代码基础更改,从而导致更立即更新。

连续交付拾取持续集成结束,自动将应用程序交付给选定的基础架构环境。它确保将代码更改的自动化更改为不同的环境,例如开发,测试和生产。

好处

以下是持续整合提供的一些最值得优惠:

  • 连续并展示改进反馈的进展
  • 早期和改进的错误检测和度量标准,可让您在入住时间内提前解决错误
  • 改善团队合作;团队中的每个人都可以更改代码,集成系统并快速确定与软件的其他部分冲突
  • 改进的系统集成,可在软件开发生命周期结束时减少惊喜
  • 合并和测试的平行变化较少
  • 减少系统测试期间的错误数量
  • 不断更新系统以测试

ci,敏捷和devops

敏捷

敏捷是一种软件开发实践,可提高软件开发团队如何组织自己,适应要求和发布软件的变化。因为 连续集成(链接驻留在IBM之外) 和 敏捷开发(PDF,153 KB) 分享许多相同的功能(例如,测试自动化),在同一时间谈论连续集成和敏捷可以很有用。敏捷组织开发成较小的工作组或冲刺。在Devops应用时,这些组合实践有助于确保软件质量和项目灵活性。

持续整合要求您经常整合工作,通常每天多次。您可以通过自动构建验证集成,以尽早检测到集成错误。构建应包括运行测试作为验证的一部分。在自动化测试环境中扩展到运行时间测试的快速测试,自然导致连续交付。

敏捷(链接驻留在IBM之外) 也是迭代并适应改变,因此它可以随着时间的推移来扩展和发展解决方案。在持续集成的背景下,敏捷软件开发是关于在持续集成时优先考虑功能的值的优先顺序的方式来传递软件迭代。

德沃斯

在里面 德沃斯 框架,持续集成在软件开发过程的开头,您每天至少检查一次代码,以使您的本地副本从代码构建的主要分支中漂移太远。这有助于您避免灾难性的合并冲突,可以“打破”构建并带走团队数小时或几天来解决。

持续集成作为连续交付的测试,部署和发布阶段的先决条件。整个开发团队将在办理登机手续内部完成是否创建了不良代码,因为持续集成服务自动构建并测试任何错误的代码更改。

开源连续集成工具

以下是一些最受欢迎的连续集成工具:

  • 詹金斯:jenkins广泛使用的开源连续集成工具,jenkins允许开发人员在将其提交到源存储库时自动构建,集成和测试代码,使开发人员更容易提前捕获错误并更快地部署软件。 Docker插件可在Jenkins上获得。
  • CapletBot.:BuildBot可以自动化软件开发周期的所有方面。作为作业调度系统,它队列并执行作业,并报告结果。
  • :从人群中脱颖而出的是管道的概念,这使得复杂构建工作流程的建模容易。
  • IBM Urbancode Build.
  • 特拉维斯CI.:最古老,最受信任的托管解决方案之一,它也可以在企业的本地版本中提供。
  • Gitlab CI.:Open Source Rails项目的一个组成部分,Gitlab CI是一个免费的托管服务,提供详细的Git存储库管理,其中包含访问控制,问题跟踪,代码评论等功能。

与开源工具进行连续集成提供了许多优势,包括以下内容:

  • 数百个可以支持您的项目的插件
  • 对开源语言的广泛支持,例如Python, java. 和javascript.
  • 没有成本,给予学生,初创公司和开发人员在侧面工作,这是一款在预算上轻松的强大工具
  • 自定义性,允许开发人员占据CI工具的基础,并在其顶部构建以满足需求
  • 能够修改和重新分发工具的能力

开源连续集成工具考虑软件开发工作流程包括Jenkins,Go,BuildBot和Travis CI,您可以在下一节中读取。

用例

以下假设用例说明了两个软件开发人员如何使用持续积分来提高其DevOps过程。

这两个开发人员必须在哪些功能以及如何互相沟通。这支小团队需要定期更新,必须能够整合并测试整个代码。调度代码办理登机手续和测试占据了很多开发时间。需要一种用于连续集成的自动系统。

当这些组合和测试发生时谈判会吃很多开发者的时间。

为此,他们必须同意以下内容:

  1. 何时开始测试代码集成
  2. 如何测试集成成功
  3. 如何向团队传达结果

连续集成平台对这些问题的默认答案以及最允许配置和设置。

通常,像Jenkins这样的CI平台开始在办理登机手续的集成测试。选中新代码时,CI系统将运行一组测试,该测试可以包括单元测试和回归测试,然后确定代码是否已成功集成。

或者,如果您使用的是编译语言,则默认测试将是代码成功编译的。如果没有,那么新代码打破了构建。对于像Python或JavaScript这样的语言,您必须创建自己的集成测试。

无论哪种方式,大多数CI系统都记录集成尝试,成功率和其他指标。

服务器

连续集成服务器是一个软件工具,可集中所有连续集成操作,并为您提供可靠,稳定的平台,为您构建项目。您可以配置和调整CI服务器以构建不同平台的各种项目。连续集成服务器轻松模拟并可视化复杂的工作流程(启用连续交货),并为建立连续交付管道提供直观的界面。连续集成服务器提供执行以下操作的能力:

  • 在一个地方运行自动构建,测试和发布
  • 随时部署任何版本
  • 保持配置
  • 支持插件以增强功能
  • 监控项目的存储库
  • 提取更改并执行您为成功提交定义的任务)
  • 通过构建的详细信息向相关项目成员发送反馈

测试的重要性

连续测试 当您生成连续集成构建和包(也称为可安装实体或打包实体)时开始。当包装实体进入生产时,它会停止。从端到端的每一步都涉及测试套件。

至少,当您只有一个测试阶段时,30%的连续集成涉及测试。实际上,持续的整合活动包括50%至70%的测试。它曾经是你必须手动完成测试。现在,您可以使用自动测试 - 成功持续集成的关键。

作为持续集成的自动化测试的一部分,测试驱动的开发迭代地构建代码并一次测试一个用例,以确保测试覆盖,提高代码质量并设置连续交付的基础。自动化测试告诉您新代码是否失败了应用程序所有功能区域中开发的一个或多个测试。最佳实践需要开发人员在其本地环境中运行所有或测试子集,这确保开发人员在新代码更改传递测试后仅将源代码提交到版本控制。经验表明,有效的回归测试可以帮助避免不受欢迎的惊喜。

连续集成管道

连续集成管道自动化项目管道的阶段 - 例如构建,测试和 部署 - 一种可重复的方式,具有最小的人类干预。自动持续集成管道是必不可少的,可以通过启用控件,检查点和速度来简化应用程序的开发,测试和部署。

最佳实践

持续的集成过程是Devops的关键组件,它可以帮助您将您的开发和运营团队统一到共享存储库中,用于编码,测试,部署和支持软件。以下是一些可以帮助您成功的CI最佳实践:

  • 维护单个源代码存储库: 使用源控制管理来跟踪和控制构建产品的所有文件。这种合并的代码库使分发和可见性更容易。
  • 自动化构建: 这涉及编译,链接和其他生成构建工件的进程。也应该自动测试。
  • 使用每日主线提交: 强制开发人员每天至少将其更改其对主要开发流的变化。每个开发人员必须验证其工作副本是否与主要开发流保持一致。
  • 在生产环境的克隆中进行测试: 使测试环境尽可能相似于您的最终生产环境。
  • 自动部署: 实现多个环境(开发,集成,生产)来运行构建和测试。

连续集成和IBM云

IBM认为使用模板定义和自动化项目和配置安全性。当对库进行更改时,依赖应用程序是重建和连接/链接/捆绑的。了解应用程序依赖项将为您提供帮助 现代化您的应用程序。了解IBM如何帮助现代化和组织的帮助 云之旅.

迈出下一步:开始管理软件构建,包括缩放和配置,提供帮助 IBM Urbancode Build..

开始使用 IBM Cloud帐户今天.