Skip to main content

技术常见问题

Backstage 使用什么技术?​

Backstage是一个大型的TypeScript应用程序,其前端部分使用React和Material UI,后端部分则使用Node.js和特快专递框架。

为什么是 Material UI?​

简而言之,这就是我们内部一直在使用的 Backstage。

最初的决定是基于谷歌的 Material Design 是一个全面、深思熟虑和完整的设计系统,系统本身和辅助组件中都实现了许多成熟而强大的库,我们知道我们会喜欢使用这些库。

它在强大功能、可定制性和易用性之间取得了良好的平衡。 Material UI 的核心重点是尽可能减少插件开发人员的工作障碍。 Material UI 可让插件开发人员轻松使用众所周知的技术和大量组件。

什么是端到端的用户流程? 快乐路径故事。​

Backstage 有三种主要用户类型:集成商、贡献者和软件工程师。

集成商托管 Backstage 应用程序,并配置应用程序中可使用的插件。

贡献者通过编写插件为应用程序添加功能。

软件工程师*使用应用程序的功能并与其插件互动。

什么是 Backstage 中的 "插件"?​

插件提供了 Backstage 的特色功能,用于将不同的系统集成到 Backstage 的前端,这样开发人员就可以获得一致的用户体验,无论对方访问的是什么工具或服务。

每个插件都被视为一个独立的网络应用程序,几乎可以包含任何类型的内容。 插件都使用一套通用的平台应用程序接口和可重复使用的用户界面组件。 插件可以从后端、或通过代理公开的应用程序接口获取数据。

了解更多不同组件组成 Backstage。

为什么我不能在不修改应用程序的情况下动态安装插件?​

这一决定是Backstage核心架构和开发流程的一部分。 插件在提供什么以及如何集成到应用程序中方面有很大的自由度,因此,如果让插件通过配置集成,就像通过代码集成一样,会增加很多复杂性。

通过将所有插件及其依赖关系捆绑到一个应用程序捆绑包中,还可以在可能的情况下允许插件之间共享依赖关系,从而大幅优化应用程序的加载时间。 这有助于提高 Backstage 的速度,而这正是用户和开发人员体验的重要组成部分。

为什么没有发布用于Backstage的 Docker 镜像或 helm 图表?​

如上所述,Backstage 并不是开箱即可使用的打包服务。 要开始使用 Backstage,您需要使用@backstage/create-app软件包来创建和定制您自己的 Backstage 应用程序。

为了从自己的应用程序构建 Docker 映像,可以使用yarn build-image默认情况下,该镜像会将前端和后端捆绑成一个镜像,您可以使用自己喜欢的工具进行部署。

还有一些示例可以帮助您将 Backstage 部署到 kubernetes,这些示例位于贡献文件夹。

将来有可能会提供示例图片,可以用来快速试用Backstage的一小部分功能,但这些图片无法在演示网站上看到的功能基础上提供更多的功能。

我必须用 TypeScript 编写插件吗?​

不,如果您愿意,可以使用 JavaScript。 我们希望将Backstage核心 API 保留在 TypeScript 中,但不会强制要求单个插件使用。

如何查找插件是否已存在?​

您可以在插件目录.

如果在目录中找不到,在编写插件之前搜索插件问题如果还没有人想到,那就太好了!以插件建议这将有助于协调我们贡献者的工作,避免重复现有功能。

Spotify 使用最多的插件是哪个?​

到目前为止,我们使用最多的插件是 TechDocs 插件,我们使用它来创建技术文档。 我们在 Spotify 的理念是 "像对待代码一样对待文档",即使用与编写代码相同的工作流程来编写文档。 这使得创建、查找和更新文档变得更加容易。TechDocs 现已开源。(另见:"Spotify 的内部插件也会开源吗?"上文)

你是打算将插件集成到 repo 中? 还是应该在单独的 repo 中开发?​

贡献者可以将开源插件添加到本单晶硅集成者可以配置哪些开源插件可在其应用程序实例中使用。 开源插件以 npm 包的形式下载,发布在开源软件库中。 虽然我们鼓励使用开源模式,但我们也知道在某些情况下,贡献者可能希望在内部进行试验或保持其插件的闭源。 编写闭源插件的贡献者应在其自己的 Backstage 软件库的插件目录中进行开发。 集成者也可以从 monorepo 本地配置闭源插件。

有没有与其他版本库管理器(如 GitLab 或 Bitbucket)集成的计划?​

我们之所以选择 GitHub,是因为它是我们最熟悉的工具,因此自然会在早期阶段开发与 GitHub 的集成。 在 GitHub 上托管该项目并不排除与其他工具的集成,例如GitLab我们相信,随着时间的推移,也会有插件为这些工具提供功能。 希望这些插件能由社区贡献!此外,请注意,Backstage 的实施可以托管在任何您认为最适合您需求的地方。

谁维护Backstage?​

Spotify 将维护开源核心,但我们设想项目的不同部分将由不同的公司和贡献者维护。 我们还设想了一个大型的、多样化的开源插件生态系统,这些插件将由其原作者/贡献者或社区维护。 谈到部署在您自己的环境中,系统集成商(通常是您所在组织的基础架构团队)负责维护 Backstage。

更多信息,请参阅我们的Owners和治理.

Spotify 是否提供Backstage管理版本?​

不,这不是一项服务。 我们构建软件,而您的基础设施团队中有人负责部署和维护。

Backstage的安全性如何?​

我们非常重视安全问题。 在软件包和代码方面,我们会定期扫描软件仓库,并将软件包更新到最新版本。 在企业内部部署 Backstage 时,这取决于企业的部署和安全设置。 请通过以下方式联系我们Discord如果您有具体问题,请联系我们。

请通过 Spotify 的漏洞悬赏计划而不是 GitHub。

Backstage 是否收集任何与 Spotify 共享的信息?​

没有。Backstage 不会从使用该平台的任何第三方收集任何遥测数据。 Spotify 和开源社区确实可以访问GitHub 洞察Backstage 是一个开放平台,但您可以控制自己的数据。 您可以控制谁可以访问您提供给您的 Backstage 版本的任何数据,以及与谁共享这些数据。

Backstage 可用于构建开发人员门户网站以外的其他功能吗?​

是的,核心前端框架可用于构建任何大型网络应用程序,在这种情况下,(1) 多个团队分别构建应用程序的不同部分,(2) 您希望整体体验保持一致。 尽管如此,在第二阶段我们的目标是使 Backstage 保持模块化。

我如何参与其中?​

马上加入!来帮我们修复一些早期错误和良好的第一期或达到新的里程碑或者为 Backstage 写一个开源插件,就像这样light house插件查看您可以在此捐款我们非常欢迎您成为社区的一员。