乐趣区

关于ci:用对工具CI事半功倍

Hi!咱们是 DevSecOps 研发平安经营解决方案提供商、Atlassian 寰球白金合作伙伴——龙智。在过来的十多年间,传统软件研发模式发生巨变,从瀑布式开发到麻利再到 DevOps,开发和运维之间已经明确的界线正在缓缓变得含糊。

DevOps 因为可能促成开发、运维、测试等不同部门的沟通、合作与整合,正在悄悄成为软件研发经营支流趋势。倒退至今,DevOps 也联合了新的流程,比方继续集成和继续部署来疾速交付价值。

如果您对 DevOps 还知之甚少,或是想要更深刻地理解 DevOps 工具链,请不要错过本系列文章。龙智将从 DevOps 的概念、DevOps 工具链、CI 及工具比照、DevOps 监控、DevSecOps 五个方面动手,让您从起源开始,逐渐深刻理解 DevOps 这个已风行数十年的方法论。

撑持 CI 的根底

CI(Continuous integration 继续集成,下⽂均简称为 CI)建⽴在麻利和 DevOps 软件开发最佳实际之上,其通过 Pipeline 实现⾃动化测试、版本控制、⾃动化构建和⾃动化部署。撑持 CI 的每⼀个根底都有着⾃⼰的⼯具和理念⽣态零碎。软件开发⼯具提供商曾经开始提供残缺的 CI 即服务(CI-as-a-service)产品,这些产品将撑持 CI 的根底都捆绑到⼀个整体的包中。为了让您更好地了解捆绑产品,让咱们回顾⼀下 CI 的根底。

源代码管制版本治理

CI 最重要的根底是 Pipeline,它从获取源代码到实现部署,连贯并治理着版本控制系统,测试管理系统,编译构建零碎等诸多不同⽬的的⼯具,⽤于沟通和解决在同⼀代码库中⼯作的多个开发⼈员之间的编辑抵触。各种各样的⼯具都提供了源代码版本与配置管理性能,其中,最风行的有 Perforce Helix Core、Git 和 Subversion。CI 即服务产品是以版本控制系统为核心的。

Subversion 作为第⼆代版本控制管理系统,其采⽤的尽管是集中式的版本治理,且仅具备根本合并性能,但其通过元数据管理版本的⽅式相当易于了解和治理,作为⼀名⽼将,⾄今仍沉闷在泛滥较为小型的开发项⽬当中。

Git 是典型的第三代分布式版本控制管理系统,它具备所有 DVCS 的长处,让您能够随时随地提交您的构想与实际。其灵活多样的分⽀策略是泛滥不同规模开发团队采⽤它的重要起因,但当许多开发人员同时应用 Git 时,性能和生产效率会降落。

Perforce Helix Core 是⼀款⾼效灵便的版本控制软件,它具备集中式或分布式等多种部署样态,可治理大型且简单的二进制文件。其强⼤的压缩传输与⽂件级别的超细颗粒度权限治理,能给企业带来平安,疾速的使⽤体验。

自动化测试

大多数软件我的项目都蕴含一个额定的代码库,此代码库并不明确地负责业务产品和性能。这个主要的代码库是一个测试套件,充当一组断言,确保次要代码库在没有谬误的状况下正确工作。在开发过程中,这些测试由开发人员运行,用来验证新代码没有对现有性能造成任何回归。

这些测试用例也能够通过无关的工具来运行,以自动化这个验证过程。CI 服务产品将针对用户指定的事件,主动运行我的项目的测试用例。通常,当开发人员应用版本控制系统推送代码时,一个事件将会触发整个测试套件主动运行。

Bitbucket Pipeline 是 Atlassian 为 Bitbucket Cloud 产品增加的⼀个重要性能,为了构建强⼤的⾃动化⼯作流程。借助 Bitbucket Pipeline,可⾃动执⾏测试。Bitbucket Pipeline 使⽤配置即代码来治理和配置基础架构,并与 Jira 严密集成。

如果您使⽤的是 Bitbucket 本地部署的 Server 版或 Data Center 版,那么能够通过 Bamboo 来进⾏⾃动化测试。它⽆缝集成 Jira 和 Bitbucket 服务器,带有内置的 Git 分⽀和⼯作流,能够帮忙你依据分⽀名称⾃动检测、构建、测试分⽀并合并到(筹备或⽣产)服务器。

