内部开发者门户和内部开发者平台是两个密切相关的概念。通过之前的文章,我们了解到这两个概念都旨在通过提供一个自助服务层,抽象出底层技术栈的复杂性和多样性,来改善开发者的体验和生产力。然而,它们有着不同的范围和功能,且能够相互补充。
在这篇文章中,我们将探讨这两者的相似之处、差异,以及二者对现代软件开发重要性。
内部开发者门户是一个自助服务应用程序和数据存储,能够让开发者和管理人员跟踪和组织他们的工程团队构建和使用的所有内容。内部开发者门户是一个供开发人员发现和访问内部开发者平台的界面,可以帮助开发者们完成例如创建新的微服务、配置基础设施、配置 CI/CD 流水线、管理环境、记录 API 和访问资源等任务。内部开发者门户主要主要组成部分有:
而内部开发者平台则是平台工程团队将所有技术和工具结合在一起,为开发者铺设黄金通道的汇总。它降低了整个工程组织的认知负荷,并实现了开发人员的自我服务。内部开发者平台遵循平台即产品(Platform-as-a-product)的方法,由平台团队按照产品管理原则和最佳实践来构建、维护和持续改进。根据提炼总结,一个内部开发者平台通常由以下四层组成。
在对比内部开发者平台与内部开发者门户时,我们不难看出两者在范围与功能上的区别。
首先内部开发者门户侧重于为开发者提供统一的用户体验,以访问各种平台服务和资源。而内部开发者平台则侧重于提供一套标准化的平台服务和资源,让开发者能够轻松使用。内部开发者门户可以被视为是内部开发者平台上的一层,它能够简化开发者所需资源和服务的获取,例如查找和访问、文档管理,同时促进团队间的协作。
此外,内部开发者门户更多的是对企业内现有的软件和数据资产进行编目和归纳,而内部开发者平台则是在组织中创建和管理新的软件和数据资产。内部开发者门户帮助企业跟踪和组织已经建立和运行的东西,内部开发者平台则帮助企业建立和运行开发需要的东西。
另外,与内部开发门户相比,内部开发者平台更依赖于底层技术栈。内部开发者门户需要与提供不同平台服务和资源的各种工具和技术集成,而内部开发者平台可以抽象出底层技术栈的细节,为开发者们提供一个一致的界面。内部开发者门户可以适应企业技术栈的多样性,而内部开发者平台可以减少企业技术栈的复杂性。
内部开发者门户与内部开发者平台虽然概念不同,但有一些共同的目标和优势,比如:
如果企业正在寻找提高软件开发速度、效率和质量的方法,在面对内部开发者门户与内部开发者平台时,可能需要思考是否同时采用两者。接下来我们就来看看这两者的关系,以及它们是如何相关联的。
首先内部开发者门户与平台这两个概念都是为了降低整个工程团队的认知负荷,改善开发者的体验。实际上,它们可以很好地相互补充。内部开发者门户和内部开发者平台对现代软件开发都很重要,因为它们解决了开发者体验的不同但互补的方面。
内部开发者门户可以作为界面,开发者可以通过它发现和访问内部开发者平台的能力。例如,门户网站可以让开发人员使用一个简单的 Web UI 来配置基础设施、配置应用程序、部署代码等,并连接到底层平台协调器。内部开发者平台可以作为门户支撑,开发者们通过内部开发者门户进入到内部开发者平台,获取他们所需要的资源。比如,平台可以自动化工作流程、执行政策、集成工具或管理资源,以支持门户网站的自助服务。
内部开发者门户帮助开发者从现有的技术栈中找到并使用他们需要的东西,而内部开发者平台帮助开发者从新的技术栈中创建并管理所需资源。内部开发者门户帮助开发者了解和操作他们的软件和数据资产,而内部开发者平台帮助开发者自动化和简化他们的工作流程。内部开发者门户能够帮助开发者与其他相关团队进行协作和沟通,而内部开发者平台帮助开发者进行不同商业模式的实验和创新。
因此,同时拥有一个内部开发者门户和一个内部开发者平台对于拥有大型且复杂项目的企业组织来说是十分有益的。两者结合,可以提供统一的开发者体验,提高生产力、质量和协作。
当企业同时拥有内部开发者门户与内部开发者平台时,就能够为开发者提供全面且一致的开发体验,提升开发者的生产力、满意度和创造力。企业可以利用这两者的优势:现有技术栈的多样性和新技术栈的简单性,从而达到平衡自助服务和治理、抽象和背景、标准化和定制等的目标。当然,分别构建内部开发者门户与内部开发者平台绝非易事,企业还是应当根据自身的情况与项目的需求来确定是否需要其一或兼备二者。