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, and MaxoPerf’s managed cloud locations cannot reach it. A BYOC Outpost (Bring Your Own Compute) installs a MaxoPerf runner agent inside your network. Tests run from there, and the results show up 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 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 with
2xxon 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 the network path between the runner host and the target service.
Variations
Section titled “Variations”- Mix private + cloud: give 80 % to the private location and 20 % to a cloud region to test the internal path and internet-facing routing at the same time.
- 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 needs only a single
docker runcommand. No Kubernetes required.
Where to go next
Section titled “Where to go next”- Connect a private datacenter: the 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.