不仅是 Bitbucket 和 Bamboo,Jira 还集成了许多测试用例管理工具,能够帮忙您进行自动化测试,例如 Xray、Zephyr、TestRail 等。

Xray 反对多种自动化测试框架,利用自动化脚本的触发性能,真正实现自动化测试,将 DevOps 的能力进步一个档次。

Zephyr 反对将测试增加到打算、开发、缺点跟踪和报告过程中,全副在 Jira 内治理。

TestRail 是基于 Web 的测试管理工具,可用于治理、跟踪和组织软件测试工作。它遵循集中的测试治理概念,有助于轻松沟通,并可能跨 QA 团队进行疾速开发工作。

自动化构建

“构建”是为软件我的项目的以后公布版本创立快照的制品。构建通过各种网络分发给最终用户。我的项目通常会采取一组脚本化的步骤来创立构建制品。CI 工具通过应用来自版本控制系统的主动触发器,来帮忙简化此构建过程。一个示例触发器是当新代码合并到代码库的生产分支时,将构建文件上传到近程服务器以供用户下载。

您能够使⽤ Bitbucket Pipeline 来进⾏⾃动化构建。它将在一个 bitbucket-pipelines.yml 文件中存储和治理您的构建配置,只需 7 行代码即可开始应用。

同样的,如果您应用 Bitbucket 的 Server 版或 DC 版,Bamboo 反对创立多阶段构建打算、设置触发器以在提交时开始构建,并将代理调配给要害的构建和部署。

自动化部署

当构建筹备好散发时,它们要通过一个部署过程。依据我的项目部署的不同,可能会有多种后果。例如,web 我的项目被部署到公开可拜访的 web 服务器上。在此部署期间,在构建阶段生成的制品将复制到 web 服务器上。挪动端和桌面端的部署过程各不相同,可能须要上传至“利用商店”,以便用户下载应用程序。

在 Bitbucket Pipeline 中治理部署很轻松,它使部署具备可⻅性,并能跟踪和预览部署状况。

本地部署能够应用 Bamboo,单调乏味的部署我的项目将会主动公布到每个环境中,同时让您可能应用按环境授予的权限来管制流程。

CI 工具比拟

Bitbucket Pipeline

简介:Bitbucket Pipeline 是由 Atlassian 提供的云版本控制系统,它是⼀款间接集成到 Bitbucket 中的 CI/CD ⼯具。如果你的项⽬曾经提交到 Bitbucket 上了,那么 Bitbucket Pipeline 将是开启 CI 的⼀个简略步骤。Bitbucket Pipeline 脚本作为配置既代码的实际,您能够很容易地执⾏以后版本中的 Pipeline 脚本来开始构建。此外,Bitbucket Pipeline 还提供 CD(继续交付),这意味着使⽤ Bitbucket Pipeline 构建的项⽬也能够通过脚本来部署到软件开发⽣命周期环节中的各种环境中去。理解更多 …

特点:

  • 简略的配置
  • 对立的 Bitbucket 体验
  • 云托管,缩小运维开销

Jenkins

简介:Jenkins 是⼀个被⼴泛使⽤的⽼牌 CI/CD ⼯具。它是开源的,由社区更新驱动。Jenkins 是本地部署的。当您的企业须要本地⽀持来解决 HIPAA 合规性数据等敏感客户时,Jenkins 是⼀个很好的抉择。理解更多 …

特点:

  • 本地部署
  • 开源
  • 弱小的插件生态系统

Atlassian Bamboo

简介:Atlassian 的另⼀款 CI/CD 产品。Bitbucket Pipeline 纯正是云托管选项,⽽ Bamboo 提供了⼀个⾃托管的代替⽅案。理解更多 …

特点:

  • 与 Atlassian 产品套件的最佳集成
  • 一个扩大的附加组件和插件市场
  • Docker 代理的容器反对触发
  • IFTTT 性能的 API

CloudBees CI

