CI/CD 管道是什么？
CI CD

> 
> 你如何定义持续集成/持续部署管道取决于你组织的要求。
> 
> 
> 


![Plumbing tubes in many directions](/data/attachment/album/202107/02/105840iz2w2acqc1tq2ccn.png "Plumbing tubes in many directions")


<ruby> 持续集成 <rt>  continuous integration </rt></ruby>/<ruby> 持续部署 <rt>  continuous deployment </rt></ruby>（CI/CD）管道是每个 DevOps 计划的基础。 CI/CD 管道打破了传统的开发孤岛，使开发和运营团队能够在整个软件开发生命周期中进行协作。


更好的是，转向 DevOps 和 CI/CD 管道可以帮助你的组织以更高的速度更安全地 [交付软件](https://techbeacon.com/devops/5-reasons-why-cicd-vital-your-organizations-value-stream)。


### 拆解 CI/CD 管道


CI/CD 管道有很多定义，所以我总是建议组织定义自己的 CI/CD 管道版本和其他 DevOps 概念，而不是使用其他人的。开源 CI/CD 工具为你提供构建满足组织要求的 CI/CD 管道的自由和选择。


形成 CI/CD 管道的阶段是将不同的任务子集分组为 *管道阶段*。典型的管道阶段包括：


* **构建**：开发人员编译应用程序代码。
* **测试**：质量保证（QA）团队使用自动化测试工具和策略测试应用程序代码。
* **发布**：开发团队将应用程序代码交付到代码库。
* **部署**：DevOps 团队将应用程序代码分阶段投入生产。
* **安全性和合规性**：QA 团队根据项目要求验证构建。这是组织部署容器扫描工具的阶段，这些工具根据<ruby> 常见漏洞和暴露 <rt>  Common Vulnerabilities and Exposures </rt></ruby>（CVE）检查容器镜像的质量。


这些是 CI/CD 管道的标准阶段，但一些组织调整 CI/CD 管道模型以满足他们的要求。例如，为医疗保健市场构建应用程序的组织，具有严格的合规性标准，可以在整个工具链中分发测试、验证和合规性门槛。


其他示例可能是依赖于具有开源软件（OSS）的复杂软件供应链的组织。商业组件可能会设立一个门槛，开发团队成员可以在其中为 OSS 包生成 <ruby> <a href="https://www.ntia.gov/SBOM">  软件物料清单 </a> <rt>  software bill of materials </rt></ruby>（SBOM），或者外部商业软件供应商必须将 SBOM 作为其合同可交付成果的一部分进行交付。


### CI/CD 管道的障碍


实施 CI/CD 管道会改变团队的流程和文化。尽管许多开发人员愿意接受某些任务和测试的自动化，但人员可能成为采用 CI/CD 的障碍。


从瀑布式流程转向 CI/CD 可能会动摇某些组织中基本的和隐含的权力结构。由于 CI/CD 管道提高了软件交付速度，旧手动流程的“守门人”可能会受到这种变化的威胁。


### 整合机会


随着你在文化、流程和工具中达到更高的 DevOps 成熟度水平，包含 CI/CD 工具链的工具的开源根源为一些激动人心的集成创造了机会。


分析公司 Forrester 在 2020 年预测，<ruby> 即时学习 <rt>  just-in-time learning </rt></ruby>将加入 CI/CD 管道。如果你考虑一下，会发现这是有道理的。在当前远程工作的时代，甚至对于新员工的远程入职，这更有意义。例如，组织可以将文档 wiki 与内部流程文档集成到其管道中。


更雄心勃勃的组织可以将学习管理系统（LMS）（例如 [Moodle](https://moodle.org/)）集成到其 CI/CD 管道中。它可以使用 LMS 发布有关新 DevOps 工具链功能的简短视频，开发人员在加入时或在整个管道中更新工具时需要学习这些功能。


一些组织正在将群聊和其他协作工具直接集成到他们的 CI/CD 管道中。聊天平台提供警报并支持团队之间的协作和沟通。将 Mattermost、Rocket.Chat 或其他 [企业聊天](https://opensource.com/alternatives/slack) 平台集成到你的 CI/CD 管道中需要预先规划和分析，以确保管道用户不会被警报淹没。


另一个需要探索的集成机会是将分析和高级报告构建到你的 CI/CD 管道中。这有助于你利用通过管道传输的数据。


### 总结


CI/CD 管道是 DevOps 的基础。开源使其能够适应并灵活地满足你在 DevOps 之旅中实施的运营变更所产生的新需求。


我希望看到对统一 DevOps 平台趋势的开源响应，在这种趋势中，组织寻求端到端的 CI/CD 解决方案。这种解决方案的要素就在那里。毕竟，GitLab 和 GitHub 将他们的平台追溯到开源根源。


最后，不要忘记每一个成功的 CI/CD 工具链背后的教育和外展。记录你的工具链和相关流程将改善开发人员入职和持续的 DevOps 团队培训。


你和你的组织如何定义你的 CI/CD 工具链？请在评论中分享你的反馈。




---


via: <https://opensource.com/article/21/6/what-cicd-pipeline>


作者：[Will Kelly](https://opensource.com/users/willkelly) 选题：[lujun9972](https://github.com/lujun9972) 译者：[baddate](https://github.com/baddate) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
A continuous integration/continuous deployment (CI/CD) pipeline is an anchor for every DevOps initiative. The CI/CD pipeline breaks down traditional silos and enables development and operations teams to collaborate throughout the entire software development lifecycle.

Better yet, moving to DevOps and a CI/CD pipeline can help your organization [deliver software](https://techbeacon.com/devops/5-reasons-why-cicd-vital-your-organizations-value-stream) more securely at a higher velocity.

## Breaking down the CI/CD pipeline

There are many definitions of CI/CD pipelines out there, so I always advise organizations to define their own version of a CI/CD pipeline and other DevOps concepts rather than using someone else's. Open source CI/CD tools give you the freedom and options to construct a CI/CD pipeline that meets your organization's requirements.

The stages that form a CI/CD pipeline are distinct subsets of tasks grouped into *pipeline stages*. Typical pipeline stages include:

**Build:**Developers compile the application code.**Test**: The quality assurance (QA) team tests the application code using automated testing tools and strategies.**Release:**The development team delivers the application code to the code repository.**Deploy**: The DevOps team stages application code to production.**Security and compliance**: The QA team validates a build based on the project's requirements. This is the stage where organizations deploy container-scanning tools that check the quality of images against Common Vulnerabilities and Exposures (CVEs).

These are standard stages for a CI/CD pipeline, yet some organizations adapt the CI/CD pipeline model to fit their requirements. For example, an organization building applications for the healthcare market, with its stringent compliance standards, may distribute the test, validation, and compliance gates throughout their toolchain.

Other examples might be an organization that depends on a complex software supply chain with open source software (OSS). Commercial components may institute a gate where development team members generate a [software bill of materials](https://www.ntia.gov/SBOM) (SBOM) for OSS packages or the outside commercial software vendor must deliver an SBOM as part of their contract deliverable.

## Barriers to CI/CD pipelines

Implementing a CI/CD pipeline changes a team's processes and culture. While many developers are receptive to automation of some tasks and testing, people can be a barrier to CI/CD adoption.

Moving from a waterfall process to CI/CD can shake up the fundamental and implied power structure in some organizations. Since a CI/CD pipeline increases software delivery velocity, the "gatekeepers" of your old manual process may feel threatened by this change.

## Integration opportunities


The open source roots of the tools comprising a CI/CD toolchain create opportunities for some exciting integrations as you achieve greater DevOps maturity levels in your culture, processes, and tooling.

Analyst firm Forrester predicted in 2020 that just-in-time learning will join the CI/CD pipeline. It makes sense if you think about it. It makes even more sense in the current era of remote work and even for remote onboarding of new employees. For instance, an organization could integrate a documentation wiki into its pipeline with documentation of internal processes.

A more ambitious organization can integrate a learning management system (LMS) such as [Moodle](https://moodle.org/) into its CI/CD pipeline. It could use the LMS to publish short videos about new DevOps toolchain features that developers need to learn as they onboard or when tools are updated across the pipeline.

Some organizations are integrating group chat and other collaboration tools directly into their CI/CD pipelines. The chat platform serves alerts and enables collaboration and communication among teams. Integrating Mattermost, Rocket.Chat, or another [enterprise chat](https://opensource.com/alternatives/slack) platform into your CI/CD pipeline requires upfront planning and analysis to ensure that pipeline users won't drown in alerts.

Another integration opportunity to explore is building analytics and advanced reporting into your CI/CD pipeline. This helps you harness the data that courses through your pipeline.

## Final thoughts

The CI/CD pipeline is foundational to DevOps. And open source makes it adaptable and flexible to new requirements resulting from operational changes you implement during your DevOps journey.

I hope to see an open source response to the unified DevOps platform trend, in which organizations seek an end-to-end CI/CD solution. The makings of such a solution are out there. After all, GitLab and GitHub trace their platforms back to open source roots.

Lastly, don't forget the education and outreach underlying every successful CI/CD toolchain. Documenting your toolchains and accompanying processes will improve developer onboarding and ongoing DevOps team training.

How do you and your organization define your CI/CD toolchain? Please share your feedback in the comments.

## 2 Comments