Terraform remains one of my favorite DevOps tools. It is not only because of the ease of modularity and working against multi-cloud. Terraform enables its users to manage infrastructure as code and this is a key and foundation for DevOps practices.
✔It is Open Source with a massive active community developing this tool
✔It is Multi-Cloud provider
✔It is Multi-Platforms
✔Its plan command allows you to see the changes that it will apply before its application
✔It runs in command line enabling automated DevOps pipeline integration
Learn how popular Terraform became since 2016 and consider 6 reasons Why should Terraform be one of your DevOps tools?
The answer to this question appears on Quora. The respondents give us either common features as well as differences between Terraform and CloudFormation. What are the pros and cons between using Terraform vs. CloudFormation?. If you want to dive deeper go for: Terraform vs CloudFormation – A Pragmatic Comparison.
Yevgeniy Brikman, Co-founder of Gruntwork, author of “Hello, Startup” and a popular book “Terraform: Up & Running” releases a series of posts that will teach you best practices for using Terraform in the real world. Here is his Comprehensive Guide to Terraform.
A great place not only to find but also to share your Terraform best practices and custom modules with the community is nothing but GitHub. Visit GitHub – Terraform Best Practices and take advantage of it!
Use modules, separate your environments, keep it DRY. These and 4 other useful Tips you will find in an article by Simon So: 7 Tips to Start Your Terraform Project the Right Way. While Terraform Recommended Practices guide is rather meant for enterprise users looking to advance their Terraform usage from a few individuals to a full organization.
If you are considering to let your Devs help out with operations work it is now possible. Read this post and learn how. Putting The Dev Into DevOps: Why Your Developers Should Write Terraform Too.
What to do when infrastructure management extends beyond simple configuration? If you want help to reduce your maintenance and make managing your infrastructure more efficient take advantage of modules. They provide an easy way to abstract common blocks of configuration into reusable infrastructure elements. Below two articles worth studying:
If you are familiar with Terraform Enterprise (TFE) you should know that a proper repository structure is crucial. It determines which files Terraform has access to when it is executed within Terraform Enterprise, and when Terraform plans will run. Dig deeper ➛ Repository Structure.
Learn how to ensure new infrastructure is created before the old is destroyed. Bear it in mind that a running VM does not necessarily mean a working application. Read more: Zero Downtime Updates with HashiCorp Terraform.
Whether you use Terraform regularly in production or by a larger team it can be desirable to orchestrate Terraform runs in some sort of automation in order to ensure consistency between runs, and provide other interesting features such as integration with version control hooks. Sounds interesting? Explore this guide: Running Terraform in Automation.
Terraform is undeniably the first multi-cloud immutable infrastructure tool. Which cloud provider do you prefer?
Terraform with AWS:
• Implementing AWS Virtual Private Cloud (VPC) Infrastructure with Terraform.
Terraform with Azure:
• Using Terraform with Azure – What’s the benefit?
Terraform with Google:
• Getting Started with the Google Provider.
Terraform for multi-cloud management.
• Learn how to use Terraform for multi-cloud management.
Watch this presentation and find out: Multi-Cloud Provisioning with HashiCorp Terraform.
I have picked only some of the tools we are currently using like Ansible, Docker, Jenkins. But this is only the tip of the iceberg.
I hope it was helpful.
also posted here