平台工程概述
平台工程是一套构建和运营支持软件交付和生命周期管理的自助式内部开发者平台的机制和架构。其目标是优化开发者体验并加快产品团队为客户创造价值的速度。平台工程通过屏蔽基础设施复杂度、提供自服务API和工具,帮助开发人员更高效地交付产品。
平台工程兴起的背景
随着应用架构和基础设施的复杂多变,开发人员面临诸多挑战,如文档碎片化、外部依赖管理、CI流水线问题、环境管理复杂等。这些复杂度瓶颈导致开发人员效率和满意度降低,进而影响产品交付质量、速度和其他关键指标(如DORA关键指标)。
平台的定义
平台是一个数字化的基础,由自服务API、工具、服务、知识和支持组成,作为内部产品提供。自主交付团队可以利用平台更快、更高效地交付产品特性。
平台工程的价值
平台工程通过提供一站式自服务开发者门户和统一的应用及基础设施编排,帮助开发人员降低认知负担,提高效率,实现关注点分离,从而加速产品交付。
内部平台的构成
内部开发者平台通常包括开发者门户、应用及基础设施编排工具、基础设施层等。开发者门户提供资源及信息共享、最佳实践共享、全局搜索和一站式操作等功能。应用及基础设施编排工具支持多应用运行时、动态配置管理、关注点分离等。
典型内部平台的技术栈
目前平台建设的主要演进技术方向包括面向开发人员的一站式自服务开发者门户和以应用为核心的应用及基础设施统一编排。开发者门户框架如Backstage,应用及基础设施编排工具如OAM、Score、Crossplane等。
平台工程的建设原则
平台工程的建设原则包括:
- 最小可用平台:基于实际使用情况构建简单易用的平台,降低开发者认知负担。
- 铺平路径:通过平台为开发人员提供一致性、可预测、透明的应用迭代交付体验。
- 平台即产品:以产品开发的理念建设平台,确保平台跟随企业数字化深入不断迭代演进。
- 用户自服务:最大化用户自服务能力,提升自动化程度,提高开发者效率,最大化价值交付。
ChatGPT在平台工程领域的应用
ChatGPT可以辅助开发者门户、应用及基础设施编排等环节,如生成应用模块代码、辅助纠错、提交代码模块到Git仓库等。通过微调和专用模型,ChatGPT可以进一步优化产品团队体验、提高产品团队效率。
Seal在平台工程领域的尝试
Seal是一个企业内部开发者平台,提供开发工具、模板及文档等,支持持续集成、流水线、可观测性等。Seal通过插件框架和第三方工具集成,帮助开发人员更高效地交付产品。