finds.dev← search

// the find

multycloud/multy

★ 661 · Go · Apache-2.0 · updated Feb 2023

Multy - Easily deploy multi cloud infrastructure. Write cloud-agnostic config deployed across multiple clouds

Multy is a cloud-agnostic abstraction layer, shipped as a custom Terraform provider backed by a Go gRPC server, that lets you define infrastructure once (VMs, VPCs, subnets, databases, K8s, lambdas, object storage) and deploy it to AWS, Azure, or GCP by changing one parameter. It's aimed at teams running the same workloads across multiple clouds who don't want to hand-write three sets of provider-specific HCL.

The resource model is well factored — each abstract resource (e.g. virtual_machine, network_security_group) has a clean interface implementation per cloud in resources/output/{resource}/{cloud}_*.go, so adding a fourth provider is a matter of implementing the interface, not rewriting the abstraction. It actually emits real, readable Terraform (the generated 190-line AWS+Azure example in the README is legit output, not a toy), so you're not locked into a Multy-only runtime at apply time. Proto-defined resource schemas (api/proto/resourcespb) give you a typed contract between the CLI/provider and the backend instead of ad-hoc JSON.

Last commit is from February 2023 — this is dead, not actively maintained, and running unmaintained infra tooling against live cloud accounts is a real risk if provider APIs or Terraform's plugin protocol shift underneath it. The architecture requires a server component (their hosted 'Managed Multy' or you self-host db/local_database.go) just to translate config into Terraform, which is a heavier dependency chain than a normal provider for what is fundamentally a templating problem. Resource coverage is thin — no coverage for messaging, DNS, CDN, or IAM beyond basics, so any real multi-cloud setup will still need raw aws_*/azurerm_* resources alongside Multy, undermining the single-abstraction pitch. The abstraction itself is the classic lowest-common-denominator trap: cloud-specific features (like AWS-specific IAM instance profiles you can see leaking into the generated output) still need direct provider access, so you end up maintaining both Multy config and native Terraform for anything nontrivial.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →