Why terraform is called provider/cloud (aws, azure) agnostic?

1,670 views
Skip to first unread message

Niraj

unread,
Jul 18, 2017, 10:06:27 PM7/18/17
to Terraform
Trying to learn the fundamentals :)

I did a quick prototype with terraform and authored a terraform configuration and I believe you can't use the same configuration file across providers i.e. VM creation for AWS/Azure I need to author two configuration files and there isn't any neutral type I can use and reuse the infra.code across providers?

Thanks,
Niraj

Message has been deleted
Message has been deleted

Julio Fernández

unread,
Jul 19, 2017, 3:11:43 AM7/19/17
to Terraform
+1.

Same situation. It's either mkt bullshit, or more probably, a concept that you can implement only once you have become a TF Master. At the moment, for me there is no way to create configurations "provider agnostic". No way. There is always some amount of manual work to do while jumping between providers.

Sander van Harmelen

unread,
Jul 19, 2017, 3:31:08 AM7/19/17
to terrafo...@googlegroups.com
It's agnostic in that you have a single tool with a single DSL that can be used to manage all major infrastructure providers (e.g. AWS, GCP, Azure, OpenStack, CloudStack) as well as about 70+ other SaaS services/providers.

Within that single DSL the config does differ from one provider to the next. So indeed there is no such thing as a single agnostic VPC or instance config that can be used to deploy a VPC or instance in both AWS and Azure at the same time. The infrastructure providers themselves are just way to different to be able to do such a thing.

Maybe you could make it that way, but than you would only be able to use a really, really tiny subset of the features the different infrastructure providers offer. So tiny that you would not be able to build a real useful environment in either provider that way.

But once you feel comfortable with the tool and the DSL, it’s really simple and straight forward to use all the 70+ providers in exactly the same way (workflow). So in that sense the tool is cloud agnostic.

Sander


-- 
This mailing list is governed under the HashiCorp Community Guidelines - https://www.hashicorp.com/community-guidelines.html. Behavior in violation of those guidelines may result in your removal from this mailing list.
 
GitHub Issues: https://github.com/hashicorp/terraform/issues
IRC: #terraform-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups "Terraform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to terraform-too...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/terraform-tool/40de3824-51f9-4077-a9a0-3e0c3070c2ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Benjamin Lau

unread,
Jul 19, 2017, 10:03:15 AM7/19/17
to terrafo...@googlegroups.com
Yeah this is something I didn't understand about terraform when I first started using it.

It's agnostic in that it's not tied to only one provider (like say... cloudformation which can only be used with aws). So it provides a single language which can be used to operate any cloud + a pile of other services through its providers.

Maybe one day terraform will get better conditionals and then someone can take on the task of building a "instance" module which under the hood hides the differences between aws, gcp, and azure so you could write a single bit of terraform which interoperates with multiple cloud providers. But considering how different each provider is I think this would be a challenge. Just think about the hoops you'd have to jump through to deal with translating some normalized concept of an instance type between aws's instance types and azure's machine sizes? And we're just talking about cpu/memory difference... there are all sorts of other configurable pieces. :-)

Cheers,
Ben

--
This mailing list is governed under the HashiCorp Community Guidelines - https://www.hashicorp.com/community-guidelines.html. Behavior in violation of those guidelines may result in your removal from this mailing list.
 
GitHub Issues: https://github.com/hashicorp/terraform/issues
IRC: #terraform-tool on Freenode
---
You received this message because you are subscribed to the Google Groups "Terraform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to terraform-tool+unsubscribe@googlegroups.com.

ijazz jazz

unread,
May 29, 2018, 7:11:22 AM5/29/18
to Terraform
Terraform is cloud-agnostic, write your infrastructure code once and run it on AWS, GoogleCloud, Azure, Bluemix or wherever… ... in the main repo (there are also individual repos for each major cloud provider). ... aws_elb in Terraform, while the closer equivalent on Microsoft Azureis called azurerm_lb 

crunchy...@gmail.com

unread,
Jun 15, 2018, 9:13:05 AM6/15/18
to Terraform
Hi Niraj

Terraform is still new and not that matured. It is still evolving. Despite differences in different cloud providers, Terraform is trying to be cloud agnostic and supports a multitude of providers, giving you efficiency in dealing with multi-cloud, multi-offering environment. Since different cloud providers do not offer same type of infrastructure, it is not possible to deploy exactly same infrastructure in different type of cloud environments using a script automatically. To solve this, Terraform allows you to write code that is specific to each provider, exploiting that provider’s unique functionality but to use the same language, toolset, and infrastructure as code practices under the hood for all providers.

Hope this helps!

Cheers
Shashank

zasi

unread,
Jul 24, 2018, 2:07:46 AM7/24/18
to Terraform
Terraform by HashiCorp, an AWS Partner Network (APN) Advanced Technology Partner and member of the AWS DevOps Competency, is an “infrastructure as code” tool similar to AWS CloudFormation that allows you to create, update, and version your Amazon Web Services (AWS) infrastructure.Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions. Configuration files describe to Terraform the components needed to run a single application or your entire datacenter.

Reply all
Reply to author
Forward
0 new messages