Title: We have been working on Multy, an open-source[1] tool that enables developers to deploy and switch to any cloud - AWS, Azure and GCP for now.<p>We realized that, even when using Terraform, writing infrastructure code is very different for each cloud provider. This means changing clouds or deploying the same infrastructure in multiple clouds requires rewriting the same thing multiple times. And even though most core resources have the same functionality, developers need to learn a new provider and all its nuances when choosing a new cloud. This is why we built Multy.<p>Multy is currently available as a Terraform provider. You can write cloud-agnostic code and then just choose which cloud you want to deploy to. Multy will then call the cloud provider APIs on your behalf. For example, the following Terraform code deploys a virtual network in AWS and can be easily changed to deploy to Azure or GCP:<p>```
resource &quot;multy_virtual_network&quot; &quot;vn&quot; {<p><pre><code>  cloud      = &quot;aws&quot; &#x2F;&#x2F; or azure, or gcp

  name       = &quot;multy_vn&quot;
  cidr_block = &quot;10.0.0.0&#x2F;16&quot;
  location   = &quot;eu_west_1&quot;</code></pre>
}  
```<p>Our goal is to expose any configuration that is common across all clouds, but there’s always specific features that are not available in all of them. For example, if you want a very specific AWS CPU for your Virtual Machine or use a region that is only available in GCP. To enable this, we implemented overrides [2] - a way to configure the underlying infrastructure for cloud-specific purposes. You can also mix other Terraform code that uses the cloud-specific providers with Multy. While this makes you somewhat locked in, having your 80% or 90% of your infrastructure  cloud-agnostic is still very powerful.<p>You can see more complex examples in our documentation - <a href="https:&#x2F;&#x2F;docs.multy.dev&#x2F;examples&#x2F;" rel="nofollow">https:&#x2F;&#x2F;docs.multy.dev&#x2F;examples&#x2F;</a>.<p>We’re still in early days and looking for feedback from other developers on our approach. Let us know what you think!<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;multycloud&#x2F;multy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;multycloud&#x2F;multy</a><p>[2] <a href="https:&#x2F;&#x2F;docs.multy.dev&#x2F;overrides" rel="nofollow">https:&#x2F;&#x2F;docs.multy.dev&#x2F;overrides</a>
Upvote: