Hacker News new | ask | show | jobs
by deserialized 1114 days ago
That's literally what terraform is for

https://registry.terraform.io/browse/providers

1 comments

That's literally what terraform is not. While you have all providers in the single place, they're not unified at all. Each provider has their own way to create resources, and while you can try to create your own module to create some kind of abstraction which would let you choose any provider and just say have a parameter defining which provider is that, the intrinsic of every cloud provider might be totally different and hence that might be hard to achieve.
'Might' is doing a lot of work here.

I've put together multiple hybrid and multi-cloud setups between gcp, aws, azure, equinix, and others using terraform.

Iam tends to be very different between providers but there is absolutely a lowest common denominator between them especially when you focus on compute, storage, and networking as primitives with which to host your own services.

You'll get quite far by consolodating requirements into a json file containing a list of ports to open, ip addresses to allow, required number of cores, disk space, operating system version, max spot bid price, default region, maximum desired replicas etc...

Another factor is how you provision your machines. Cloud-init radically simplifies the process of creating homogenous instances across providers versus custom packer images, ansible playbooks, puppet etc... and is supported by almost every cloud and exposed via their terraform provider