正文
内部开发者门户(internal developer portal)是一个自助服务的应用程序和数据存储,可以为软件工程团队提供提供访问所有软件组件、资源、环境、工具和文档的能力,让开发人员和管理人员跟踪并组织其工程团队构建和运行的所有内容。
信息碎片化问题常常困扰着运行复杂分布式系统的软件工程组织,而内部开发者门户则旨在解决该问题。通过将开发人员所需要搜索的信息,例如 wiki、代码仓库、配置文件、日志、指标等,放在一个集中的位置,从而避免在多个来源之间搜索信息,为企业内部开发资产和流程提供真实可靠的来源。
今天的文章将带你一同了解内部开发者门户的基本概念,包括其主要组成部分,特点以及优势。
内部开发者门户的主要组成部分
内部开发者门户抽象了在不同的云环境上管理和记录应用程序的复杂性,通过自助式的应用和数据存储,让开发者和管理者能够访问、跟踪和管理所有应用程序的资源和文档。内部开发者门户的主要组成部分会根据每个企业的具体需求和目标而有所区别,以下是我们总结的一些常见的组成部分:
- 软件目录(software catalog):这是一个显示所有可用软件组件和资源的列表,比如应用程序、微服务、库、框架、数据库等。它可以帮助开发者找到和重复利用现有的解决方案,而避免从头开始创建新的东西。
- 评分卡层(scorecard layer):这是一个显示每个软件组件和资源的质量和可靠性的指标的界面,比如测试覆盖率、错误率、响应时间等。它可以帮助开发者选择合适的组件和资源,并且能够及时发现并改进问题。
- 自助服务操作层(developer self-service actions layer):这是一个能够让开发者自己执行一些常见任务而不需要其他人或团队帮助的功能,比如创建新的微服务、配置基础设施、部署应用程序等。在这个功能的加持下,能够有效提高开发者效率和满意度,减少错误和延迟。
- 工作流自动化层(workflow automation layer):这是一个自动化地将代码从源代码仓库转移到生产环境或其他目标环境的过程。它可以帮助开发者快速地交付高质量和可靠性的软件产品,并且能够随时回滚或修复问题。
- 内容仓库(content repository):内容仓库用来存储和展示软件开发生态系统的所有信息。包括微服务、应用、资源、文档、监控、部署等,以及这些信息的管理者和所有者。内容仓库可以使用版本控制系统,比如 Git 或 SVN。
- 监控仪表盘(monitoring dashboard):监控仪表盘是一个显示软件系统中各种数据和指标的界面,比如日志、错误率、响应时间等 。它可以帮助开发者了解系统运行状况,并且能够及时检测并解决问题。
- 文档中心(documentation center):文档中心提供了所有相关文档,比如 API 参考文档、用户手册、教程等。它可以帮助开发者学习和使用软件系统,并且能够保持文档更新。
内部开发者门户的特点
根据内部开发者门户的组成部分及其功能,我们总结了以下几个关键特点:
- 可见性:内部开发者门户可以提供对软件生命周期的增强可见性,从设计到部署到监控。它可以显示所有可用的软件组件、资源、环境、工具和文档,以及它们是如何连接的 。它还可以显示每个组件和资源的状态、健康状况和性能 。
- 可追溯性:内部开发者门户可以提供对软件开发和交付过程的可追溯性。它可以跟踪并记录在整个生命周期中发生的所有变化、事件和行为 。它还可以链接并关联系统的不同元素,比如代码提交、配置文件、日志、指标等 。
- 可审计性:内部开发者门户可以提供对软件开发和交付过程的可审计性。它可以确保并强制遵守最佳实践、标准和政策。还可以验证每个组件和资源的质量、安全性和可靠性。
- 可观察性:内部开发者门户可以提供对软件开发和交付过程的可观察性。它可以收集并分析来自各种来源的数据,比如日志、指标、追踪等。它还可以可视化并警报关键指标和异常。
- 自助服务:内部开发者门户可以为开发者提供自助服务能力。它可以让开发者自己配置他们的基础设施和依赖,而不依赖于手动流程或外部团队。它还可以让开发者使用持续交付流水线部署并更新他们自己的应用程序。
内部开发者门户的优势
通过上面的内容,我们总结出内部开发者门户能够帮助企业的软件开发团队获得以下优势:
- 提高生产力。开发者们可以轻松且快速第找到他们所需要的资源,而无需再多个来源上搜索或等待批准浪费时间。他们还可以使用预定义的模板和工作流来创建新微服务、配置环境、访问云资源、执行数据工程操作等。
- 增强协作。开发者可以与他们在团队和项目中的同行分享最佳实践、反馈、代码片段、文档和指标。他们还可以快速找到现有服务和 API,以便重复使用或集成。
- 提高质量。开发者可以遵循他们所做事情的最优路径,确保他们遵守组织设定的标准、指南和政策。他们还可以利用与内部开发者门户集成的自动化测试、监控和调试工具。
- 降低风险。开发者可以通过使用内部开发者门户的验证输入输出来避免常见错误,例如配置错误、安全漏洞、数据丢失或合规违规。如果出了问题,开发者也可以轻松地恢复更改。
谁需要内部开发者门户?
内部开发者门户通过提供一系列工具和资源来最大限度地支持开发团队,促进软件开发过程。这样看来内部开发者门户确实能够给企业软件工程团队带来许多好处,但是不是每个企业都需要它呢?事实上,实施内部开发者门户的决定应当基于组织的特定需求和目标。
例如,对于拥有大型开发团队同时进行多个项目的组织,尤其是有复杂、分布式、微服务化的软件系统企业,内部开发者门户可以帮助简化开发过程并提高效率。通过在中心位置提供工具、资源和信息的便捷访问,内部开发者门户可以为开发人员节省时间和精力。
相较而言,对于拥有较少开发人员或项目较简单的较小企业组织,内部开发者门户可能不会提供太多价值。在这些情况下,使用现有工具和流程可能比投资于定制内部开发者门户更有实际效率。
总 结
内部开发者门户能够解决分布式系统中的信息化碎片问题,并有效提高开发者的自主性和效率。然而,打造一套内部开发者门户是一个耗时且花费较高的过程,并不是所有企业都需要投资定制内部开发者门户,企业需要根据自身软件发开的需求以及项目的复杂度综合考量。