Five clouds.
One command.
Provision VMs, managed databases, networks, Kubernetes clusters, and serverless functions across AWS, GCP, Azure, Alibaba, and Linode — from one CLI, three SDKs, or a Terraform module. No translation layer. No vendor lock-in.
The silent tax on every modern engineering team: lock-in
Pick one cloud and you accept its pricing, its outages, its compliance footprint, and its acquisition risk. Pick three and you accept three teams' worth of glue code. There is no good answer at the platform level — only at the tooling level.
Multi-cloud is no longer aspirational. Regulated industries need Alibaba for China and AWS for the US. AI workloads need GPUs wherever they are cheapest this quarter. Acquired companies always come with the wrong cloud. The question is not whether your infrastructure will span clouds — it is whether you have the tooling to do it without doubling your SRE team.
The traditional answer is "use Terraform." Terraform is great at describing what you want; it is not great at the day-to-day imperative motions (provision a VM, SSH in, deploy an app, rotate a key) that fill most of an engineer's week. Cloud consoles solve the imperative side but lock you to one provider. vxcloud is the platform layer that gives you both — declarative IaC when you want it, an imperative CLI when you do not — and applies them uniformly across five clouds.
One wire contract, five clouds
Every supported cloud sits behind the same HTTP surface. The CLI, the SDKs, and the Terraform provider all speak it. You learn the surface once.
Virtual machines
EC2, GCE, Azure VM, ECS, and Linode Compute. One `provision` call, one returned object shape, the same SSH keypair flow on all five.
Managed databases
RDS, Aurora, Cloud SQL, Azure Database, ElastiCache, MemoryStore. Postgres, MySQL, Redis — one set of inputs (engine, size, region, network).
Networks and VPCs
CIDR-block-first provisioning. Subnets, route tables, internet gateways, and security groups translated per-cloud automatically.
Kubernetes
EKS, GKE, AKS. Define cluster name, node count, node type, region. The platform handles control-plane bootstrapping and kubeconfig delivery.
Serverless functions
Lambda, Cloud Functions, Cloud Run, Azure Functions. Same code-zip + handler + runtime input, mapped to each provider's API.
IAM, keypairs, storage
S3, GCS, Azure Blob, OSS. IAM policy + role + keypair provisioning that lands in workspace Vault for downstream deploys.
The same snippet in three languages
Choose the interface that fits the moment. CLI for one-offs. SDK for application code. Terraform for committed state.
# Provision a t3.small on AWS — same flag set works for --cloud=gcp/azure/alibaba/linode
vxcli vm create \
--name api-vm \
--cloud aws \
--region us-east-1 \
--instance-type t3.small \
--key-pair-name AWSPRODKEY2
# Switch providers — only --cloud and --region change
vxcli vm create \
--name api-vm-dr \
--cloud gcp \
--region us-central1 \
--instance-type e2-small \
--key-pair-name GCPPRODKEY1import vxsdk
c = vxsdk.Client.load_from_vxcli()
# Symmetric API: c.cloud.vm.provision(...) works for any --cloud value
vm = c.cloud.vm.provision(
name="api-vm", cloud="aws", region="us-east-1",
instance_type="t3.small", key_pair_name="AWSPRODKEY2",
)
# Provision a Kubernetes cluster on GCP
cluster = c.cloud.create_kubernetes_cluster(
"prod", cloud="gcp", region="us-central1",
node_count=3, node_type="e2-standard-4",
)import { VxCloud } from '@vxcloud/sdk';
const c = await VxCloud.loadFromVxcli();
const vm = await c.cloud.vm.provision({
name: 'api-vm',
cloud: 'aws', region: 'us-east-1',
instanceType: 't3.small',
keyPairName: 'AWSPRODKEY2',
});
// Lifecycle: start | stop | restart | reboot — same shape on any cloud
await c.cloud.vm.action({ instanceId: vm.instance_id as string, action: 'restart', cloud: 'aws' });terraform {
required_providers {
vxcloud = { source = "vxcloud/vxcloud" }
}
}
# Same resource type, different provider alias per cloud
provider "vxcloud" { alias = "aws" }
provider "vxcloud" { alias = "gcp" }
provider "vxcloud" { alias = "linode" }
resource "vxcloud_vm" "api" {
provider = vxcloud.aws
name = "api-vm"
instance_type = "t3.small"
region = "us-east-1"
key_pair_name = "AWSPRODKEY2"
}
resource "vxcloud_vm" "edge" {
provider = vxcloud.linode
name = "edge-vm"
instance_type = "g6-standard-1"
region = "ap-south"
key_pair_name = "LINODEPRODKEY1"
}When multi-cloud provisioning earns its keep
- Disaster recovery: primary in AWS us-east-1, warm DR in GCP us-central1, monthly failover drill via one Terraform target.
- Regional data residency: deploy the EU half on Linode Frankfurt, the China half on Alibaba Hangzhou, share Terraform modules, ship from one repo.
- AI/GPU arbitrage: spin a fine-tune job wherever H100 spot capacity is cheapest this hour — no permanent provider lock-in.
- Mergers and acquisitions: the acquired stack runs on Azure, yours runs on AWS — manage both behind one workspace until consolidation.
- Compliance segmentation: PCI workloads in their own GCP project, marketing site on Linode, everything else on AWS — central audit log across all three.
- Cost optimization: move stateless workers to the cloud with the best per-vCPU price this quarter without rewriting deployment scripts.
vxcloud vs Terraform Cloud vs Pulumi vs Spacelift
vxcloud is the only option in this matrix that also handles app deployment over SSH and ships with an AI-agent layer on top. The IaC tools assume a deployment story exists somewhere else.
| Feature | vxcloud | Terraform Cloud | Pulumi | Spacelift |
|---|---|---|---|---|
| Multi-cloud provisioning (AWS/GCP/Azure/Alibaba/Linode) | Yes — 5 clouds | Yes (via providers) | Yes (via providers) | Yes (via Terraform) |
| Imperative CLI for one-off provisioning | Yes — `vxcli` | No | Partial — `pulumi up` | No |
| Three first-class SDKs (Py / TS / Go) | Yes | No | Yes (multi-language IaC) | No |
| App deploy over SSH (no extra tooling) | Yes — 14 stacks | No | No | No |
| Free SSL via Let's Encrypt, automated | Yes — built-in | No | No | No |
| AI agents for cloud ops | Yes — VxAI + AgentControl | No | No | No |
| Managed Vault for credentials | Yes — per-workspace | Variables only | ESC (separate product) | Yes |
Multi-cloud provisioning FAQ
Start provisioning across five clouds today
Free tier includes one VM, one managed Postgres, and 100 GB egress per cloud. No credit card to start.
Related pages
- AI-Powered DevOps PlatformAutonomous agents for cloud operations.
- SSH Deploy AutomationPush to any VM you own, with free SSL.
- What is multi-cloud deployment?Plain-English explainer.
- vxcloud vs VercelDeploy backends to real VMs.
- Migrate from HerokuStep-by-step migration guide.
- FastAPI hosting on any cloudOne CLI, five providers.