- Create your Tensor9 account and set up a Tensor9 BYOC control plane in your AWS account.
- Create an app and bind a Docker Compose file as its origin stack.
- Onboard a customer and release your app to their appliance.
- Release infrastructure changes.
Prerequisites
- A Google account to sign up for Tensor9.
-
Create an AWS account for Tensor9 BYOC. We will refer to this as the Tensor9 BYOC AWS account.
Important:
- Your Tensor9 BYOC AWS account should be a dedicated AWS account used only for Tensor9 BYOC. This reduces the risk of conflicts between your app deployed in a Tensor9 BYOC appliance and any other software, infrastructure, or resources you might have in a general-purpose AWS account.
- Tensor9 BYOC sets up your control plane in the AWS
us-west-2(US West, Oregon) region. Other regions are not available yet.
-
Install AWS CLI in your environment, and set up an AWS CLI profile that has admin permissions to your new AWS account. This guide calls it
my-vendor-aws. - A second AWS account to act as your first customer. You will open the customer setup link while signed in to this account.
- Have a docker-compose.yml file ready with your multi-container application.
- Ensure all container images referenced in your compose file are pushed to container registries (ECR, Docker Hub, GitHub Container Registry, etc.).
Create your account and control plane
-
Follow Get a Tensor9 API key to sign up and install the
tensor9CLI. - Export your API key and set up your control plane in your new AWS account (about 10 minutes):
-region us-west-2 if your AWS configuration defaults to another region. Setup makes its controller profile your CLI default, so the commands below need no API key or profile options.
- Create a new Tensor9 BYOC app.
displayName field must be 32 characters or fewer.
Publish your Docker Compose file and bind it to your app
Tensor9 BYOC works by compiling your docker-compose.yml file for each appliance you want to deploy to. Your next step is to publish your compose file to your Tensor9 BYOC control plane:compose-quickstart. Publishing again with the same stack name updates that origin stack and retains the existing binding.
Onboard a customer
Customers install your app in their own cloud accounts through a setup link. In this guide, your second AWS account acts as the customer.- Create a form factor that lets customers install your app in AWS:
- Create a setup link for your customer:
acme-corp if it does not exist yet and prints the customer’s setup link.
- Sign in to the AWS console of your customer AWS account, then open the setup link in the same browser. Follow the setup wizard to choose the environment, then download and apply the infrastructure templates in the customer account. The customer installation guide describes each step.
- Check the report and confirm that the customer’s appliance is ready before releasing:
Release to your customer
- Create a release for your customer:
- View the deployed services using a Kubernetes context already configured for that appliance:
- Access your application through the load balancer. Get the load balancer endpoint for services with exposed ports:
Release an infrastructure change
You can release infrastructure changes to your Docker Compose stack at any time.1
Update your docker-compose.yml file
Make any desired changes to your compose file. For example, you could:
- Add a new service
- Change resource limits
- Add environment variables
- Update container image versions
2
Re-publish your origin stack
-stackName my-app-compose when updating this origin stack.3
Create a new release
4
Verify the changes
Clean up
When you finish with this guide, remove what you created. You can do the following yourself today:tensor9 whoami reports, and the app and customer names. Do not delete control plane resources from your AWS account by hand.
Next steps
Now that you’ve deployed a Docker Compose app with Tensor9 BYOC:- Review the Docker Compose origin stack documentation for advanced features
- Learn about stack tuning documents to customize deployments per customer
- Explore form factors to deploy to different cloud providers
- Set up observability to monitor your appliances