简介:CloudBees CI 相当于 Jenkins 企业版,同时也是 Jenkins 的重要贡献者,其团队奉献了 Jenkins 中 80% 以上的代码。CloudBees 为企业提供灵便、可管控、可扩大的 CI,让开发者领有灵活性的同时,实现大规模、可视化的集中管理。理解更多 …

特点:

  • 建设在 Jenkins 上
  • 大规模的集中管理 Jenkins 实例
  • 开发者领有灵活性
  • 跟踪管制插件
  • 基于角色的权限管制治理

什么样的才是适宜公司的 CI 工具?

在为团队抉择 CI 工具时,有几个重要的决策因素须要思考。

版本控制系统反对

CI/CD 零碎的外围支柱是底层版本控制系统(VCS)的反对和集成。最受欢迎的版本控制是 Perforce Helix Core、Git、Subversion 和 Mercurial。云 CI 工具能够为这些 VCS 中的局部或全副提供反对。抉择一个为您的我的项目 VCS 提供反对的 CI 工具是至关重要的。

本地部署 vs. 云端部署

后面提到的一些 CI 工具,如 Bamboo、Bitbucket、CloudBees、Jenkins,都能够部署在本地。这意味着您的团队负责在您本人的基础设施上配置和治理 CI 零碎,并且本地部署可供二次开发的水平高,不便且不受限,还可提供深刻的配置选项。

如果本地部署不是您外围业务需要,而是一个额定工作,那么您还有云这个选项。云将 CI 工具的治理外包给第三方供应商,由云托管公司解决失常运行工夫、反对和 CI 工具的扩大,让您的团队专一于外围业务需要。这对于估算缓和的团队或须要积极关注产品市场匹配指标的小公司来说,云端部署是一个不错的抉择。

对利用容器化的反对

容器化是古代软件倒退的趋势。容器化反对散发应用程序不可变、可反复、隔离的正本。Docker 和 Kubernetes 等工具反对容器化。古代 CI 工具反对将容器集成到 CI/CD 过程中。

容器解决了“在我的电脑上工作”这个问题,并确保利用程序代码打包在零碎级依赖项的解冻快照中。这保障了当您的团队的代码在 CI 工具上执行时,它是本地环境的复制品。容器解决了在没有容器的状况下呈现的整个环境奇偶性故障排除问题。

插件和第三方集成

当与其余其余技术堆栈集成在一起时,CI 工具将变得更加有用。对于工程师团队效率和绩效的剖析,能够从 CI 工具中收集。Sprint 打算应用程序能够绑定到 CI 工具,以便在代码交付后自动更新 Sprint 状态。这些集成能够用于领导工程团队的 KPI 和路线图。

开始应用 CI

古代的 CI 工具是实现高性能工程团队的要害需要。工程师团队能够通过应用 CI 工具来优化他们的沟通和交付速度。市场上有许多风行的 CI 工具,在抉择 CI 工具时,须要思考的次要概念是版本控制系统反对、本地部署与云托管、部署管道和内部应用程序集成。

无论您喜爱应用什么 CI 工具,都能够集成到 Atlassian Open DevOps 中。Cloudbees、Jenkins、Xray…Atlassian 让您能够自由选择相熟的、青睐的工具,最大限度晋升团队效率。

龙智连续 Atlassian open DevOps 凋谢的理念,引入更多寰球当先工具,包含 Helix Core, Whitesource, Sonarqube 等,为企业量身定制 DevSecOps 解决方案。

并且,龙智作为 Atlassian 寰球白金合作伙伴,为帮忙开释及拓展 Atlassian 工具的力量,也自主开发了多款 Atlassian 插件,更适宜外乡企业应用。包含 Jira 工时治理插件(TimeWise for Jira)、Confluence 水印插件(Watermark for Confuence)、Jira 工作流扩大和并行审批插件(WorkflowWise for Jira)等,欢送征询试用。

文章起源:本文编译摘录自 Atlassian 文章《Continuous integration tools》,作者为 MAX REHKOPF,有删改。

想理解更多 Atlassian DevOps 解决方案、工具及客户案例?欢迎您立刻征询 Atlassian 寰球白金合作伙伴—龙智:电话:400-775-5506 邮箱:marketing@shdsd.com

退出移动版