Buildkite's Hybrid CI Model: Hosted Runners vs Self-Hosted Agents
Buildkite splits CI into a hosted control plane and agents you run on your own machines. This comparison weighs that self-hosted agent model against fully hosted runners so you can pick the right fleet.
Buildkite separates the part that decides what to run from the part that runs it: a hosted control plane queues and routes work, while agents on your own hardware pull jobs and execute them. The Shopify iOS setup shows the self-hosted side in practice, where agents boot disposable macOS VMs on MacStadium hardware, upload artifacts, and delete the VM afterward. The hosted alternative trades that control for speed of setup, with a vendor supplying the machines and a smaller operational burden. The comparison matters because the choice fixes who owns capacity, how quickly you can absorb a burst, and how much of your team's time goes into maintaining build infrastructure.
FAQ
Why would a team run Buildkite agents on its own hardware instead of hosted runners?
Because the control plane only schedules work while the agent executes it, build code, secrets, and artifacts stay on machines you control. Shopify's iOS pipeline boots disposable macOS VMs from layered images and deletes them after each job, which removes a shared-storage single point of failure and lets the fleet scale horizontally.
What breaks first when self-hosted agent demand spikes?
Queue time. Shopify's Buildkite fleet runs roughly 350 iOS jobs an hour, but capacity is still adjusted by hand, so spiky demand shows up as longer waits rather than errors. Treat queue depth and wait time as early pressure signals and defer lower-priority work before saturation spreads.
When is a fully hosted runner the better trade?
When you have no Mac hardware, a small team, or no appetite for maintaining build machines. Hosted macOS agents remove the need to own the hardware and pair well with golden path templates that scaffold the pipeline for developers, at the cost of less control over the underlying fleet.
AWS Glue runs serverless Spark jobs that transform data in batches; engine-native pipelines transform during ingestion. This comparison shows how to pick between them by freshness, cost, and data fidelity.
Compare two mental models for brand: a static artifact (logos, guidelines, centralized control) and a living operating system (values, APIs, support, trust). See which choices fit your engineering team.
A side-by-side comparison of the two accountability models engineers actually rely on: a named human owner per outcome, and system-enforced traces, budgets, and isolation.
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.