Skip to main content
Testing with Tensor9 BYOC 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 BYOC 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
  • Require an existing test setup arranged with Tensor9 before release workflows
  • 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:

Prepare test appliances

This guide uses existing, ready test appliances for your app. Test-appliance creation is not available through the public CLI; contact Tensor9 if you need one. To test a release yourself without a test appliance, onboard a second AWS account of your own as a customer with tensor9 app setup and release to it with -customerName, as the Terraform quick start shows.

Select an AWS test appliance

Choose your existing AWS test appliance with the required form factor and region. Use tensor9 report to check that it is ready before creating a release.

Select test appliances for multiple form factors

Choose a ready test appliance for each form factor you want to test. Use your existing appliance names in the release commands.

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

Select an existing test appliance

Select a ready test appliance for your app and check its status with tensor9 report. The example below uses test-aws-us-west-2; replace it with your appliance name.
2

Publish origin stack

Publish your origin stack to your control plane:
This uploads your infrastructure code through your control plane and binds it to your app. Publishing again with the same -stackName keeps the binding.
3

Create release for test appliance

Create a release targeting your test appliance:
Tensor9 BYOC 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 tensor9 provider in the deployment stack reads your API key from T9_API_KEY. Set it at a hidden prompt for the tofu commands only, and unset it as soon as they finish, as the Terraform quick start shows: while it is set, tensor9 commands use the key instead of your controller profile.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

To test across cloud providers or deployment environments, choose a ready test appliance for each form factor. Replace the example names below with your existing appliance names. 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

Test-appliance retirement is not available through the public CLI. Contact Tensor9 to arrange retirement, including data retention and ongoing infrastructure costs.

Best practices

Use a suitable existing test appliance for each form factor you intend to validate. Keep it up to date and review its runtime costs.
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.
Contact Tensor9 about test appliances you no longer need, including data retention and infrastructure costs.