Skip to content

Commit 7dd98d4

Browse files
Merge pull request #128 from depot/docs-sync-updates
Update content from depot/app
2 parents 10f4c73 + 24ade1b commit 7dd98d4

File tree

3 files changed

+187
-11
lines changed

3 files changed

+187
-11
lines changed
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
title: Build autoscaling
3+
description: How to enable and configure container build autoscaling to parallelize builds across multiple builders
4+
---
5+
6+
import {ImageWithCaption} from '~/components/Image'
7+
8+
Container build autoscaling allows you to automatically scale out your builds to multiple BuildKit builders based on the number of concurrent builds you want to process on a single builder. This feature is available on all Depot plans and can significantly speed up your container builds when you have multiple concurrent builds or resource-intensive builds.
9+
10+
## How build autoscaling works
11+
12+
By default, all builds for a project are routed to a single BuildKit host per architecture you're building. Each BuildKit builder can process multiple jobs concurrently on the same host, which enables deduplication of work across builds that share similar steps and layers.
13+
14+
With build autoscaling enabled, Depot will automatically spin up additional BuildKit builders when the concurrent build limit is reached. Here's how the process works:
15+
16+
1. You run `depot build`, which informs our control plane that you'd like to run a container build
17+
2. The control plane checks your autoscaling configuration to determine the maximum concurrent builds per builder
18+
3. If the current builder is at capacity, the provisioning system spins up additional BuildKit builders
19+
4. Each additional builder operates on a clone of the main builder's layer cache
20+
5. The `depot build` command connects directly to an available builder to run the build
21+
22+
<ImageWithCaption
23+
src="/images/depot-container-build-architecture-autoscaling.webp"
24+
alt="Depot container build architecture with autoscaling"
25+
title="Depot container build architecture with autoscaling"
26+
className="mx-auto"
27+
/>
28+
29+
## When to use build autoscaling
30+
31+
Build autoscaling is particularly useful in these scenarios:
32+
33+
- **High concurrent build volume**: When you have many builds running simultaneously that consume all resources of a single builder
34+
- **Resource-intensive builds**: When individual builds require significant CPU, memory, or I/O resources
35+
- **Time-sensitive builds**: When you need to reduce build queue times during peak periods
36+
- **CI/CD pipelines with parallel jobs**: When your pipeline triggers multiple builds at once
37+
38+
### When NOT to use build autoscaling
39+
40+
Consider these tradeoffs before enabling autoscaling:
41+
42+
- **Cache efficiency**: Additional builders operate on cache clones that are not written back to the main cache, reducing cache hit rates
43+
- **Deduplication loss**: Builds on different builders cannot share work, even if they have similar layers
44+
- **Small, infrequent builds**: If your builds are small and run infrequently, the overhead may not be worth it
45+
46+
**Recommendation**: Before enabling autoscaling, first try sizing up your container builder. You can select larger builder sizes on our [pricing page](/pricing), which allows you to run larger builds on a single builder without needing to scale out.
47+
48+
## How to enable build autoscaling
49+
50+
To enable container build autoscaling:
51+
52+
1. Navigate to your Depot project settings
53+
2. Go to the **Settings** tab
54+
3. Find the **Build autoscaling** section
55+
4. Toggle **Enable horizontal autoscaling**
56+
5. Set the **Maximum concurrent builds per builder** (default is 1)
57+
6. Click **Save changes**
58+
59+
<ImageWithCaption
60+
src="/images/depot-enable-horizontal-autoscaling.webp"
61+
alt="Enabled horizontal autoscaling on a Depot project"
62+
title="Enabled horizontal autoscaling on a Depot project"
63+
className="mx-auto"
64+
/>
65+
66+
The concurrent builds setting determines how many builds can run on a single builder before triggering a scale-out event. For example:
67+
68+
- Setting it to `1` means each build gets its own dedicated builder
69+
- Setting it to `3` means up to 3 builds can share a builder before a new one is launched
70+
71+
## Cache behavior with autoscaling
72+
73+
Understanding cache behavior is crucial when using autoscaling:
74+
75+
### Cache cloning
76+
77+
When additional builders are launched due to autoscaling:
78+
79+
1. They receive a **read-only clone** of the main builder's layer cache
80+
2. New layers built on scaled builders are stored locally but **not persisted** back to the main cache
81+
3. When the scaled builder terminates, its local cache changes are lost
82+
83+
### Cache implications
84+
85+
This means:
86+
87+
- Builds on scaled builders can read from the main cache
88+
- They cannot contribute new layers back to the main cache
89+
- Subsequent builds may need to rebuild layers that were already built on scaled builders
90+
- Cache efficiency may decrease with heavy autoscaling usage
91+
92+
## Billing and costs
93+
94+
Build autoscaling is available on **all Depot plans** at no additional cost:
95+
96+
- **No extra charges**: Autoscaling itself doesn't incur additional fees
97+
- **Standard compute rates**: You pay the same per-minute rate for scaled builders as regular builders
98+
- **No cache storage charges**: Cache clones are temporary and don't count toward your storage quota
99+
- **Pay for what you use**: Scaled builders are terminated when not in use
100+
101+
## Best practices
102+
103+
1. **Monitor your builds**: Use Depot's build insights to understand your build patterns before enabling autoscaling
104+
2. **Start conservative**: Begin with a higher concurrent build limit and decrease if needed
105+
3. **Size up first**: Consider using larger builder sizes before enabling autoscaling
106+
4. **Review cache hit rates**: Monitor if autoscaling significantly impacts your cache efficiency
107+
5. **Adjust during peak times**: You can dynamically adjust settings based on your build patterns
108+
109+
## Example configuration
110+
111+
Here's an example of when autoscaling might be beneficial:
112+
113+
**Scenario**: Your team has resource-intensive builds that compile large applications with heavy dependencies. Each build requires significant CPU and memory resources, and you frequently have multiple builds running concurrently due to:
114+
115+
- Multiple developers pushing code simultaneously
116+
- CI pipelines that build multiple variants of your application (different environments, architectures, or configurations)
117+
- Monorepo setups where changes trigger builds for multiple services
118+
119+
**Without autoscaling**:
120+
121+
- Multiple resource-intensive builds compete for CPU and memory on a single builder
122+
- Builds experience CPU throttling and memory pressure
123+
- Build times increase dramatically when multiple builds run concurrently
124+
- Builds may fail due to out-of-memory errors when too many run simultaneously
125+
126+
**With autoscaling** (max 1 concurrent build per builder):
127+
128+
- Each resource-intensive build gets its own dedicated builder with full access to 16 CPUs and 32GB RAM
129+
- No resource contention between builds
130+
- Consistent, predictable build times regardless of concurrent load
131+
- Builds can fully utilize available compute resources without interference
132+
133+
**Example build characteristics that benefit from this configuration**:
134+
135+
- Large Docker images with many layers (>50 layers)
136+
- Compilation of languages like Rust, C++, or Go with extensive dependencies
137+
- Machine learning model training or data processing during build
138+
- Multi-stage builds with resource-intensive compilation steps
139+
- Builds that require significant disk I/O for dependency installation
140+
141+
Result: Each build runs with dedicated resources, preventing resource contention and ensuring optimal performance even during peak usage.
142+
143+
## Troubleshooting
144+
145+
If you're experiencing issues with autoscaling:
146+
147+
1. **Builds still queueing**: Verify autoscaling is enabled and check your concurrent build limit
148+
2. **Increased cache misses**: This is expected behavior with cache clones - consider if the speed benefit outweighs cache efficiency
149+
3. **Costs increasing**: Monitor your usage in the Depot dashboard and adjust concurrent limits if needed
150+
151+
For additional help, reach out on [Discord](https://depot.dev/discord) or contact support.

content/container-builds/overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Depot remote container builds are available on [all of our pricing plans](/prici
102102
| **SSO & SCIM add-on** | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
103103
| **Volume discounts** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
104104
| **GPU enabled builds** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
105-
| **Docker build autoscaling** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
105+
| **Docker build autoscaling** | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
106106
| **Dedicated infrastructure** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
107107
| **Static outbound IPs** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |
108108
| **Deploy to your own AWS account** | <span className="text-radix-mauve10 text-center">&times;</span> | <span className="text-radix-mauve10 text-center">&times;</span> | <CheckCircleIcon className="text-radix-grass9 inline text-lg" /> |

content/overview/index.mdx

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,66 @@
11
---
22
title: Introduction
33
ogTitle: What is Depot?
4-
description: Depot is a build acceleration platform that makes Docker image builds up to 40x faster and provides faster GitHub Actions runners at half the cost.
4+
description: Depot is a build acceleration platform that makes your entire workflow exponentially faster — from up to 40x faster Docker builds and 10x faster GitHub Actions Runners to accelerated remote caching for Bazel, Gradle, Turborepo, sccache, and more.
55
---
66

77
Welcome to Depot!
88

99
Depot is a build acceleration platform focused on making builds exponentially faster. You can use Depot to make everything run faster, from your Docker image build to your E2E test suite in GitHub Actions.
1010

11+
Depot is a build acceleration platform that makes your entire development workflow exponentially faster. Whether you're building Docker images, running CI/CD pipelines in GitHub Actions, executing test suites in Go, or developing locally, Depot accelerates every part of your development process — from individual builds that finish in seconds to complete deployment workflows that run 10x faster.
12+
1113
## What problem is Depot solving?
1214

13-
Slow builds suck, for everyone. They slow down your development process, force you to context switch to other tasks, and ultimately drain energy, happiness, and resources.
15+
Slow development workflows drain productivity and happiness. Waiting for builds, tests, and deployments forces constant context switching, slows down feedback loops, and ultimately burns through engineering time and resources that should be spent building great products.
1416

15-
We are developers ourselves, and we've been frustrated with the constant pain of slow builds. The tools and providers of today simply don't prioritize performance. So, we built the solution we've always wanted, and that solution is Depot.
17+
We are developers ourselves, and we've experienced the frustration of waiting minutes or hours for builds to complete, watching CI pipelines crawl through test suites, and dealing with the complexity of setting up efficient caching across different tools. Modern development tools and CI providers simply don't prioritize performance at the level teams need. So, we built the build acceleration platform we've always wanted — one that makes everything exponentially faster with as little work as possible.
1618

1719
## Who is Depot for?
1820

19-
Depot is a good fit for any team that is tired of being bogged down by slow build performance. Whether you're a DevOps Engineer, Platform Engineer, Developer, Engineering Manager, or whatever awesome job title you have, Depot can help you make your builds faster.
21+
Depot is built for any team that wants to move faster and waste less time waiting. Whether you're a DevOps Engineer optimizing CI/CD pipelines, a Platform Engineer building developer tools, a Developer who wants faster local builds, an Engineering Manager looking to improve team velocity, or any other role focused on shipping software efficiently — Depot can accelerate your workflows and give you back hours of productive time every week.
2022

2123
## How does Depot work?
2224

23-
We have three products that can be used together or independently to make your builds more performant.
25+
We have five integrated products that work together or independently to make your development workflows exponentially faster.
2426

2527
### Remote container builds
2628

27-
With Depot remote container builds we run an optimized version of BuildKit that can make your Docker image builds up to 40x faster. We support native multi-platform builds for both Intel & Arm without the need for emulation. We also provide a persistent shared cache that is instantly available across builds and shared across your team.
29+
Our remote container builds run an optimized version of BuildKit that can make your Docker image builds up to 40x faster. We support native multi-platform builds for both Intel & Arm without emulation, provide persistent shared cache that's instantly available across your team, and free up your local machine's resources by running builds on powerful remote infrastructure.
2830

2931
[Learn more about remote container builds](/docs/container-builds/overview)
3032

31-
### GitHub Actions Runners
33+
### Global container registry
34+
35+
Depot Registry is a high-performance, globally-distributed container registry with CDN-backed image delivery. Built for speed and reliability, it ensures your container images are available instantly anywhere your applications deploy, reducing pull times and improving deployment speed. Our container registry integrates seamlessly with our remote container builds, so you can push and pull images without any additional configuration.
36+
37+
[Learn more about Depot Registry](/docs/registry/overview)
3238

33-
We offer Depot-managed GitHub Actions Runners that bring the power of Depot to the entire GitHub Actions workflow. We offer an optimized [Ultra Runner](/docs/github-actions/overview)) that is up to 3x faster than a GitHub-hosted runner. All runners are integrated into our cache orchestration system, so you get 10x faster caching without having to change anything in your jobs. Our runners are half the cost of GitHub-hosted runners, and we bill you by the second rather than by the minute.
39+
### Faster GitHub Actions Runners
40+
41+
Depot-managed GitHub Actions Runners bring our acceleration tech and expertise to your entire CI/CD workflow with up to 3x faster runners with 30% faster CPUs, 10x faster networking and caching, and unrestricted concurrency at half the cost of GitHub-hosted runners (**with true per second billing**). Our runners integrate seamlessly with our cache orchestration system, so you get dramatically faster caching without changing your existing workflows.
3442

3543
[Learn more about GitHub Actions Runners](/docs/github-actions/overview)
3644

37-
### Build API
45+
### Universal build cache
46+
47+
Depot Cache provides high-performance remote caching for development tools including Bazel, Go, Gradle, Turborepo, sccache, and Pants. Share build artifacts and test results across your entire team and CI environment, making builds incremental and achieving 2x to 20x speed improvements. The cache is instantly accessible from local development, any CI provider, and integrates automatically with our GitHub Actions runners.
48+
49+
[Learn more about Depot Cache](/docs/cache/overview)
3850

39-
If you need to build container images from untrusted sources or simply want to be able to call an API to build an image, we offer our remote container build infrastructure behind an API. You can use our build API to build container images from your own code on behalf of your own users using our `depot` CLI or with `buildx` as a library.
51+
### Build API for Platforms
52+
53+
If you need to build container images programmatically or from untrusted sources, our Build API provides access to our entire container build infrastructure through gRPC, Connect, and HTTP/JSON APIs. Build images on behalf of your users in a secure, isolated environment using our CLI tools or integrate directly with our SDKs.
4054

4155
[Learn more about the Build API](/docs/container-builds/reference/api-overview)
56+
57+
## Real world impact
58+
59+
Teams using Depot see dramatic improvements across their entire development workflow. Here are some examples of how Depot has transformed engineering teams:
60+
61+
- [PostHog cut build times by 55x](/customers/posthog): Reduced from 193 minutes to 3 minutes and 26 seconds, with an average of 12-13% time savings for their GitHub Actions on Depot runners. As their Technical Lead notes: "Around here, we say Posthog ships weirdly fast, and you can't say Posthog ships weirdly fast if you're waiting for an hour and 45 minutes."
62+
- [Hathora powers builds for game developers at scale](/customers/hathora): Using Depot at an API level to perform hundreds of builds per day on behalf of their customers, enabling game developers to deploy globally without Docker expertise. "It's become a pretty critical part of infrastructure for us. This is how our game developers get their game servers over to our platform."
63+
- [Jane cut GitHub Actions costs in half and increased throughput by 25%](/customers/jane-app): For over 250 developers across 35 engineering teams, Jane achieved 2.4x faster end-to-end test jobs and 55% reduction in GitHub Actions spend. As Staff DevOps Engineer Alonso Suarez said: "Last year, the most impactful project we did for Engineering at Jane was migrating to Depot. It was one week's effort and one month's lead time."
64+
- [Bastion cut build times by 6x while halving GitHub Actions spending](/customers/bastion): Achieved 6x faster Rust Docker builds, 3x faster Go builds, and 2x increase in PR throughput. Their CTO Jameel Al-Aziz noted: "Depot seems to have broken that formula. They said, hey, we'll make it both cheaper and faster."
65+
66+
Whether you're building a single application or managing infrastructure for hundreds of projects, Depot scales with your needs while maintaining the performance that keeps developers in flow state rather than waiting for builds to complete.

0 commit comments

Comments
 (0)