持续交付2.0

云原生趋势下的平台工程

Image

“ 平台工程是对DevOps。”

1

平台工程提出
必须有好的使用体验

随着云原生技术的发展,开发人员面临日益增长的“认知负担”,企业需要关注开发者的使用体验,提供良好集成化的工具和平台工程。

目前大多数企业并不是缺少工具,而是不具体良好的使用体验,业务开发工程师在使用时,有很大的谁知负担,需要在这些工具上花费软多的精力。

平台工程是软件行业从手工业向工业化转变的标志,涉及设计或构建工具链和工作流程,构建内部集成化的平台以衔接业务和基础设施。

平台需要具备可运维性和可扩展性等特性,而“工程”则意味着将构建平台视为一个复杂系统进行开发,需要目标分析、用户分析、建模实施及推广运营。

例如,在字节跳动的实践中,CI/CD是关键环节,公司通过灵活的流水线引擎整合内部工具,实现从代码提交到产品发布的全流程自动化。面临的挑战包括集成成本、稳定性和可用性问题。字节跳动通过关注高频工具链、提供监控能力和平台降级能力来解决这些问题。

2

平台工程的未来发展将趋向
流程化、智能化和规模化

另外,针对不同规模,其平台工程也会发生本质需求的变化。人员规模小,也意味着系统复杂性不高,此时还主要关注于“能用”,流程简单,教育成本在自己团队内就可以消化。但是,随着规模扩大,会带来更多的挑战,包括差异化、安全性、业务交付和工具链复杂性。

例如,字节跳动采用流程化和插件化来解决这些问题,构建了一个三层设计思路:底层的原子能力或插件、中层的灵活流水线系统和顶层的业务价值交付流程整合。

平台工程的未来发展将趋向流程化、智能化和规模化。

流程化意味着平台工程可能成为软件研发的超级流水线,智能化指AI技术将提升各节点的效率,而规模化则是以低成本实践新技术的前提。

例如,字节跳动的平台工程主要服务于研发团队,包括研发、QA和SRE。平台工程应该面向全链路,使得整个公司的研发资源能够在一个平台上完成研发流程的工作流沉淀。

云原生容器化技术相较于传统CI/CD更加注重标准化和通用性,有助于加速工具链的产生和规模化。

最后,平台工程是以解决工程效率问题为目标,应该像汽车的进化一样,能够帮助屏蔽很多底层技术,消除琐事,降低使用者的学习成本,降低“因为不小心而导致故障”的故障率。