2026-06-16 10:34:58
网易轻舟的CD系统基于云原生技术构建,以Kubernetes为基础设施,通过模块化架构实现高效的应用交付流程。以下是其核心设计与实践细节:
部署架构网易轻舟CI/CD容器部署系统采用管控集群与业务集群分离的架构设计,支持多云多集群部署:
API层:接收用户配置(如工作负载、发布策略等),转换为CRD存入etcd。
管控集群Operator:包含多个控制器,监听CR变化并触发发布流程。
业务集群Operator:执行具体操作(如工作负载创建、流量切换),通过ExecutionCRD抽象发布任务。

系统通过应用模板实现资源聚合管理:
Topic1(应用定义):应用模板生成版本。
Topic2(发布流程):自动化流程驱动版本升级。
Topic3(工作负载管理):基于K8s原生资源(Deployment/StatefulSet)扩展。

采用多阶段串行工作流,支持灵活扩展:
每个阶段可定义并行指令,全部完成后进入下一阶段。
支持手动/自动继续模式,用户可干预关键节点。
阶段前/后钩子:集成自动化测试、金丝雀验证或服务网格流量控制。
典型场景:
测试平台集成:阶段完成后触发验证,结果通过后继续流程。
金丝雀发布:定义健康指标阈值,自动推进阶段。
灰度流量控制:通过ServiceMesh动态调整流量比例。

支持四种核心模式,满足多样化需求:
单阶段直接更新Deployment,由K8s控制器完成滚动升级。
通过多Deployment副本数调整实现平滑过渡。
示例:10副本应用分两阶段发布,第一阶段50%流量到新版本,第二阶段全量切换。
按百分比或固定数量逐步扩容新版本,缩容老版本。
配置示例:
strategy: type: Custom custom: percentageList: [50, 100] # 分两阶段发布通过修改Service SelectorLabel切换流量:
部署新版本Pod并打标签。
更新Service选择新标签。
验证后缩容老版本。
基于CRD+控制器实现实时状态跟踪:
网易轻舟CD系统通过云原生架构、模块化设计和自动化流程,实现了高效可靠的应用交付。其核心优势包括:
该方案为企业提供了从代码提交到生产部署的全链路自动化能力,显著提升了交付效率与稳定性。