你说的是哪一种 IDP:内部开发者门户 OR 内部开发者平台?
在平台工程实践中,IDP 这一术语被高频提及,因为它几乎被认为是平台工程实践的第一步且是开发者最容易看得见摸得着的部分,是平台的最前哨。
那 IDP 到底是什么意思呢?我们在多个场合看到, IDP 即 Internal Developer Portal ;但也有人看到是 Internal Developer Platform ,甚至还有人看到同一个上下文中二者混用,同时出现。真相到底是什么? 必须搞清楚!
实际上,从业内实践和各企业案例、咨询公司调研报告等多个视角来看,IDP 作为一个术语缩写确实同时代表了二者,但又无法区分,而门户还是平台,确实是两个相关但又范畴不同的实体:
Internal Developer Portal 内部开发者门户
是一个平台能力与开发者之间的桥梁和界面,它通常是一个中心化的入口,以业务开发人员的视角提供了关于某个业务服务的所有信息,包括但不限于服务概览、CI/CD、环境、依赖、成品库包、资源等。典型的内部开发者门户通常包括:
全局统一软件服务目录:所有的平台能力可按需查找和使用
API 优先的开发者自服务操作:完善的 API 定义、文档、Demo/Playground
开发者优先的产品级体验:新手入门,文档,发布,管理基础设施等
Internal Developer Platform 内部开发者平台
狭义上的内部开发者平台即组织内部的产品研发平台,可能是一组工具集,也可能是有一定成熟度的平台组合,包含 IDE,Git,CI/CD,IaC 等;而广义上则指一切服务于内部开发者的平台类服务,包括开发、测试、发布、部署、运行、可观测、资源弹性能力管理等等,同时还有专门的第三方解决方案提供有一定通用性的内部开发者平台框架,但一定是不局限于 PaaS 平台。
内部开发者平台的一大好处是,可以有效管理“蔓延”,因为有越来越多的各种 SDK、服务、工具及类库可供开发者使用,但无节制地使用会带来高昂的隐形成本,导致严重的“蔓延”,而内部开发者平台可通过有效管理这类资源,减少同质资源的过度蔓延来降低隐形成本。举个例子,在中大型企业内部很容易出现某一个功能点就有 3 个以上甚至更多的备选方案,而且可能各有特色,对于开发者来讲选择的灵活度和自由度大幅增加,但其实对于企业来讲隐形成本也随之上升。
所以,我们的结论是:
平台侧重能力与资源的封装,门户则是基于平台能力之上,侧重开发者体验的提升(包括但不限于产品目录、服务生命周期可视化管理、自服务能力、文档体验、onboarding 引导、Demo 等);二者有机结合,通过降低开发者认知负荷来交付自服务和产品级体验的平台服务。
参考资料
https://www.configure8.io/blog/internal-developer-portal-vs-internal-developer-platform-whats-the-difference-and-why-both-matter
https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/
NOTE
如果你对平台工程及 IDP 等话题感兴趣,希望了解和学习更多或与同行有更多交流和分享,欢迎关注并加入:
平台工程社区 PECommunity
版权声明: 本文为 InfoQ 作者【杨振涛】的原创文章。
原文链接:【http://xie.infoq.cn/article/25f1f6ad5c426013b041f32b1】。
本文遵守【CC BY-NC-SA】协议,转载请保留原文出处及本版权声明。
评论