Which build infrastructure is right for me
With Harness CI, you can run builds on Harness-managed machines (Harness Cloud) or your own infrastructure.
Harness Cloud | Self-managed machines |
---|---|
Maintained and updated by Harness. | Maintained and updated by you or your cloud services provider. |
Preinstalled with common software/tools. You can add additional tools at runtime. | Configuration determined by you or your cloud services provider. |
Use build credits to cover build minutes. Default credits allowance varies by plan. | Costs vary for physical hardware maintenance, cloud services provider pricing models, or other factors. |
Learn more about each option below, including recommended use cases, supported platforms, and feature compatibility.
Harness Cloud
When you use Harness Cloud, your builds run in isolation on Harness-managed machines. You can run builds at scale on Linux, Windows, and macOS machines that are preinstalled with software commonly used in CI pipelines.
Harness hosts, maintains, and upgrades these machines so that you can focus on developing software instead of maintaining build farms.
Harness Cloud advantages
- Harness-managed infrastructure. You don't need to bring or maintain your own infrastructure.
- Highly scalable.
- Quick and easy configuration. Start building in seconds.
- Linux, Windows, and macOS platforms with modifiable images.
- Usually first to receive new feature developments.
- Available for all plan tiers.
Bring-your-own infrastructure
Self-managed build infrastructure options include local machines, Kubernetes clusters, and AWS/GCP/Azure VMs.
Local runner
When you use a local runner, also known as a Docker runner, you run builds on a local machine. You can execute build steps in Docker containers or directly on the host machine.
This option is recommended for small, limited-scale builds, such as one-off builds on your local machine. It is commonly used to build custom apps that have specific build machine requirements, such as legacy Windows apps that must be built on a custom Windows VM.
Self-managed local build infrastructure is available with all CI plans.
Kubernetes cluster
When you use a Kubernetes cluster build infrastructure, you can run ephemeral builds-at-scale in your own self-managed Kubernetes clusters. In this case, each CI stage executes in a pod, and the stage's steps share the pod's resources.
If you are familiar with Kubernetes, this option is relatively easy to set up and manage, but there are some cluster configuration requirements.
AWS/GCP/Azure VMs
You can run builds on self-managed AWS, GCP, or Azure VMs
This option can be challenging to configure and manage if you're not already familiar with managing cloud-provider VMs. However, compared to the Kubernetes cluster build infrastructure option, it allows you more freedom with Docker commands, offers native support for Windows, can support Docker builds on Windows (based on the VM configuration), and supports Linux, Windows, and macOS platforms.
While you can use an Anka registry to configure a macOS build farm, Harness recommends using Harness Cloud for macOS builds.
Supported operating systems and architectures
The following table shows the supported operating systems and architectures for each build infrastructure option.
Operating system | Architecture | Harness Cloud | Self-managed local runner | Self-managed Kubernetes cluster | Self-managed AWS/GCP/Azure VMs |
---|---|---|---|---|---|
Linux | amd64 | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Linux | arm64 | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
macOS | arm64 (M1) | ✅ Supported & Recommended | ✅ Supported | ❌ Not supported | 🔸 Supported, not recommended |
Windows | amd64 | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Windows | arm64 | ✅ Supported | ❌ Not supported | ❌ Not supported | ❌ Not supported |
Harness recommends Harness Cloud for macOS builds.
This recommendation is due to licensing requirements and the complexity of configuring and managing macOS VMs with Anka virtualization.
With Harness Cloud, your builds run on Harness-managed machines, and you can start running builds in minutes.
Feature compatibility matrix
Some Harness CI features are not compatible with all build infrastructures or platforms. New features are rolled out for Harness Cloud first before being enabled for other build infrastructures.
Feature | Harness Cloud | Self-managed local runner | Self-managed Kubernetes cluster | Self-managed AWS/GCP/Azure VMs |
---|---|---|---|---|
Test Intelligence | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Test splitting | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Cache Intelligence | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Cache to S3/GCS | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Multilayer caching | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Harness-managed Docker layer caching | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Delegate selectors | 🔸 Not applicable | ✅ Supported - Pipeline and stage delegate selectors | ✅ Supported - Pipeline, stage, and connector delegate selectors | ❌ Not supported |
Harness Secret Manager | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
Bring-your-own secret manager | ❌ Not supported | ✅ Supported | ✅ Supported | |
GitHub App support | ❌ Not supported | ✅ Supported | ✅ Supported | |
STO steps/stages | ✅ Supported - Linux | ❌ Not supported | ✅ Supported |
|
Plugins | ✅ Supported - Run on containers or host machine |
|
|
|
GitHub Actions | ✅ Supported - GitHub Actions plugin step | ✅ Supported - Drone plugin | ✅ Supported - Drone plugin | ✅ Supported - Drone plugin |
Bitrise Workflow Steps | ✅ Supported - Bitrise plugin step | ❌ Not supported | ❌ Not supported | ❌ Not supported |
Plugin output variables | ✅ Supported | ❌ Not supported | ✅ Supported | ✅ Supported |
Build details - Artifacts tab | ✅ Supported | ✅ Supported | ✅ Supported | ✅ Supported |
IP Allowlisting | ✅ Supported for Mac, Linux, Windows | ✅ Supported | ✅ Supported | ✅ Supported |
Secure Connect | ✅ Supported - Linux 🔸 Planned - macOS/Windows (Use IP allowlisting) | ❌ Not supported | ❌ Not supported | ❌ Not supported |