内部开发者平台与门户:二者有何关联?
内部开发者门户和内部开发者平台是两个密切相关的概念。通过之前的文章,我们了解到这两个概念都旨在通过提供一个自助服务层,抽象出底层技术栈的复杂性和多样性,来改善开发者的体验和生产力。然而,它们有着不同的范围和功能,且能够相互补充。
在这篇文章中,我们将探讨这两者的相似之处、差异,以及二者对现代软件开发重要性。
内部开发门户与平台的区别
内部开发者门户是一个自助服务应用程序和数据存储,能够让开发者和管理人员跟踪和组织他们的工程团队构建和使用的所有内容。内部开发者门户是一个供开发人员发现和访问内部开发者平台的界面,可以帮助开发者们完成例如创建新的微服务、配置基础设施、配置 CI/CD 流水线、管理环境、记录 API 和访问资源等任务。内部开发者门户主要主要组成部分有:
软件目录:这是企业中所有软件资产的综合清单,例如应用程序、微服务、库、框架、数据库等。它可以帮助开发者找到和重复利用现有的解决方案,而避免从头开始创建新的东西。
评分卡层:这是一个显示每个软件组件和资源的质量和可靠性的指标的界面,比如测试覆盖率、错误率、响应时间等。它可以帮助开发者选择合适的组件和资源,并且能够及时发现并改进问题。
自助服务操作层:在此操作层,开发者能够执行一些常见任务而不需要其他人或团队帮助的功能,比如创建新的微服务、配置基础设施、部署应用程序等。在这个功能的加持下,能够有效提高开发者效率和满意度,减少错误和延迟。
工作流自动化层:这是一个自动化地将代码从源代码仓库转移到生产环境或其他目标环境的过程。它可以帮助开发者快速地交付高质量和可靠性的软件产品,并且能够随时回滚或修复问题。
而内部开发者平台则是平台工程团队将所有技术和工具结合在一起,为开发者铺设黄金通道的汇总。它降低了整个工程组织的认知负荷,并实现了开发人员的自我服务。内部开发者平台遵循平台即产品(Platform-as-a-product)的方法,由平台团队按照产品管理原则和最佳实践来构建、维护和持续改进。根据提炼总结,一个内部开发者平台通常由以下四层组成。
云层(cloud layer):这是提供访问云资源的层,如计算、存储等。云层可以基于一个或多个云供应商。
容器层(container layer):在容器层,开发人员能够获取对容器协调的访问,如 Kubernetes。它允许开发人员使用容器部署和管理他们的应用程序,而不必担心低级别的细节,如 pod 和服务等。
平台层(platform layer):在平台层,开发人员可以顺利访问平台服务,例如 CI/CD、日志、监控等。在该层,开发人员可以使用预定义或自定义流水线、仪表盘等来自动化和精简他们的工作流程。
应用层(application layer):这是一个提供访问应用服务的层,如数据库、消息传递队列等。它允许开发人员提供和连接他们的应用程序与所需的服务,而不必担心配置或维护问题。
在对比内部开发者平台与内部开发者门户时,我们不难看出两者在范围与功能上的区别。
首先内部开发者门户侧重于为开发者提供统一的用户体验,以访问各种平台服务和资源。而内部开发者平台则侧重于提供一套标准化的平台服务和资源,让开发者能够轻松使用。内部开发者门户可以被视为是内部开发者平台上的一层,它能够简化开发者所需资源和服务的获取,例如查找和访问、文档管理,同时促进团队间的协作。
此外,内部开发者门户更多的是对企业内现有的软件和数据资产进行编目和归纳,而内部开发者平台则是在组织中创建和管理新的软件和数据资产。内部开发者门户帮助企业跟踪和组织已经建立和运行的东西,内部开发者平台则帮助企业建立和运行开发需要的东西。
另外,与内部开发门户相比,内部开发者平台更依赖于底层技术栈。内部开发者门户需要与提供不同平台服务和资源的各种工具和技术集成,而内部开发者平台可以抽象出底层技术栈的细节,为开发者们提供一个一致的界面。内部开发者门户可以适应企业技术栈的多样性,而内部开发者平台可以减少企业技术栈的复杂性。
内部开发门户与平台的相似之处
内部开发者门户与内部开发者平台虽然概念不同,但有一些共同的目标和优势,比如:
改善开发人员的经验和生产力:通过减少认知负荷,实现自助服务,并为开发人员提供一个统一的、直观的界面来访问各种平台服务和资源。
加快发布周期:通过支持持续部署流程,在不同环境中自动部署,并为开发人员提供更快的反馈循环,以测试和迭代他们的应用程序。
加强集成:通过标准化和简化技术栈中不同组件和服务的集成,并提供一个一致的方式来记录和沟通 API 和数据模式。
自助服务:通过允许开发人员请求和提供资源、环境、部署等而不依赖于外部团队,并提供一种管理权限和治理策略的方式。
提高安全性:通过强制执行整个技术栈的最佳实践和安全标准,如加密、认证等,并提供监测和审计活动的方式。
内部开发者门户与平台的相辅相成
如果企业正在寻找提高软件开发速度、效率和质量的方法,在面对内部开发者门户与内部开发者平台时,可能需要思考是否同时采用两者。接下来我们就来看看这两者的关系,以及它们是如何相关联的。
首先内部开发者门户与平台这两个概念都是为了降低整个工程团队的认知负荷,改善开发者的体验。实际上,它们可以很好地相互补充。内部开发者门户和内部开发者平台对现代软件开发都很重要,因为它们解决了开发者体验的不同但互补的方面。
内部开发者门户可以作为界面,开发者可以通过它发现和访问内部开发者平台的能力。例如,门户网站可以让开发人员使用一个简单的 Web UI 来配置基础设施、配置应用程序、部署代码等,并连接到底层平台协调器。内部开发者平台可以作为门户支撑,开发者们通过内部开发者门户进入到内部开发者平台,获取他们所需要的资源。比如,平台可以自动化工作流程、执行政策、集成工具或管理资源,以支持门户网站的自助服务。
内部开发者门户帮助开发者从现有的技术栈中找到并使用他们需要的东西,而内部开发者平台帮助开发者从新的技术栈中创建并管理所需资源。内部开发者门户帮助开发者了解和操作他们的软件和数据资产,而内部开发者平台帮助开发者自动化和简化他们的工作流程。内部开发者门户能够帮助开发者与其他相关团队进行协作和沟通,而内部开发者平台帮助开发者进行不同商业模式的实验和创新。
因此,同时拥有一个内部开发者门户和一个内部开发者平台对于拥有大型且复杂项目的企业组织来说是十分有益的。两者结合,可以提供统一的开发者体验,提高生产力、质量和协作。
总结
当企业同时拥有内部开发者门户与内部开发者平台时,就能够为开发者提供全面且一致的开发体验,提升开发者的生产力、满意度和创造力。企业可以利用这两者的优势:现有技术栈的多样性和新技术栈的简单性,从而达到平衡自助服务和治理、抽象和背景、标准化和定制等的目标。当然,分别构建内部开发者门户与内部开发者平台绝非易事,企业还是应当根据自身的情况与项目的需求来确定是否需要其一或兼备二者。
版权声明: 本文为 InfoQ 作者【SEAL安全】的原创文章。
原文链接:【http://xie.infoq.cn/article/a11209c7e50ba3af47738d406】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论