Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache #19299

Merged
merged 2 commits into from
Jun 15, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions docs/markdown/Using Pants/remote-caching-execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ What is Remote Execution API?

Pants is compatible with remote caching and remote execution servers that comply with the [Remote Execution API](https://github.com/bazelbuild/remote-apis) standard ("REAPI"). The REAPI protocol is supported by several different server and client projects including Bazel and of course Pants.

REAPI servers implement several related but distinct services: (1) a "content-addressable storage" service that stores data keyed by the hash of that data (also known as a "CAS"); (2) an "action cache service" that maps process executions to their results; and (3) an "execution service" that executes processes by using the content-addressable storage service to obtain the inputs and store the outputs from running those processes.
REAPI servers implement several related but distinct services:

1. A "content-addressable storage" service that stores data keyed by the hash of that data (also known as a "CAS").
2. An "action cache service" that maps process executions to their results.
3. An "execution service" that executes processes by using the content-addressable storage service to obtain the inputs and store the outputs from running those processes.

Remote cache servers implement the CAS and action cache services. Remote execution servers implement all three services.

Expand All @@ -33,17 +37,21 @@ Server compatibility

In order to use remote caching or remote execution, Pants will need access to a server that complies with REAPI. Pants is known to work with:

**SaaS**:
- [Toolchain](https://www.toolchain.com), a remote caching service designed by several of the lead maintainers of Pants specifically to work seamlessly with it.

**Self-hosted**:
- [BuildBarn](https://github.com/buildbarn/bb-remote-execution)
- [Buildfarm](https://github.com/bazelbuild/bazel-buildfarm/)
- [BuildGrid](https://buildgrid.build/)
- [bazel-remote](https://github.com/buchgr/bazel-remote]

**Note**: Setup of a self-hosted REAPI server is beyond the scope of this documentation. All these server projects have support channels on the BuildTeamWorld Slack. [Go here to obtain an invite to that Slack.](https://bit.ly/2SG1amT)

As a more lightweight solution - for caching only - Pants can use a server providing only the CAS (content-addressable storage) service.

**Self-hosted**:

- [bazel-remote-cache](https://github.com/buchgr/bazel-remote)

Bazel Remote Cache supports local disk, S3, GCS, and Azure Blob storage options - needing only a single lightweight Docker container.

There are a few [other](https://github.com/bazelbuild/remote-apis) systems and services in this space, but
they have not, to our knowledge, been tested with Pants. Let us know if you have any experience with them!

Expand Down