Skip to main content
Testing with Tensor9 involves validating releases in test appliances before deploying to customer appliances. Test appliances are isolated environments that mirror customer deployment targets, allowing you to verify functionality, performance, and compatibility without affecting production customers.

Test appliances

A test appliance is an automatically managed environment that Tensor9 provisions for testing purposes. Test appliances:
  • Run in vendor-controlled infrastructure (your cloud account)
  • Mirror the form factor and configuration of customer appliances
  • Allow you to validate releases before production deployments
  • Can be created and retired on demand
  • Support the full deployment lifecycle (compile, deploy, observe, operate)
Test appliances function identically to customer appliances but are designed for pre-production validation. This ensures what you test matches what customers will experience.

Why test in test appliances

Testing in test appliances before deploying to customers provides several safeguards:

Creating test appliances

Create a test appliance using the Tensor9 CLI:

Example: Create test appliance for AWS

This creates a test appliance named after your form factor and region. Tensor9 automatically provisions the infrastructure and the appliance becomes available within 10-15 minutes.

Example: Create test appliances for multiple form factors

To test across different cloud providers, create multiple test appliances:
Each test appliance operates independently, allowing you to validate your application across all supported environments.

Viewing test appliances

Use tensor9 report to see all your test appliances and their status:
Example output showing test appliances:
The report shows:
  • Status: Whether the appliance is Live and ready for deployments
  • Cloud Details: The cloud provider and region
  • Form Factor: Which form factor the appliance uses
  • Installs: Apps deployed to the appliance
  • Releases: Deployed releases with version, deployment status, and outputs
  • Hardware: Appliance uptime and capacity

Testing workflow

Follow this workflow to test releases before deploying to customers:
1

Create test appliance

Create a test appliance for the target form factor if one doesn’t exist:
Wait for the appliance to reach “Live” status (check with tensor9 report).
2

Publish origin stack

Publish your origin stack to your control plane:
This uploads your infrastructure code and returns a native stack ID.
3

Create release for test appliance

Create a release targeting your test appliance:
Tensor9 compiles your origin stack for the test appliance and downloads the deployment stack into a directory named after your test appliance.
4

Deploy to test appliance

Deploy the compiled stack using standard tooling:
The deployment executes in your test appliance.
5

Validate the release

Test your application in the test appliance:
Validate functionality, performance, and observability before proceeding.
6

Deploy to customer appliances

Once validated, deploy the same release to customer appliances:
The tested release deploys to the customer appliance.

Testing across form factors

When supporting multiple cloud providers or deployment environments, create test appliances for each form factor you support:
Then test your release in each environment:
This validates that service equivalents work correctly and your application performs consistently across all target environments.

Integration testing

Integrate test appliances into your CI/CD pipeline for automated testing:
This automatically validates every change in a test appliance before deploying to customers.

Versioning for test releases

Use version suffixes to distinguish test releases from production releases:
After validation, create the production release without the suffix:
This makes it clear which releases are for testing vs. production.

Retiring test appliances

When you no longer need a test appliance, retire it to clean up resources:
This decommissions the test appliance and cleans up all associated infrastructure.

Best practices

Maintain long-running test appliances for each form factor you support rather than creating them on demand. This speeds up testing and provides consistent validation environments.
Always validate releases in test appliances before deploying to customer appliances. This catches issues early and reduces customer-facing incidents.
Integrate test appliances into CI/CD pipelines. Automatically deploy to test appliances and run validation tests on every commit or pull request. Regularly deploy to test appliances to keep them in sync with your latest changes - stale test appliances may not accurately reflect production behavior.
If you support multiple cloud providers, test in all of them. Service equivalents may behave differently across providers, and testing catches these differences.
Use the same observability setup for test appliances as you do for customer appliances. This validates that telemetry flows correctly and your monitoring works.
Retire test appliances you no longer need to reduce costs and clutter in your reports.