平台工程及其在云原生范式下的实践
核心观点与背景
平台工程是对DevOps的继承与发展,旨在通过构建内部开发者平台(IDP)和开发者门户(DevPortal),平衡研发自助与认知负载,提升开发者工作效率和体验。平台工程强调以开发者为中心,整合成熟工具构建工具链路,解决DevOps工具碎片化、配置管理复杂、CI/CD分裂等问题。
案例背景与挑战
某大型云服务系统面临多云异构、多地域交付的复杂场景,主要挑战包括基础设施差异、异构制品形态、多组件依赖关系复杂、规模化运维困难等。开发者痛点集中在工具杂乱、配置管理复杂、CI/CD工具分裂、烟囱式建设严重等方面。
解决思路与设计实现
平台编排框架
- 应用交付模型:采用三层分层交付模型(平台-产品-应用),通过TPL配置模板实现应用开发者自助管理。
- 可扩展IaC部署控制器:支持多应用、多集群自动化交付,实现基础设施与应用的整体编排。
GitOps持续交付
- 流程设计:基于Git配置仓库,通过Kustomize模板语言实现灵活配置管理,支持Local-Build和实时态diff。
- 文件管理:共享配置仓库,分级管理全局与应用配置。
开发者门户DevPortal
- Backstage集成:利用Backstage开源项目构建统一数据模型和插件体系,实现工具集成与信息聚合。
- Entity模型:基于Kubernetes Object Format定义扩展Entity类型,支持多业务系统集成。
- 插件生态:通过单体插件、服务后端插件、第三方后端插件三种方式实现功能扩展。
- 站点架构:面向研发/运维/运营一体化后台,支持元数据管理、CICD协同、业务运营等功能。
CICD流程协同平台
- 核心功能:自动化工具驱动交付流程,实现研发-测试-发布环节自动流转。
- 数据管理:版本&制品管理、构建配置、流水线模板等。
成果与结论
- 效率提升:CICD全流程在线化协同,配置管理和产品交付效率提升60%。
- 体验改善:研发人员体验提升,平台满意度达85%。
下一步方向
- 平台工程x工程效能改进:定义度量体系,实现规范引导,覆盖开发者完整行为轨迹,深入分析优化建议。
关键数据
- 配置管理和产品交付效率提升:60%
- 研发人员平台满意度:85%