Moving from a monolithic Terraform estate to a modular, multi-cloud Infrastructure as Code platform: shared building blocks pooled in one place, an isolated control plane, a management layer, and one implementation per provider (AWS, GCP, Scaleway) behind a single contract. The migration relies on moved blocks to relocate resources without destroying them.
Generic diagram: instances, repositories, channels and modules are named by function. The architecture is shown for illustration, independently of any organisation.
What the rebuild moves: logic duplicated from one cloud to the next travels up into common/, and each provider keeps only its own implementation. The transition happens through moved blocks, with no resource destroyed.
The control API is the source of truth: it describes the environments to create, and every status transition is reported back to it. The cloud foundation is always laid before the application layer, and teardown takes a dedicated path.
What each provider substitutes behind the common contract — and the three building blocks that stay cross-cutting whatever the cloud.
| Function | AWS | GCP | Scaleway |
|---|---|---|---|
| Kubernetes | EKS | GKE | Kapsule |
| Compute | EC2 | Compute Engine | Instances |
| Database | RDS | Cloud SQL | RDB |
| Object storage | S3 | GCS | Object Storage |
| Network | VPC | VPC / NAT | Private Network |
| Cross-cutting DNS | Route53 for all three providers | ||
| Application secrets | Bitwarden for all three providers | ||
| Observability | OpenObserve and Prometheus for all three providers | ||