今天,我们将回顾该术语的历史,讨论实施 CI 的困难,并提供几种流行的工具来帮助您使用它。
/flickr/
项
持续集成是一种应用程序开发方法,涉及频繁的项目构建和代码测试。
目标是使集成过程可预测,并在早期阶段检测潜在的错误和错误,以便有更多时间来修复它们。
持续集成这个术语首次出现于 1991 年。 它是由 UML 语言的创建者引入的
故事
1996 年,CI 被该方法论的创建者采用
2000年代初,敏捷联盟创始人之一开始推广持续集成方法论
该工具中的构建周期作为守护程序实现,定期检查版本控制系统以了解代码库中的更改。 今天就可以下载解决方案 - 它
分发者 在类似 BSD 的许可证下。
随着 CI 软件的出现,越来越多的公司开始采用这种做法。 根据 Forrester 研究 [第 5 页
如今,持续集成的实践已被各行各业的组织所采用。 2018 年,一家大型云提供商对来自服务、教育和金融行业公司的 IT 专家进行了一项调查。 在 58 名受访者中,XNUMX% 的人表示他们在工作中使用 CI 工具和原则。
怎么开动这个
持续集成基于两个工具:版本控制系统和 CI 服务器。 后者可以是物理设备,也可以是云环境中的虚拟机。 开发人员每天上传一次或多次新代码。 CI 服务器会自动复制它以及所有依赖项并构建它。 然后,它运行集成和单元测试。 如果测试成功通过,CI 系统就会部署代码。
总体流程图可以表示如下:
CI 方法对开发人员提出了许多要求:
- 立即纠正问题。 这个原则是从极限编程中引入 CI 的。 修复错误是开发人员的首要任务。
- 自动化流程。 开发人员和管理人员必须不断寻找集成过程中的瓶颈并消除它们。 例如,集成经常存在瓶颈
事实证明 测试。 - 尽可能经常举行集会。 每天一次同步团队的工作。
实施困难
第一个问题是运营成本高。 即使一家公司使用开放的 CI 工具(我们稍后会谈到),它仍然需要在基础设施支持上花钱。 然而,云技术可能是解决方案。
它们简化了不同规模计算机配置的组装。 公司的加分项
根据调查[第14页
第三个困难是自动化问题。 拥有大量未被自动化测试覆盖的遗留代码的组织面临着这个问题。 这导致在完全实施CI之前,代码被简单地重写了。
/flickr/
谁使用
IT 巨头是最先认识到该方法的好处的人之一。 谷歌
持续集成也对小公司有帮助,金融和医疗保健组织也使用 CI 工具。 例如,在 Morningstar,持续集成服务帮助修复漏洞的速度提高了 70%。 飞利浦医疗保健医疗平台能够将测试更新速度提高一倍。
工具
以下是一些流行的 CI 工具:
詹金斯 是最流行的 CI 系统之一。 它支持一千多个插件,可与各种VCS、云平台和其他服务集成。 我们还使用 1cloud 的 Jenkins:工具包含在我们的 DevOps 系统中 。 他定期检查用于测试的 Git 分支。建造机器人 — 用于编写您自己的持续集成流程的 Python 框架。 该工具的初始设置相当复杂,但广泛的自定义选项弥补了这一点。 在该框架的优点中,用户强调其资源强度低。大堂CI 是来自 Pivotal 的使用 Docker 容器的服务器。 Concourse CI 与任何工具和版本控制系统集成。 开发人员指出,该系统适用于任何规模的公司。亚特实验室持续集成 是内置于 GitLab 版本控制系统中的工具。 该服务在云中运行并使用 YAML 文件进行配置。 像 Concourse、Gitlab CI适用 Docker 容器有助于将不同的进程相互隔离。代号 是一个与 GitHub、GitLab 和 BitBucket 配合使用的云 CI 服务器。 该平台不需要长时间的初始设置 - Codeship 中提供了标准的预安装 CI 流程。 对于小型(每月最多 100 个构建)和开源项目,Codeship 是免费的。
来自我们公司博客的材料:
来源: habr.com