背景与挑战
腾讯课堂作为服务千万用户的教学平台,面临电商平台、教学平台、开放协作等多重业务场景,功能复杂且历史悠久。外部环境变化快,政策调整(双减)和疫情加速竞争,要求快速迭代。然而,实际迭代节奏与理想状态存在差距,表现为需求交付周期持续下降但成本上升,人员素养要求提高,协作效率不足导致交付周期延长。
核心问题
研发全流程中,理解成本高、分工不合理、交流不畅、落地执行不力是关键问题。具体表现为:
- 工具繁杂:DevOps工具多,上手成本高(如CI/CD工具、监控、配置管理等)。
- 流程缺失:缺乏对CI/CD环节、部署环境配置、运营流程的标准化。
- 配置分散:编译构建、发布监控、可观测系统配置不透明且分散。
- 协作障碍:主干开发、API沟通、测试左移、GitOps、看板等协作机制未有效落地。
解决方案
通过面向协作的DevOps流程设计与实践,提出以下改进方向:
-
理解与标准化:
- 统一化:构建云原生DevOps架构,整合工具链。
- 标准化:通过流水线模板对CI/CD环节、部署环境、运营流程进行标准化。
- 透明化:以代码为中心沉淀配置(如makefile、CD.yml、架构图、文档等),实现XAC+同源管理。
-
分工与拆解:
- 需求拆解:领域驱动设计(DDD),按业务流程、紧急程度、实现难度等拆分工作项。
- 领域拆分:从业务架构到系统架构再到代码实现分层解耦。
-
交流优化:
- 主干开发:单主干+TAG模式,简化版本管理。
- APIOps:规范接口协议,降低前后端沟通成本。
- 测试左移:自动化测试及时对齐,降低与测试人员沟通成本。
- GitOps:通过Git管理流程信息,降低与工具的交流成本。
- 看板:可视化项目进展和风险,提升团队协作透明度。
-
落地执行:
- 度量:通过ChatOps、小群协作、大群公示等方式高效推进问题解决。
- 自动化:度量单据沉淀、自动拉群、联动系统等功能提升执行效率。
结论
通过标准化、透明化、分工合理化、交流顺畅化及有效落地,腾讯课堂实现了更高效的协作模式,降低了交付周期,提升了研发效能。关键在于将非业务代码也纳入标准化管理,并通过工具链整合与流程优化实现全流程协同。