如何构建内部开发者门户:企业参考指南

时间:2021-07-26 01:03:24

在之前的文章中,我们了解了内部开发者门户的基本概念。内部开发者是一个自助应用程序和数据存储,是一个集中的枢纽,为开发及管理人员提供对各种工具、资源、文档和工作流程的访问。那么今天的文章将带你了解企业如何构建内部开发者门户。
 

为什么要构建内部开发者门户

随着软件系统变得越来越复杂和分布式,特别是采用基于云的微服务架构,开发人员越来越难以跟踪其项目中涉及的所有组件、依赖关系、配置和流程。此外, 开发人员经常需要在不同云提供商或第三方服务提供的多个 UI 或门户之间切换,以执行各种任务,如配置基础设施、创建 CI/CD 流水线、管理 API 网关或数据库等。这导致信息碎片化、低效率、不一致性和错误。内部开发者门户可以通过为组织内所有软件资产和操作提供单一真实来源和统一接口来解决这些问题。它还可以实现更快的反馈循环、更好的协作、更高的质量标准和改善的开发人员体验。
 

而内部开发者门户可以使任何使用现代架构(如微服务、容器、无服务器等)开发软件的企业组织受益,特别是那些使用多个云提供商或 DevOps 工具的组织。我们将企业需要构建内部开发者门户的四大原因总结如下:
 

  • 复杂性:由于现代软件开发涉及许多移动部件,如应用程序、服务、API、数据库等,这些东西往往以复杂的方式相互交互。对于开发人员来说,如果没有一个中心平台查看这些信息,想要跟踪所有这些组件及其依赖关系、状态、性能等可能十分困难。
  • 生产力:开发人员经常需要在不同的工具和界面之间切换以执行各种任务,如配置、部署、测试等。这些过程常常很耗时且容易出错。内部开发者门户可以简化这些工作流程,并在可能的情况下将其自动化,节省时间并减少错误。
  • 可见性:开发人员通常缺乏对其他相关团队正在进行的工作、所使用的资源、所面临的问题等方面的可见性。这可能导致重复工作、沟通不畅、冲突等问题。内部开发者门户可以通过为所有软件资产提供单一真实来源,从而增强团队间的可见性和协作。
  • 创新:开发人员经常希望在不牺牲安全或合规性的情况下尝试新技术或方法。然而,他们可能面临诸如缺乏访问权限、审批流程或文档等障碍。内部开发者门户可以通过提供易于访问的资源、模板库等以及文档反馈机制等来促进开发创新。
     

企业如何构建内部开发者门户

企业想要构建内部开发者门户,可参考以下几个步骤:
 

  • 确定目标。在开始构建内部开发者门户之前,企业需要明确其目标是什么,想要解决的主要痛点或挑战是什么。企业需要的关键特征或者功能是什么,应当制定一套什么样的标准来衡量开发者门户是否合格。
  • 选择工具。根据企业的目标和偏好,选择合适的工具或平台来建立企业内部开发者门户。
  • 整合数据源。为了将企业软件资产的数据放在内部开发者门户内,企业需要将其与各种数据源集成,如云供应商、CI/CD 工具、监控系统、文档平台等。企业可以使用 API、webhooks、代理或插件来连接这些数据源到内部开发者门户。此外请确保这些数据的准确性和时效性,并且在不同的来源之间保持一致。
  • 定制用户界面。为了使企业的内部开发者门户 UI 更加用户友好,企业应该定制用户界面(UI)以满足开发人员及其他相关团队需求和喜好。例如可能使用的部件、仪表盘、图表、表格或其他视觉元素,以清晰直观的方式显示数据。同时还应该考虑可用性方面的问题,如导航、可搜索性、过滤、排序或分页。
  • 实施自助服务。为了使开发者能够对企业软件资产进行自助操作,企业需要定义管理这些操作的逻辑和工作流程。此外,还应该实施护栏和批准机制,以确保安全和合规性。
  • 测试和迭代。当建立了企业的内部开发门户后,用真实的用户和数据来进行测试。及时收集反馈和指标,以评估内部开发门户是否满足企业目标和期望。此外,还需要改进或提高的地方,并相应地内部开发者门户进行迭代。
     

不难看出建立内部开发人员门户并非易事,因为它涉及整合多种工具、系统和数据源,设计用户友好的 UI,实施安全和治理政策,并定期维护和更新门户。幸运的是,有一些可参考的实践和原则可以指导企业的软件工程团队建立有效的内部开发人员门户。这里我们总结了一些关于如何构建内部开发者门户的关键要点:
 

  • 产品化及解耦:内部开发者门户应当被视为产品而非项目。它应该有清晰的愿景、路径、反馈流程和以用户为中心的设计。内部开发者门户还应通过使用 API 或连接器与其交互的基础设施或服务解耦。
  • 符合标准且安全的设计:内部开发者门户应当默认强制执行合规性和安全标准。它应与现有身份提供商 (IdPs) 或单点登录 (SSO) 解决方案集成以确保安全认证和授权。它还应根据不同用户和团队的权限和职责实施基于角色的访问控制 (RBAC) 政策。
  • 集中化:内部开发者门户需要提供一个组织内所有软件资产和操作的单一真实来源和统一界面。应使用强大的 API 能够轻松搜索、查询、发现、追踪、审核等这些资产。
  • 模块化:内部开发者门户应支持自定义数据模型、操作、小部件、插件、记分卡等,以反映组织特定要求、实践、度量标准或合规标准。它还应允许用户使用无代码方法创建自己的仪表板报告警报等。
  • 善用 API:内部开发者门户需要通过定义良好的 API 公开其功能,以便其他工具或服务进行应用。它还应利用来自云提供商或第三方服务的现有 API 与之进行交互。
     

挑战与风险

然而,企业在建立内部开发者门户时需要注意以下挑战和风险:
 

  • 抵制变化:开发者很有可能不愿意采用一个改变他们现有工作流程或习惯的新工具或界面。他们也可能对内部开发者门户的价值或质量持怀疑态度。要克服这个挑战,企业需要清楚而频繁地传达内部开发门户的愿景和价值主张,让用户参与设计和开发过程,提供培训和支持,并收集反馈和推荐。
  • 复杂性:建立一个内部开发者门户是个非常复杂的任务,其中涉及到整合多种工具和技术,管理依赖性和兼容性问题,确保安全性和合规性等。要避免这个问题,企业需要从细节做起,简单做起,首先关注最重要的功能和特性,尽可能使用现有的解决方案或框架,定期测试和迭代,并记录所有相关信息。
  • 后续维护:维护内部开发者门户也是一个十分耗费资源的任务,因为企业需要不断地更新、改进、修复错误等,以及监控、排除故障、扩展等。为了克服该问题,我们建议企业为维护分配足够的时间和资源,遵循代码质量和文档的实践和标准,尽可能使用自动化和编排工具,并测量及优化性能。
     

总结

总之,对于想要提高生产力、协作、开发质量和体验的团队来说,内部开发者门户是一个十分有价值的工具。它可以帮助开发者及其他相关联的团队成员通过为碎片化信息提供单一来源和统一界面,来管理现代软件系统的复杂性和多样性,以及他们所有的软件资产和操作,从而提高生产力和效率。
 

而企业在建立内部开发者门户时,需要仔细的规划、设计、整合和维护。企业可以参考本文提到的一些构建步骤和需要注意的关键点,来更好地构建符合企业目标和期望的内部开发者门户。