分布式计算框架 ⚡
数据计算(CoD)
Bacalhau 是一个平台,通过在数据生成和存储的位置运行任务,提供快速、低成本和安全的计算。有了 Bacalhau,您可以通过运行任意 Docker 容器、WebAssembly (wasm) 镜像或任意二进制文件作为任务,简化现有工作流程,而无需大量重写。
目录
为什么选择 Bacalhau?
- :zap: 快速任务处理:Bacalhau 中的任务在数据生成的地方处理,所有任务默认都是并行的。
- :moneybag: 低成本:减少(或消除)进入/退出成本,因为任务在数据源附近处理。也可以充分利用边缘计算的闲置计算能力。
- :lock: 安全:数据清理和安全在迁移前完成,以减少泄露私人信息的可能性,并且具有更精细的基于代码的权限模型。
- 🚛 大规模数据:Bacalhau 在一张开放计算资源网络上运行,为任何数据处理工作负载提供服务。使用 Bacalhau,您可以批量处理 PB(千万亿字节)级数据。
快速开始 - 在 1 分钟内了解 Bacalhau
前往您想存储任务结果的文件夹目录
安装 Bacalhau 客户端
curl -sL https://get.bacalhau.org/install.sh | bash
提交一个 "Hello World" 任务
bacalhau docker run ubuntu echo Hello World
下载您的结果
bacalhau get 63d08ff0..... # 请确保使用来自 docker run 命令的正确任务 ID
有关更详细的教程,请查看我们的快速入门教程。
了解更多
- 了解 Bacalhau 概念
- 获取 Bacalhau 可用的不同用例概览。
- 若想查看 Bacalhau 的实际操作,请查阅 Bacalhau 示例
- 您可以查看此特选示例视频教程 文本到图像 - 稳定扩散 GPU。您还可以在这里观看更多教程。
文档
📚 在此阅读 Bacalhau 文档指南! 📚
Bacalhau 文档是最佳起点,它包含所有信息,确保每个使用 Bacalhau 的人都能高效使用。
开发者指南
本地运行 Bacalhau
开发者可以使用 devstack
命令启动 Bacalhau 并运行本地演示。
请参阅 running_locally.md 获取说明。同时,请参阅 debugging_locally.md 了解一些调试的有用技巧。
开发者贡献说明
Bacalhau 的 CI 管道对新拉取请求执行各种 linting 和格式检查。
要在创建新提交时在本地运行这些检查,可以使用 ./githooks
中的 precommit hook:
make install-pre-commit
# 检查 pre-commit 是否有效
make precommit
如果要手动运行 linter:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/local/go/bin
golangci-lint --version
make lint
配置文件在 .golangci.yml
OpenAPI
OpenAPI v2 注释位于 pkg/publicapi
中的端点;这些注释使用 swag 构建,这是一个用于 Swagger 文档的 Go 语言转换器。
有关 Swag 注释的更多详细信息,请参阅它们的文档。
Swagger 规范由 CI 管道自动构建(参见 build_swagger
工作流),但您可以使用 make swagger-docs
触发本地构建。
构建过程解析 OpenAPI 注释以及 docs/swagger/
中的 markdown 文件(包含 API 端点的详细描述),并生成以下 Swagger 规范文件:
docs/docs.go
docs/swagger.json
docs/swagger.yaml
请注意,CI 管道将打开并自动合并一个标题为 [circleci] Build swagger reference - this an automatic commit ...
的拉取请求,其中仅包含更新后的规范文件。
Python 库
我们提供两个 Python Bacalhau 库:
bacalhau-apiclient
仅包装 API 端点调用和请求/响应模型。它是从 OpenAPI 规范自动生成的。详情请参阅其自述文件。bacalhau-sdk
是一个高级 Bacalhau SDK,包含查询端点所需的所有客户端逻辑(例如签名请求)。其示例文件夹包含创建、列出和检查任务的代码片段。底层使用bacalhau-apiclient
调用 API。请在您的项目中使用该库。更多信息,请参阅其自述文件。
问题、功能请求和问题
我们期待您的反馈!
- 有关问题和功能请求,请打开一个 GitHub 问题。
- 有关提问、反馈或回答其他用户产品问题,请使用 GitHub Discussions。
- 要与社区其他成员互动,请加入我们的Slack 社区 的
#bacalhau
频道 :raising_hand:
贡献方式
欢迎所有形式的贡献!
我们在贡献指南中突出显示了不同的贡献方式。您可以参与社区讨论、开发等。
开源
此库包含 Bacalhau 软件,受 Apache-2.0 许可覆盖,除非另有说明(任何 Bacalhau 标志或商标不受 Apache 许可证覆盖,应由 LICENSE 文件明示)。
Bacalhau 是 Expanso, Inc. 使用此开源软件开发的产品。它在我们的商业条款下分发。
其他人可以制作自己的软件分发,但不能使用任何 Bacalhau 商标、云服务等。
我们明确授权您在开发 Bacalhau 软件时制作包含我们商标的构建。您不得发布或分享该构建,也不得使用该构建运行 Bacalhau 软件,除非用于其他目的。
我们从出色的 System Initiative 借用了上述开源条款。