-
Notifications
You must be signed in to change notification settings - Fork 9.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[doc] Update Terraform use cases #36013
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! I added some style requests and suggestions, but feel free to ignore anything that doesn't feel good!
## Multi-Cloud Deployment | ||
## Codify your infrastructure | ||
|
||
By capturing and building your infrastructure as code, you make your deployments faster, repeatable, and easier to collaborate on. Terraform codifies cloud APIs into declarative configuration files, using HashiCorp Configuration Language (HCL). You define the desired state of your infrastructure in HCL and Terraform will deploy and configure the resources to match your configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By capturing and building your infrastructure as code, you make your deployments faster, repeatable, and easier to collaborate on. Terraform codifies cloud APIs into declarative configuration files, using HashiCorp Configuration Language (HCL). You define the desired state of your infrastructure in HCL and Terraform will deploy and configure the resources to match your configuration. | |
By capturing and building your infrastructure as code, you make your deployments faster, repeatable, and easier to collaborate on. Terraform codifies cloud APIs into declarative configuration files using HashiCorp Configuration Language (HCL). You define the desired state of your infrastructure in HCL, and Terraform deploys and configures resources to match your configuration. |
|
||
By capturing and building your infrastructure as code, you make your deployments faster, repeatable, and easier to collaborate on. Terraform codifies cloud APIs into declarative configuration files, using HashiCorp Configuration Language (HCL). You define the desired state of your infrastructure in HCL and Terraform will deploy and configure the resources to match your configuration. | ||
|
||
In addition to configuring your networks, servers, and databases, you can also use Terraform to manage other resources like containers, machine images, web services, and observability services. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition to configuring your networks, servers, and databases, you can also use Terraform to manage other resources like containers, machine images, web services, and observability services. | |
You can use Terraform to configure your networks, servers, and databases, as well as manage other your resources such as containers, machine images, web services, and observability services. |
In addition to configuring your networks, servers, and databases, you can also use Terraform to manage other resources like containers, machine images, web services, and observability services. | ||
|
||
### Resources | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add an intro sentence to this list please?
- Read HashiCorp's Well-Architected Framework to learn how to [codify your infrastructure with Terraform](/operational-excellence/operational-excellence-manage-your-infrastructure-components-with-terraform). | ||
|
||
## Multi-cloud deployment | ||
|
||
Provisioning infrastructure across multiple clouds increases fault-tolerance, allowing for more graceful recovery from cloud provider outages. However, multi-cloud deployments add complexity because each provider has its own interfaces, tools, and workflows. Terraform lets you use the same workflow to manage multiple providers and handle cross-cloud dependencies. This simplifies management and orchestration for large-scale, multi-cloud infrastructures. | ||
|
||
### Resources | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[For this and the rest of the article] could you please add intro sentences for the lists?
Provisioning infrastructure across multiple clouds increases fault-tolerance, allowing for more graceful recovery from cloud provider outages. However, multi-cloud deployments add complexity because each provider has its own interfaces, tools, and workflows. Terraform lets you use the same workflow to manage multiple providers and handle cross-cloud dependencies. This simplifies management and orchestration for large-scale, multi-cloud infrastructures. | ||
|
||
### Resources | ||
|
||
- Learn how to [standardize artifacts across multiple cloud providers] with Terraform and Packer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are missing a link?
- Try our [Deploy Federated Multi-Cloud Kubernetes Clusters](/terraform/tutorials/networking/multicloud-kubernetes) tutorial to provision Kubernetes clusters in both Azure and AWS environments, configure Consul federation with mesh gateways across the two clusters, and deploy microservices across the two clusters to verify federation. | ||
- Browse the [Terraform Registry](https://registry.terraform.io/browse/providers) to find thousands of publicly available providers. | ||
|
||
## Multi-environment deployments | ||
|
||
You may have staging or QA environments that you use to test new applications before releasing them in production. As the production environment grows larger and more complex, it can be increasingly difficult to maintain an up-to-date environment for each stage of the development process. Terraform Stacks let you split your Terraform configuration into components and then deploy and manage those components across multiple environments. You can manage the lifecycle of each deployment separately, making it easy to validate changes throughout your deployments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got a little carried away with my rewrite, but I think this still feels clear? Feel free to disregard anything you don't like!
You may have staging or QA environments that you use to test new applications before releasing them in production. As the production environment grows larger and more complex, it can be increasingly difficult to maintain an up-to-date environment for each stage of the development process. Terraform Stacks let you split your Terraform configuration into components and then deploy and manage those components across multiple environments. You can manage the lifecycle of each deployment separately, making it easy to validate changes throughout your deployments. | |
Application development workflows can depend on multiple environments to test features, such as QA and staging, before releasing them to production. As production grows more complex, it becomes increasingly difficult to synchronize deployments and keep them up-to-date for each stage of the development process. | |
[Terraform Stacks](/terraform/language/stacks) let you split your Terraform configuration into components and then deploy and manage those components across multiple environments. You can manage the lifecycle of each deployment separately, making it easy to validate changes throughout your deployments. |
|
||
### Resources | ||
|
||
- Read the [Deploy a Stack with HCP Terraform](/terraform/tutorials/cloud/stacks-deploy) tutorial to get hands-on experience. You will create a Terraform Stack that deploys an AWS Lambda function across a development, test, and production environment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intro sentence please! Also would it be too much to add the stacks docs too? There is a page about stacks use cases that feels very on-brand with the rest of the article: https://developer.hashicorp.com/terraform/language/stacks/use-cases
Update the Terraform "Use Cases" documentation with recent examples and content.