



Who Cloud Adapter is for
Cloud Adapter is for software vendors and enterprises that want the freedom to choose their cloud while keeping the cloud integrations they already have.- Software vendors expanding into new marketplaces. Reach customers in additional cloud marketplaces by running your product in those environments, while keeping its existing cloud integrations.
- Software vendors reducing infrastructure costs. Move your product to a lower-cost cloud or choose a more cost-effective backend for individual services, while retaining your existing SDKs, CLI commands and Terraform configurations.
- Enterprises using multiple clouds to control costs. Choose the cloud and backend that offer the best economics for each workload. Keep the APIs your applications already use across those environments, so each cloud choice does not require a separate application integration.
- Vendors deploying into customer environments. Offer the same product in a customer’s chosen cloud or on-prem environment, including deployments driven by data-location requirements.
How it works
- Choose what to emulate and where to run it. Select the cloud APIs your software uses and the backend services that will provide them in the new environment.
- Point your existing tools at Cloud Adapter. Configure the adapter endpoint in your SDK, CLI or Terraform provider, along with the application credentials.
- Run your software. Cloud Adapter translates supported API calls to the selected backend and returns responses in the format your application expects.
Request and response architecture
Your application sends familiar cloud API requests to Cloud Adapter. The adapter calls the chosen backend services and translates their responses back for your application.Use a standard SDK
Use the standard, unmodified SDK for the cloud your software was built for. Configure the adapter endpoint using the SDK’s normal endpoint option; request signing and response parsing continue to use that cloud’s API. For example, the standard AWS SDK for Python, boto3, can write the same object through the S3 API. Configure your region and origin-side credentials through the normal AWS credential chain before running this example. With the selected S3-to-Cloud Storage profile and bucket configured:endpoint_url and path-style S3 addressing are standard SDK configuration. No SDK fork or custom request format is required for this example. The same operation and service-pair limitations apply to SDK and CLI requests.
Examples with the AWS CLI
Before trying either example, the adapter must be running, its endpoint and origin-side credentials must be configured, and the named target resources must exist. SetT9_CLOUD_ADAPTER_ENDPOINT to your adapter endpoint. The commands below use illustrative resource names.
Store an object in Google Cloud Storage using S3
With S3 mapped to Google Cloud Storage, send an S3PutObject request:
Read an Azure Cosmos DB item using DynamoDB
For a DynamoDB table mapped to provisioned Azure Cosmos DB, send a supportedGetItem request:
Use Terraform or OpenTofu
Terraform and OpenTofu use a cloud provider’s normal API calls. Configure the provider to send supported service calls to Cloud Adapter, which translates them to your chosen backends. You keep the provider and its familiar resource definitions. For an existing test bucket using S3 backed by Google Cloud Storage, the AWS provider’s standardendpoints setting directs S3 calls to the adapter. This configuration fragment comes from the bounded S3 example for AWS provider 5.100.0; adapter_endpoint is the endpoint of your running adapter:
skip_* options keep that provider version’s startup checks from contacting metadata, region validation or AWS STS outside the configured S3 route; they do not disable Cloud Adapter authentication. Reassess the provider’s API calls before changing versions.
Start with an isolated workspace and an existing test bucket. Check the exact resource lifecycle you need, including create, read, refresh and delete, through both the origin API and the target service. Changing a provider endpoint is not application-data migration and can affect refresh or replacement plans. Verify behavior before redirecting a production workspace.
Get started with Cloud Adapter
Install the Tensor9 CLI with Homebrew:T9_API_KEY before using it to inspect, acquire or run an adapter.
Setup accepts a complete configuration file or guides you through questions to generate one. For a focused evaluation, begin with one service pair and disposable test resources using the existing foreground tensor9 adapt svc run workflow. Full deployments use tensor9 adapt cloud install to prepare the target-cloud fabric that hosts the serving image, with configuration, networking and credentials prepared for that environment.
The local container launcher is pending. The Homebrew commands above install the CLI; they do not deploy a running adapter or establish production readiness. Confirm supported operations and verify one bounded request before expanding the workload.
Connect locally for development and testing
Keep your application, debugger and tests on your laptop while requests use your installed Cloud Adapter and its configured cloud backends. In one terminal, open a tunnel using the directory printed byadapt cloud install:
http://127.0.0.1:65534; target resources and cloud billing remain in your development project or subscription. Ctrl-C stops the tunnel and leaves the installation running. See Local development with a cloud installation for SDK examples, credentials and reconnecting.
Choose your next step
Plan your setup
Choose services and backends, then prepare configuration, identity and networking.
Use an existing cloud tool
Use the AWS CLI, SDKs, Terraform/OpenTofu, Pulumi and other API clients with the origin endpoint.
Check service mappings
Check supported operations and behavior for your chosen service and backend.
Work with included agents
Investigate a question and coordinate support or operational work. You can also connect your own agents.
Tune your workload
Understand tuning options and measure a change against your workload.
Debug a request
Follow request evidence from the origin API through the adapter to the target service.