什么是 Binder 项目?

Binder 项目为每个人提供了一个轻松分享计算环境的平台。它允许用户指定自定义环境,并通过一个链接进行分享。使用场景包括研讨会、科学工作流以及团队间的流程简化与分享。

Binder 项目通过利用社区开发的可复现性标准,构建出能够奖励可复现数据科学最佳实践的工具。当代码仓库遵循这些最佳实践并托管在在线仓库中时,Binder 会自动构建一个任何人都可以访问的可链接环境。

Binder 有哪些用途?

Binder 项目的指导原则

Binder 项目在设计其技术和相关实践时遵循以下原则。这并非详尽的列表。

  • 代码仓库应同时对人类和机器可读。
  • 如果存在现有规范和标准,则应加以使用。在采纳新规范时,应与 Binder 所服务的社区协商。
  • 支持多种语言和接口。尽可能做到与工作流无关。
  • 保持轻量级和范围明确,但要能扩展到新的工作流、平台、云供应商等。

简而言之,如果您遵循计算科学的最佳实践,您的代码仓库应该就能与 Binder 兼容。

Binder 技术栈包含哪些内容?

Binder 完全由开源基础设施栈驱动。其主要两个工具是 BinderHub 和 repo2docker。BinderHub 是一个开源工具,用于在云端部署 Binder 服务;repo2docker 则用于从 Git 仓库生成可复现的 Docker 镜像。Binder 团队还在 mybinder.org 上运行一个公共的 BinderHub 部署,作为面向社区的免费公共服务。

repo2docker

这是 repo2docker 仓库的链接

repo2docker 是一个轻量级工具,可将代码仓库转换为可复现的 Docker 镜像。它定义了可复现执行环境规范,该规范用于定义将仓库配置文件转换为 Docker 镜像的规则。

repo2docker 被 BinderHub 广泛使用,但也可以作为独立的命令行工具运行,用于生成您自己的、可在 Jupyter 服务器上运行的可复现 Docker 镜像。

要了解更多关于 repo2docker 的信息,请参阅 repo2docker 文档

BinderHub

这是 BinderHub 仓库的链接

BinderHub 是一个 Web 应用程序,允许用户从代码仓库创建可共享、可交互、可复现的环境。它使用 repo2docker 为每个环境生成 Docker 镜像,并使用 JupyterHub 从这些镜像中提供交互式用户会话。

BinderHub 是一个基于 Kubernetes 构建的 Web 应用程序,而 Kubernetes 是另一个用于管理云基础设施的开源工具。它与云和硬件无关,这使其具有可扩展性和灵活性,能够适应多种用例和社区。在 mybinder.org 上就有一个 BinderHub 的部署实例。

要了解如何部署自己的 BinderHub,请参阅 BinderHub 文档

mybinder.org

这是 mybinder.org 的链接.

mybinder.org 上的 BinderHub 部署是 Binder 社区为整个社区管理的一项免费公共服务。它实际上是多个 BinderHub 部署的联合体,是作为开放、社区主导的基础设施的一项实验来运行的。我们将 mybinder.org 作为一个高度透明的公共服务来运营,因此有大量关于该部署的信息可供查阅。如果您感兴趣,以下是一些有用的资源:

加入或联系 Binder 社区

与所有 Project Jupyter 的项目一样,Binder 项目是一个开源且由社区驱动的项目。我们非常欢迎您加入我们的社区,贡献代码、时间、意见或支持。