Private datacenter (Outpost) test
Problem: Your target service is not reachable from the public internet — it lives behind a VPN, in a private subnet, or in a regulated environment. MaxoPerf’s managed cloud locations cannot reach it. A BYOC Outpost (Bring Your Own Compute) installs a MaxoPerf runner agent inside your network so tests run from there, with results surfaced in the same MaxoPerf console.
Test type: Any (Load test, Stress test, Smoke test).
Prerequisites
Section titled “Prerequisites”- A MaxoPerf workspace with permission to create private datacenters.
- A Docker host or a Kubernetes cluster inside the target network with outbound HTTPS access to MaxoPerf service endpoints.
- A test file targeting an internal URL.
See Connect a private datacenter for the full installation how-to.
Step by step in MaxoPerf
Section titled “Step by step in MaxoPerf”1. Register the private datacenter
Section titled “1. Register the private datacenter”- Open the Workspace page and switch to the Private datacenters tab.
- Click New private datacenter.
- Give it a descriptive name — for example
k8s-staging-internaloraws-vpc-us-east. - Choose the runtime (Docker or Kubernetes) and save.
- Copy the generated install snippet. It contains a one-time enrollment token and the MaxoPerf service endpoints.
2. Install the Outpost agent
Section titled “2. Install the Outpost agent”- SSH into your Docker host (or apply the Kubernetes manifests to your cluster).
- Run the install snippet. The agent registers, exchanges the one-time token for a long-lived identity, and appears as
runningin the console within 30–60 seconds.
3. Write a test targeting the internal URL
Section titled “3. Write a test targeting the internal URL”execution: - scenario: internal-api concurrency: 20 ramp-up: 2m hold-for: 5m
scenarios: internal-api: requests: - label: GET /internal/health url: http://internal-api.svc.cluster.local:8080/internal/health method: GET
- label: POST /internal/jobs url: http://internal-api.svc.cluster.local:8080/internal/jobs method: POST headers: Content-Type: application/json Authorization: Bearer ${INTERNAL_API_TOKEN} body: '{"type": "load-test-job", "payload": {}}'The internal hostname resolves inside your network but not from outside — that is exactly why you need the Outpost.
4. Configure the test to use the private location
Section titled “4. Configure the test to use the private location”- Upload the YAML under Files and bind
INTERNAL_API_TOKENunder Settings → Secrets. - Switch to the Configuration tab.
- Under Locations, remove any managed cloud locations and add your private datacenter location.
- Save and click Run now.
5. Verify the runners are in the private location
Section titled “5. Verify the runners are in the private location”- Open the run and switch to the Runners tab.
- Each runner should display your private datacenter name as its location badge.
- If runners show a managed cloud region instead, check that the private location is the only selected location in the Configuration tab.
Verify
Section titled “Verify”- The Runners tab shows runners from your private datacenter (not a managed cloud region).
- The internal URL responds successfully —
2xxresponses on the health and action labels. - Latency is lower than it would be from a managed public cloud region because the runner is co-located with the target.
- If latency is unexpectedly high, check network path between the runner host and the target service.
Variations
Section titled “Variations”- Mix private + cloud: weight 80 % to the private location and 20 % to a cloud region to test both the internal path and internet-facing routing simultaneously.
- Multiple Outpost agents: register a second private datacenter in a different private subnet to test east–west latency inside your network.
- Docker Compose quick start: for a quick smoke test, the Docker runtime requires only a single
docker runcommand — no Kubernetes.
Where to go next
Section titled “Where to go next”- Connect a private datacenter — full Outpost installation and configuration reference.
- Multi-region distributed load — combine Outpost with managed cloud locations.
- Managed and private load locations — when each kind of location fits best.