发布于 2026-01-05 7 阅读
0

面向开发者的 CI/CD 教程

面向开发者的 CI/CD 教程

DevOps 在软件开发团队中越来越受欢迎。这并不令人意外,因为它的诸多优势包括:精简的工作流程可以加快发布频率和部署周期,更快地发现缺陷,在出现任何错误时都能高效回滚,并最终提升团队整体效率。DevOps 工程师致力于优化代码开发、测试和发布的流程和实践,从而降低效率低下、风险和产品上市时间。结合持续集成 (CI) 和持续交付 (CD),DevOps 通过自动化与代码部署相关的手动任务,帮助 IT 组织简化开发流程。接下来,我们将探讨如何采用 CI/CD 来提升组织的效率和交付流程。

持续集成

首先,我们来看看CI/CD是什么以及它的优势。虽然这两个概念经常被放在一起讨论,但它们在软件开发过程中各自扮演着不同的角色。

持续集成是指自动化代码构建和测试的过程。它需要一个 SaaS 构建服务(例如 Harness Hosted Builds)或本地构建服务器,负责从源代码控制系统(例如 Git)获取代码,进行编译和测试,以确保代码无误。这有助于软件项目按计划进行,确保错误、缺陷和漏洞在出现的第一时间就被发现。如果构建失败,后续流程将暂停,直到问题修复。因此,构建过程更加高效。

持续交付与部署

持续交付 (CD) 实现了发布流程的自动化,确保代码始终处于可发布状态。该流程包括从构建系统中获取代码,并将其路由到预发布环境,以确保其符合发布要求。最终实现完全自动化的部署流程,该流程可以由团队控制,也可以由团队外部的触发条件触发(例如,当开发人员将代码推送或提交到主分支时)。CI 和 CD 的主要区别在于,前者侧重于构建代码,而后者侧重于发布最终产品。

下图展示了 CI、CD 和持续部署之间的区别。
ci 和 cd 图像

持续部署是 CI/CD 流程的最终阶段,也是最理想的阶段。在这个阶段,团队可以实现零人工干预的自动化代码部署。这正是持续交付和持续部署的区别所在。当代码部署需要人工干预时,这被称为交付。而如果代码部署完全自动化,无需任何人工干预,则称为持续部署。

如何在组织中实施 CI/CD

  1. 首先,你需要从持续集成(CI)入手。这个过程可以确保代码经过测试,干净整洁,随时可以部署。
  2. 接下来就可以进入 CD 部分了,在这里你可以将代码部署到暂存环境,供团队审查。
  3. 一切审核通过后,即可将代码部署到生产环境。

CI/CD教程

今天,我们将向您展示如何通过简单的设置,在几分钟内实现 CI/CD。
CI/CD流程图

先决条件

  • 创建免费的 SingleStore 帐户。在本教程中,我们将使用 SingleStore 作为数据库解决方案。SingleStore 是一款高性能的内存数据库,同时支持 SQL 和 NoSQL 数据模型。
  • 免费Harness帐户,用于执行 CI/CD(本地部署)
  • 允许从任何云提供商访问 Kubernetes 集群来部署我们的应用程序(您也可以使用MinikubeKind来创建单节点集群)。
  • Docker,最好是Docker Desktop
  • 下载并安装Node.js

首先,我们将用 Node.js 创建一个简单的“Hello World!”应用程序,并编写一个简单的测试用例。为了方便起见,我已经创建了这个简单的“Hello World!”应用程序,并将其上传到了 GitHub。您可以fork 这个仓库来开始开发。

您在仓库中看到的 Dockerfile 将用于构建我们的应用程序并将其作为镜像推送到 Docker Hub。接下来,我们将使用以下命令构建镜像并将其推送到 Docker Hub:

docker buildx build --platform=linux/arm64 --platform=linux/amd64 -t docker.io/<docker hub username>/<image name>:<tag> --push -f ./Dockerfile .

构建和推送成功后,您可以通过访问您的 Docker Hub 帐户进行确认。
DockerHub镜像

您可以在派生的仓库中看到该deployment.yaml文件,它定义了部署 YAML 文件,以帮助我们把应用程序部署到 Kubernetes 集群。此时,请确保您的 Kubernetes 集群已启动并正在运行。

一切准备就绪后,就可以创建 Harness 帐户来进行 CI/CD 了。创建一个免费的 Harness 帐户并创建你的第一个项目。注册 Harness 后,你将体验到全新的 CI/CD 功能。

添加所需的连接器、GitHub 代码库、Docker Hub 和密钥(如有)。Harness 中的 Delegate 是一项服务/软件,您需要在目标集群(本例中为 Kubernetes 集群)上安装/运行它,以便将您的工件、基础设施、协作、验证和其他提供程序与 Harness 管理器连接起来。首次设置 Harness 时,您需要安装一个 Harness Delegate。
线束连接器

选择持续集成模块,并添加必要的阶段和步骤,如下所示。
带有线束图像的 cicd

“测试”步骤的设置如下:
npm 测试

“推送到 Docker 镜像仓库”步骤如下:
构建并推送镜像

接下来,建立部署流水线。
CD概述

请在“服务”选项卡中添加所需详细信息。
部署服务

在“环境”选项卡中定义环境类型。
环境

选择你偏好的部署方式,制定执行策略。
执行

保存所有内容并运行管道。
运行管道

你可以看到 CI 和 CD 都是按照指定步骤逐一执行的。
CI/CD 执行

恭喜!我们已成功构建并测试了应用程序代码,并使用 Harness 平台将其部署到我们的 Kubernetes 集群上。

您可以使用以下命令确认此部署kubectl get pods
Kubernetes部署

您可以看到文件中按照我们的规范运行了两个副本deployment.yaml。您也可以访问 Kubernetes 控制面板进行确认。由于我使用的是 Google Cloud (GCP),所以我可以看到并确认有两个 Pod 正在运行。
Kubernetes pods

Harness平台通过提供各种模块,帮助开发者轻松简化软件开发生命周期(SDLC)。今天我们了解了持续集成(CI)和持续交付(CD)模块,目前Harness共有七个模块。
利用 CI/CD 模块

CI/CD 和 DevOps

CI/CD 是任何 DevOps 策略不可或缺的一部分。它有助于自动化代码审查和测试流程,使团队能够更轻松地测试和部署软件。它也是构建持续改进文化的关键要素。但需要注意的是,CI/CD 并非万能灵药。构建DevOps 文化和方法论是第一步。同样重要的是,DevOps 下的这些流程和方法论并非一成不变;它们不断发展演进,并应根据团队的实际需求进行调整。

文章来源:https://dev.to/pavanbelagatti/cicd-tutorial-for-developers-3l0