← Back to portfolio

CloudShift: Automating the Tedious Work of Cloud Migration

CloudShiftMigrationTerraformOpen Source

Cross-cloud migration involves a lot of tedious, repetitive translation work: reading infrastructure templates from one provider and manually writing equivalent configurations for another. CloudShift automates this entire process.

The Manual Process

When migrating infrastructure between cloud providers, the translation for each service follows the same pattern:

  1. Read the source infrastructure template and identify every resource (networking, compute, database, storage, etc.)
  2. Find the target cloud equivalent for each resource
  3. Write Terraform modules for each mapped resource
  4. Generate a Helm chart for any Kubernetes workloads
  5. Write a migration runbook with rollback steps
  6. Validate the Terraform with terraform plan

For a portfolio of services, this manual process takes months. Each service takes days of mechanical work.

The Automated Process

CloudShift performs these steps in seconds. It ingests a source infrastructure template, builds a canonical model of the infrastructure, maps each resource to the target cloud using a curated catalog, and generates all the artifacts: Terraform modules, Helm charts, dry-run plans, and migration runbooks.

The output is not production-ready: placeholder values need to be filled, IAM policies need review, and network topology decisions require human judgment. But it eliminates the vast majority of the mechanical work and lets the engineer focus on the decisions that require expertise.

The Mapping Catalog

The core of CloudShift is the mapping catalog: a curated registry of source-to-target resource translations. Each mapping includes a rationale, caveats, and known incompatibilities.

The catalog is code, not configuration, which means it can be tested, versioned, and extended. Adding support for a new resource type is a single method addition to the catalog class.