在互联网行业,敏捷开发及 DevOps 理念被越来越多的企业采纳,其本质作为一种协作文化,均为打破壁垒并增加成员共同责任感,同时还减少了交接,提高向客户交付的速度。
DevOps 在企业中不仅落地了流程化的工具(例如 CI,CD及容器),还整体改造了开发及团队协作的流程。对于中小企业来说,选择 CICD 工具尤其重要,使用成熟的工具及容器技术,不仅为企业节省成本,并获取了快速迭代和快速应对业务变化的能力。
CI/CD 与敏捷开发、DevOps 的关系如下图所示:
腾讯云容器服务(TKE)基于原生 Kubernetes 提供以容器为核心的解决方案,解决用户开发、测试及运维过程的环境问题,帮助用户降低成本,提高效率。实践 DevOps 理念需要用到许多工具与底层服务,且完成闭环链路需要长期投入及搭建复杂工具链体系,会消耗巨量时间和资源,甚至影响研发能效与交付能效、耽误业务的发展时机。而 Coding 与云端优势相结合,提供了统一协作平台及研发工具链。在 Coding 一体化研发效能平台上运行工作流,数据将会演化为项目实施过程中所积累的团队知识,沉淀为集体经验,帮助团队不断自我迭代更新。使用 Coding 还能够实施软件研发全生命周期管理,摆脱复杂的基础设施运维托管。
Coding 目前无缝对接 TKE 服务,本文档介绍在 Coding 中如何实现 CICD,并将服务部署到 TKE 集群中。
持续集成(Continuous Integration)简称 CI。在 CI 环境中,当开发者频繁地对代码进行更改合并,系统就会自动构建应用并运行不同级别的自动化测试来验证更改,以确保更改内容不会对应用造成破坏。测试内容涵盖了从类和函数到构成整个应用的不同模块。如果自动化测试发现新代码和现有代码之间存在冲突,CI 可以轻松且快速地修复错误。如下图所示:
说明:持续交付与持续部署的区别:持续交付是一种能力,持续部署是一种方式。
持续交付(Continuous Delivery)简称 CD。在完成 CI 的流程后,持续交付支持以下操作:
具体流程如下图所示:
持续部署(Continuous Deployment)简称 CD,是 CICD 的最后一个阶段。持续部署将持续交付在内的所有变更自动部署到生产环境。一般情况下,出于业务考虑可以选择不部署,如需部署必须先实施持续交付。具体流程如下图所示:
目前存在两种类型的 CI/CD 工具:On-Premise 和 Hosted 工具类 SaaS 服务。
On-Premise 需要用户搭建服务器来运行 CI/CD 工具。
Hosted 工具类 SaaS 服务无需用户搭建服务器。
Hosted 的优势如下:
Coding 是实现 CICD 流程的工具。Coding 提供整套的研发流程管理系统(包含完整的 CICD 流程)。从需求提交到产品迭代,产品设计、代码管理、自动化测试、持续集成、构建物管理及持续部署,整套流程均在 Coding 完成。使用 Coding 可以实现流水线标准化作业及自动化版本记录,从而降低企业研发管理难度,提升研发效率。
注意:该步骤以初次使用 DevOps 服务的主账号用户为例,如已开通服务则可跳过此步骤,进行 创建项目并创建代码仓库。
软件制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,通常可以直接在服务器运行。
注意:在设置好访问令牌后,需自行记录访问令牌,用于后续 TKE 拉取镜像。
注意:在执行构建计划前,需要执行以下命令,在 TKE 集群中把 Coding 的 docker registry 账号添加到集群中用来作为 pull 镜像授权。
kubectl create secret docker-registry coding --docker-server=coding的registry地址 --docker-username=用户名 --docker-password=密码 --docker-email=邮箱地址
本文简单介绍了 Coding 基于 TKE 实现 CICD 的基本使用,详细内容请参阅 Coding 官网文档。
本页内容是否解决了您的问题?