Using Github for VCS in conjunction with Terraform Cloud enabled us to manage our infrastructure with standard version control from the start. All engineers can review and collaborate on infrastructure decisions and changes at Bestow. Work tasks are tracked and frequently linked to these changes as we develop our platform. All our engineers either had previous experience or were quickly ramped up on Terraform to support our infrastructure-as-code environment. Most new engineers absolutely loved that they could configure their own infrastructure programmatically and get approval for it in a PR on github.
Hashicorp has done a great job standardizing Terraform as an open-source tool for managing infrastructure-as-code. We were able to easily follow the GCP documentation for managing resources with some well-designed and re-usable modules. We provisioned multiple environments using a clear and concise folder structure with the modules we created.
We went with the decision to use Terraform Cloud because it gave us a secure and versioned platform to deploy our changes. We are able to limit access to the remote state while also integrating directly with our CI/CD on Github to test and deploy changes. The Terraform provider for GCP has been reliable and our engineers are able to make changes without too much time wasted. Terraform Cloud has its drawbacks but in general we found its configurability to be outstanding and the features it brings helps stimulate productivity.
We have also been able to use other Terraform providers to manage things like Cloudflare, New Relic, Okta, GCP, AWS, and Github . The standard interface offers an easy way to version control and manage the majority of our software platform as well as grant approvals via PR, and create a self documented audit trail of work being done and how. This makes it easy to onboard new teammates and audit our existing workflows.