> ## Documentation Index
> Fetch the complete documentation index at: https://aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Aspect Enterprise trial

> A 30-day trial of Aspect Enterprise measures your existing Bazel build on remote execution and the remote cache against your current CI, on the same commits: what to measure, how to set up the comparison, and how to compare fairly.

export const gatedHref = (user, href, group) => {
  const loggedIn = !!(user && user.loggedIn);
  const groups = user && user.tenantMetadata && user.tenantMetadata.docsGroups || [];
  if (loggedIn && (!group || groups.indexOf(group) >= 0)) {
    return href;
  }
  return loggedIn ? undefined : "/login?redirect=" + encodeURIComponent(href);
};

export const gatedAccess = (user, group) => {
  const loggedIn = !!(user && user.loggedIn);
  const groups = user && user.tenantMetadata && user.tenantMetadata.docsGroups || [];
  if (loggedIn && (!group || groups.indexOf(group) >= 0)) {
    return "entitled";
  }
  return loggedIn ? "signed-in" : "anonymous";
};

export const GatedLink = ({access, href, group, children}) => {
  const note = group ? "Aspect Enterprise customers" : "free Aspect account";
  const muted = {
    fontSize: "0.85em",
    opacity: 0.7,
    whiteSpace: "nowrap"
  };
  if (access === "entitled") {
    return <a href={href}>{children}</a>;
  }
  if (access !== "signed-in") {
    return <span>
        <a href={"/login?redirect=" + encodeURIComponent(href)}>{children}</a>
        <span style={muted}> (sign in: {note})</span>
      </span>;
  }
  return <span>
      {children}
      <span style={muted}> ({note})</span>
    </span>;
};

A 30-day trial of [Aspect Enterprise](/docs/aspect-workflows/enterprise/overview) answers one question: are your builds faster? Your existing build and tests run on the deployment's [remote execution](/docs/aspect-workflows/enterprise/remote-execution) fleet and [remote cache](/docs/aspect-workflows/enterprise/remote-cache), on the same commits as your current CI, without blocking anyone, and you compare the two.

Aspect stands up the deployment, sized from a [first estimate](/docs/aspect-workflows/enterprise/capacity), sets up worker pools for your toolchains and gets your build running on them. [Talk to us](/contact) to start one, and agree at the start what result counts as a success.

## What to measure

| Metric | Where it comes from | What it tells you |
| - | - | - |
| **Pull request wall time**, p50 and p90 | Your CI provider's durations for the same Bazel steps on both sides, not the whole pipeline | What developers wait for. p90 is the one they complain about |
| **Cache hit rate** | Trial job: the [Build Results UI](/docs/aspect-workflows/platform/features/webui). Baseline: the `processes` summary line Bazel prints at the end of each build | How much work the build skipped |
| **Critical path** | Trial job: the Build Results UI's timing profile. Baseline: `--profile` with `bazel analyze-profile` | The floor no amount of parallelism gets below, and which targets set it |
| **CI cost** | Your current CI's bill, against the deployment's cloud cost: self-hosted, its <GatedLink access={gatedAccess(user, "workflows-subscriber")} href="/docs/aspect-workflows/enterprise/self-hosted/observability/cost-monitoring" group="workflows-subscriber">cost monitoring</GatedLink> or your cloud bill | What the faster builds cost or save |

## Setting up the comparison

<Steps>
  <Step title="Take a baseline">
    Record the metrics above on your current CI over a week of ordinary traffic, before you change anything.
  </Step>

  <Step title="Add a trial job to your current CI">
    A job next to your current ones runs the same build and test steps against the deployment, through its [external endpoint](/docs/aspect-workflows/enterprise/remote-cache#the-external-endpoint), with an API token Aspect issues. Mark it so a failure can't block a merge. <GatedLink access={gatedAccess(user, "workflows-subscriber")} href={gatedHref(user, "/docs/aspect-workflows/enterprise/connect/ci-setup/your-own-runners", "workflows-subscriber")} group="workflows-subscriber">CI setup on runners you manage</GatedLink> has the steps.
  </Step>

  <Step title="Turn on remote execution">
    Register the exec platform Aspect gives you for each worker pool, and add `--config=aspect-exec` to the trial job's `bazel` calls. Your current CI and every developer's build are unchanged. See [Targeting remote execution worker pools](/docs/aspect-workflows/platform/guides/remote-execution-worker-pools).
  </Step>

  <Step title="Measure the same things on both sides">
    Run on pull requests, on `main`, or both. Pull requests give you the numbers developers feel; `main` gives you a steady stream of comparable builds.
  </Step>
</Steps>

To measure [CI runners](/docs/aspect-workflows/platform/features/ci-runners) as well, run the trial job on a <GatedLink access={gatedAccess(user, "workflows-subscriber")} href={gatedHref(user, "/docs/aspect-workflows/enterprise/connect/ci-setup/workflows-runners/runner-groups", "workflows-subscriber")} group="workflows-subscriber">runner group</GatedLink> in the deployment, in the same VPC as the cache and the fleet. Developers can try it from their laptops with <GatedLink access={gatedAccess(user, "workflows-subscriber")} href={gatedHref(user, "/docs/aspect-workflows/enterprise/connect/local-setup", "workflows-subscriber")} group="workflows-subscriber">local setup</GatedLink>.

## Comparing fairly

* **Same commits.** The trial job runs on the commits your current CI already builds, so both sides see the same changes.
* **Separate the cache from remote execution.** If your current CI has no remote cache, run the trial job with and without `--config=aspect-exec` too, so you see what each adds.
* **Count the network path.** A trial job on your current CI reaches the deployment over the internet through the external endpoint. Runners inside the deployment's VPC don't pay that latency, so the trial job is a conservative measure of them.
* **Warm against warm.** The first builds on a new deployment are cold by definition. Compare after the cache has seen a few days of traffic.
* **Tune before you judge.** Worker pool sizes, scaling limits and Bazel's own parallelism change the numbers. Work through [Parallelize remote execution](/docs/aspect-workflows/platform/guides/parallelization) and [Optimizing your Bazel build](/docs/bazel/guides/optimizing-builds), and for runners [Optimizing CI runners](/docs/aspect-workflows/enterprise/guides/optimizing-ci-runners), before you take the final measurement.
* **Count what ran locally.** Tests kept off remote execution, such as those tagged `no-remote-exec` because they reach a service only your CI can, still run on the job's machine. Say how many there are.

For a published example of this kind of measurement, with the infrastructure configuration and public CI runs, see the [AOSP build benchmark](/docs/aspect-workflows/platform/benchmarks/aosp-remote-execution).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.