评估目录和自助服务操作,以确保门户始终能够满足开发人员的需求。
译自 Is Your Internal Developer Portal Maintainable?,作者 Yonatan Boguslavski。
内部开发者门户 相当新。与所有新事物一样,关于如何使用它们来完成确切任务有多种理论。有一件事每个人都同意:内部开发者门户和平台是开发者核心界面,它们需要易于维护和易于演进。毕竟,如果人员、流程和技术演进,那么为开发者服务的界面也会演进。
您如何判断您选择的门户是否可以演进并可维护?让我们对此进行全面探讨。
一个有效的内部开发者门户由以下几个元素组成:
虽然所有这些都是提供开发者体验的一部分,但我们将检查两个:
灵活的数据模型意味着能够在门户中建模您的工程 DNA 和用例,以:
一个好的门户允许您在软件目录中定义、更改或添加实体类型以及这些实体类型之间的不同关系。
让我们更详细地了解这两个方面。
实体类型是资源、组件和 API 等内容。实体类型形成我们所说的软件目录的数据模型。这是软件目录用来向其用户解释 SDLC 世界的地图。地图中遗漏的内容在门户中不存在。
以下是一些您可能希望包含在门户中的实体示例:
能够在没有大量编码的情况下包含这些实体至关重要。
需要注意的是:具有固定数量实体类型(例如,仅 C4 模型)或需要编码才能更改它们的 portal。
与其假设实体之间存在固定的关系,您需要能够区分不同类型的依赖关系,例如将运行时云资源(计算实例)与存储资源(数据库和AWS S3 存储桶)分开。
您还希望您的门户能够指定实体之间多个不同的关系,从而在理解资源依赖关系时提供粒度和清晰度。
需要注意的是:您无法控制实体类型之间关系的门户
如果没有使用自定义实体类型或区分依赖关系的能力,您的软件目录在表示 SDLC 的关键方面时就会不足。因此,它为您的利益相关者提供的上下文和实用性较少。这一点至关重要,因为开发者不太愿意完全采用无法满足其许多需求的门户。
内部开发者门户,特别是其中的软件目录,需要保持最新。为了可维护和受信任,这需要自动进行。通过使用自动发现、实时数据更新和多种输入数据的方式,可以避免耗时的手动维护任务,确保门户信息始终是最新的和准确的。
以下是一些基本要求:
在动态、大规模环境中,这些功能对于保持编目的准确性和最新性至关重要,从而帮助简化运营和提高效率。如果没有这些功能,维护编目所需的手动工作将变得不切实际且容易出错,这会严重拖慢组织的速度。此外,如果要求开发人员手动更新编目而未向他们提供明确的好处,则可能会让他们难以使用该门户网站。
需要注意之处: 要求开发者使用 YAML 处理很多手工作业的门户。这不仅不方便,而且可能产生严重的维护性问题,并且对开发者提出了过高的要求,却没有为他们提供任何回报。
有一个倾向,就是想用插件来解决我们刚刚描述的问题。因为一个不灵活的数据模型而不能在软件目录中表示其他类型的实体(“类型”)?没问题,让我们使用插件。
然而,插件有时候会因缺乏你可能期望的功能和灵活性而使问题更加恶化,最终阻碍内部开发者门户的效用。
为什么这是一个问题?
开发者门户的目的是为开发者提供量身定制的相关抽象信息以满足他们的特定需求。要实现这一点,需要两个关键元素:
您希望您的门户能够直接为各种操作提供自助服务,例如:部署服务、回滚、触发事件、创建云资源、切换功能标志、添加机密、获取临时数据库权限和设置开发环境。
这意味着开发者不仅能够构建新服务,还能对第 2 天运营使用自助服务操作。
现有的 CI/CD 渠道(例如 GitHub 工作流、GitLab CI、Argo 工作流、AWS Lambda 和 Kubernetes 运算符)带有功能强大的开箱即用操作,可以快速可靠地执行各种任务。
例如,GitHub 工作流提供了其市集中数百个内置的操作,可用于有效管理广泛的操作。甚至对于脚手架,也可以将 Cookiecutter 库整合到 CI/CD 渠道中,以便更轻松灵活地根据指定标准自定义和创建存储库。
鉴于这些功能,内部开发者门户应专注于增强自助服务操作表单的 UI 层,并加强与这些现有 CI/CD 引擎的集成。这种方法确保了开发者的无缝体验,利用了既定工具的优势,同时提供了用户友好的界面。
需要留意的事项:只有触发自助服务的单一方式的门户,迫使你修改并替换之前的工作,并且这些门户与你当前的 CI/CD 管道的集成不紧密。
一个有效的内部开发人员门户取决于集成一个强大的软件目录和全面的自助服务操作。支持自定义实体类型并准确表示依赖关系的灵活数据模型对于创建有用且动态的目录至关重要。
自动化的实时数据提取确保信息保持最新、可靠且没有手动维护的负担。这些功能共同使开发人员能够高效地查找和使用他们需要的资源,从而营造更具生产力和精简的开发环境。
此外,虽然插件可以提供快速修复,但它们在灵活性和功能方面往往不足,可能会阻碍门户的整体有效性。相反,专注于增强自助服务操作表单的 UI 层并加强与现有 CI/CD 管道的集成,可确保开发人员获得无缝且高效的体验。
通过利用成熟工具的优势并提供用户友好的界面,组织可以构建一个开发人员门户,不仅满足当前需求,而且随着这些需求的发展而进行调整和扩展,最终提高开发人员的采用率和满意度。
在 Portal Talks 上了解有关内部开发人员门户的更多信息,6 月 26 日至 27 日,The New Stack 的 Jennifer Riggins 将主持。