Design for Portability from Day One
The best time to plan your exit is before you enter the cloud. Architectural decisions made in the first six months of a company's life can either preserve or permanently foreclose the option to repatriate. The cost of changing these decisions later scales with the size of your codebase and the volume of your data.
The core principle is preferring open standards over proprietary services at every layer of the stack:
| Layer | Proprietary (Lock-in) | Open Standard (Portable) |
|---|---|---|
| Database | DynamoDB, Cosmos DB, Firestore | PostgreSQL, MySQL, CockroachDB |
| Compute | Lambda, Cloud Functions, App Engine | Docker + Kubernetes |
| Object Storage | S3 (direct SDK), GCS | S3-compatible API (MinIO, Ceph) |
| Messaging | SQS, Kinesis, Pub/Sub | Kafka, RabbitMQ |
| Secrets | AWS Secrets Manager | HashiCorp Vault |
This does not mean never using proprietary services. It means making a conscious, documented decision when you do — acknowledging the lock-in cost and deciding it is worth the operational benefit.
The Hybrid Future
Most mature companies will eventually operate a Hybrid Cloud model, not because they failed at cloud adoption, but because they succeeded at it long enough to outgrow the pure-rental economics.
The typical mature architecture looks like this:
- Public cloud: Variable workloads, new product experiments, geographic regions where you lack colo presence, managed AI/ML services, and burst capacity.
- Colocation / on-prem: Core databases, high-throughput data processing, video transcoding, and any workload with predictable, high utilization.
- Unified governance layer: A single cost-tracking, security policy, and observability platform that spans both environments — tools like Terraform (infrastructure-as-code across providers), Datadog (unified observability), and a FinOps platform (CloudHealth, Apptio) that can report on both cloud and colo costs in a single pane of glass.
This is not a compromise. It is the destination that cloud-native thinking was always pointing toward: use the right tool for the right job, and never let a vendor's pricing model make that decision for you.